当前位置: 代码网 > it编程>编程语言>Java > Java报错sun.misc.Unsafe.park(Native Method)问题

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

2024年07月18日 Java 我要评论
java报错sun.misc.unsafe.park(native method)这个问题基本上是spring在启动的时候,某个东西重复被初始化(请仔细检查自己有没有重名的接口,我好几次都是接口重名导

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" }

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持3w代码。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com