Java报错sun.misc.Unsafe.park(Native Method)问题

 更新时间:2024年07月18日 11:03:59   作者:BestTomDoG  
这篇文章主要介绍了Java报错sun.misc.Unsafe.park(Native Method)问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java报错sun.misc.Unsafe.park(Native Method)

这个问题基本上是Spring在启动的时候,某个东西重复被初始化(请仔细检查自己有没有重名的接口,我好几次都是接口重名导致的),导致内存溢出或者其它。

我们在编程的过程中,一定要细心,避免类似的错误发生。

Java报错sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 导致的内存泄露

1.报错信息

2021-10-29 08:44:56  WARN [,,,] [main] o.a.c.loader.WebappClassLoaderBase - 
The web application [ROOT] appears to have started a thread named [spring.cloud.inetutils] 
but has failed to stop it. This is very likely to create a memory leak. 
Stack trace of thread:
 sun.misc.Unsafe.park(Native Method)

2021-10-29 08:45:00 ERROR [,,,] [main] o.s.boot.SpringApplication - 
Application run failed
java.lang.IllegalArgumentException: Conflicting setter definitions for property "cur_page": 
com.example.demo.xxxClass#setSortTag(1 params) vs 
com.example.demo.xxxClass#setCurPage(1 params)

2.错误代码

错误代码在第 2️⃣ 行:

@JsonProperty() 的 value 值跟下边的 curPage 的相同,就导致了 setter 定义冲突。

    @ApiModelProperty(value = "排序标签")
    @JsonProperty(value = "cur_page")
    private Integer sortTag;

    @ApiModelProperty(value = "当前页")
    @JsonProperty(value = "cur_page")
    private Integer curPage;

3.原因分析

遇到内存泄漏的次数不多,值得分析一下,我们看一下编译后的代码:

    @JsonProperty("cur_page")
    public Demo setSortTag(final Integer sortTag) {
        this.sortTag = sortTag;
        return this;
    }

    @JsonProperty("cur_page")
    public Demo setCurPage(final Integer curPage) {
        this.curPage = curPage;
        return this;
    }

在JSON反序列化过程中,JSON需要和定义的实体类的属性对应,当属性名称不一致的时候我们会使用@JsonProperty("")来映射属性,编译后的代码除了@JsonProperty("curPage") 相同看不出其他的异常,实际上 @JsonProperty("") 在序列化时也起到作用了:

// 序列化前(不同的KEY)
{ "sort_tag" : "1",  "cur_page" : "2" }
// 理论上序列化后(具有相同的KEY)
{ "curPage" : null, "curPage" : "2" }

所以猜想内存泄漏有可能就是出现在对象的序列化过程中。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java最新版本连接mysql失败的解决过程

    java最新版本连接mysql失败的解决过程

    这篇文章主要给大家介绍了关于java最新版本连接mysql失败的解决过程,文中通过图文以及示例代码将解决的过程介绍的非常详细,对遇到这个问题的同学具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • Java日常练习题,每天进步一点点(5)

    Java日常练习题,每天进步一点点(5)

    下面小编就为大家带来一篇Java基础的几道练习题(分享)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望可以帮到你
    2021-07-07
  • 浅谈Spring IoC容器的依赖注入原理

    浅谈Spring IoC容器的依赖注入原理

    这篇文章主要介绍了浅谈Spring IoC容器的依赖注入原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • type-aliases-package的用法解读

    type-aliases-package的用法解读

    在Mybatis的mapper.xml文件中使用type-aliases-package可以简化resultType和parameterType的全类名指定,通过配置扫描指定包中的实体类,让Mybatis自动识别这些实体
    2024-11-11
  • JDK 5 提供的注解:Target、Inherited和Documented的区别

    JDK 5 提供的注解:Target、Inherited和Documented的区别

    这篇文章主要介绍了JDK 5 提供的注解:Target、Inherited和Documented的区别,需要的朋友可以参考下
    2016-02-02
  • 通过实例了解java spring使用构造器注入的原因

    通过实例了解java spring使用构造器注入的原因

    这篇文章主要介绍了通过实例了解spring使用构造器注入的原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Spring Bean基本管理实例详解

    Spring Bean基本管理实例详解

    这篇文章主要介绍了Spring Bean基本管理,以实例形式较为详细的分析了Spring Bean的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Maven 生成打包可执行jar包的方法步骤

    Maven 生成打包可执行jar包的方法步骤

    这篇文章主要介绍了Maven 生成打包可执行jar包的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • springboot整合couchbase集群的步骤

    springboot整合couchbase集群的步骤

    couchbase是一款开源的,分布式的nosql数据库,主要用于分布式缓存和数据存储领域,本文给大家介绍springboot整合couchbase集群的步骤,感兴趣的朋友一起看看吧
    2025-03-03
  • SpringBoot加载外部依赖过程解析

    SpringBoot加载外部依赖过程解析

    这篇文章主要介绍了SpringBoot加载外部依赖过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论