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报错】记录一次 sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 导致的内存泄露相关推荐

  1. java unsafe park_java – WAITING at sun.misc.Unsafe.park(Native Method)

    我的一个应用程序在一段负载运行的时间内挂起,有谁知道在jstack中可能会导致这样的输出: "scheduler-5" prio=10 tid=0x00007f49481d0000 ...

  2. java unsafe park_在sun.misc.Unsafe.park(本机方法)中等待

    我的一个应用程序在负载下运行一段时间后挂起,有人知道是什么会导致jstack中的此类输出: "scheduler-5" prio=10 tid=0x00007f49481d0000 ...

  3. JVM 的 Finalization Delay 引起的 OOM(java.lang.OutOfMemoryError:null at sun.misc.Unsafe.allocateMemory.)

    今天在压力测试环境某一个服务出现crash了,经过一番检查,终于发现是由于JVM的Finalization Delay引起的,这个问题比较特殊,这里记录一下. 这个服务是用Java写的,主要完成的功能 ...

  4. Java中的天使和魔鬼sun.misc.Unsafe

    我们在看ConcurrentHashMap源码时经常看到Unsafe类的使用,今天我们来了解下Unsafe类. Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管 ...

  5. 深入理解sun.misc.Unsafe原理

    前言 Unsafe类在JDK源码中被广泛使用,在Spark使用off-heap memory时也会使用到,该类功能很强大,涉及到类加载机制(深入理解ClassLoader工作机制),其实例一般情况是获 ...

  6. OpenJDK1.8 :java/lang/NoSuchMethodError‘: Method sun.misc.Unsafe.defineClass(Ljava/lang/String;[BII)

    记录一个OpenJDK1.8的一个BUG : Crash日志 报错信息 : Event: 0.078 Thread 0x00007f1160055800 Exception <a 'java/l ...

  7. 【jenkins打包maven项目报错记录】

    jenkins打包maven项目报错记录 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3 ...

  8. java报错--java.io.IOException: Server returned HTTP response code: 502

    java.io.IOException: Server returned HTTP response code: 502 for URL: http://ip.taobao.com/service/g ...

  9. java 报错 定位,问题定位分享(2)spark任务一定几率报错java.lang.NoSuchFieldError: HIVE_MOVE_FILES_THREAD_COUNT...

    用yarn cluster方式提交spark任务时,有时会报错,报错几率是40%,报错如下: 18/03/15 21:50:36 116 ERROR ApplicationMaster91: User ...

最新文章

  1. ajax异步提交 java_jquery ajax异步提交表单数据的方法
  2. 使用java的Calendar对象获得当前日期的上几个度开始、结束时间
  3. c语言编一个dll 用message box 弹出一个对话框,Qt学习之路(17): Qt标准对话框之QMessageBox...
  4. 关于CALayer的contentsGravity属性
  5. WINCE6.0+S3C2443下的activesync问题
  6. MapReduce Java API实例-排序
  7. Java Optional学习笔记
  8. Windows使用技巧
  9. centos 重启网卡_CentOS7网络配置和修改网卡名称及常用服务管理命令
  10. MySQL数据库重点概要总结
  11. C++ DNN Opencv3.4 实现人脸计数和人脸检测
  12. uniapp打包成html5包个ios壳,HBuilder之uni-app打包App方法
  13. 高达82 fps的实时文本检测,华科AAAI2020提出可微分二值化模块
  14. 感悟----程序员需要养成的习惯
  15. Shell 脚本语法
  16. 超细节的QT设计完整界面布局的流程-新手向
  17. 91手机助手官网iPhone版 v5.3.2 官方版
  18. busybox制作的rootfs,启动脚本修改定制
  19. 百度网盘文件管理助手 – 多账号多开浏览器
  20. java tld tag_jsp中引用的tag和tld文件

热门文章

  1. .net EF框架 MySql实现实例
  2. Protocol buffer的使用案例
  3. Ubuntu16.04删除客人会话
  4. Leetcode 17. Letter Combinations of a Phone Number(python)
  5. jsp的九大内置对象和四大作用域
  6. windows phone 学习之页面导航和数据传递
  7. python怎么写手机按钮_python与mel的button写法
  8. java jpa hibernate_java - JPA和Hibernate - Criteria与JPQL或HQL
  9. 验证手机号码的正则表达式
  10. java paint 怎么用_java如何使用paint方法画图