【Java报错】记录一次 sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 导致的内存泄露
生活随笔
收集整理的這篇文章主要介紹了
【Java报错】记录一次 sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 导致的内存泄露
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 報(bào)錯(cuò)信息
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. 錯(cuò)誤代碼
錯(cuò)誤代碼在第 2?? 行:
@JsonProperty() 的 value 值跟下邊的 curPage 的相同,就導(dǎo)致了 setter 定義沖突。
@ApiModelProperty(value = "排序標(biāo)簽")@JsonProperty(value = "cur_page")private Integer sortTag;@ApiModelProperty(value = "當(dāng)前頁(yè)")@JsonProperty(value = "cur_page")private Integer curPage;3. 原因分析
遇到內(nèi)存泄漏的次數(shù)不多,值得分析一下,我們看一下編譯后的代碼:
@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反序列化過(guò)程中,JSON需要和定義的實(shí)體類(lèi)的屬性對(duì)應(yīng),當(dāng)屬性名稱(chēng)不一致的時(shí)候我們會(huì)使用@JsonProperty("")來(lái)映射屬性,編譯后的代碼除了@JsonProperty("curPage") 相同看不出其他的異常,實(shí)際上 @JsonProperty("") 在序列化時(shí)也起到作用了:
// 序列化前(不同的KEY) { "sort_tag" : "1", "cur_page" : "2" } // 理論上序列化后(具有相同的KEY) { "curPage" : null, "curPage" : "2" }所以猜想內(nèi)存泄漏有可能就是出現(xiàn)在對(duì)象的序列化過(guò)程中。
總結(jié)
以上是生活随笔為你收集整理的【Java报错】记录一次 sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 导致的内存泄露的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Nexus【环境搭建 02】最新版本 n
- 下一篇: Tomcat【环境搭建 01】安装包版本