Java報(bào)錯(cuò)sun.misc.Unsafe.park(Native Method)問(wèn)題
Java報(bào)錯(cuò)sun.misc.Unsafe.park(Native Method)
這個(gè)問(wèn)題基本上是Spring在啟動(dòng)的時(shí)候,某個(gè)東西重復(fù)被初始化(請(qǐng)仔細(xì)檢查自己有沒有重名的接口,我好幾次都是接口重名導(dǎo)致的),導(dǎo)致內(nèi)存溢出或者其它。
我們?cè)诰幊痰倪^(guò)程中,一定要細(xì)心,避免類似的錯(cuò)誤發(fā)生。
Java報(bào)錯(cuò)sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 導(dǎo)致的內(nèi)存泄露
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í)體類的屬性對(duì)應(yīng),當(dā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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java報(bào)錯(cuò):ClassCastException問(wèn)題解決方法
- Java報(bào)錯(cuò):UnsupportedOperationException in Collections的解決方案
- Java報(bào)錯(cuò):FileNotFoundException的解決方案
- 解決nacos報(bào)錯(cuò)java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問(wèn)題
- spring-boot報(bào)錯(cuò)javax.servlet.http不存在的問(wèn)題解決
相關(guān)文章
詳解如何配置springboot跳轉(zhuǎn)html頁(yè)面
這篇文章主要介紹了詳解如何配置springboot跳轉(zhuǎn)html頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09關(guān)于MyBatis中SqlSessionFactory和SqlSession簡(jiǎn)解
這篇文章主要介紹了MyBatis中SqlSessionFactory和SqlSession簡(jiǎn)解,具有很好的參考價(jià)值,希望大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12JAVA調(diào)用SAP WEBSERVICE服務(wù)實(shí)現(xiàn)流程圖解
這篇文章主要介紹了JAVA調(diào)用SAP WEBSERVICE服務(wù)實(shí)現(xiàn)流程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10Spring如何配置文件動(dòng)態(tài)讀取pom.xml中的屬性
在項(xiàng)目開發(fā)中,經(jīng)常需要將pom.xml中的屬性動(dòng)態(tài)傳遞給Spring配置文件,實(shí)現(xiàn)這一需求,可通過(guò)Maven的資源過(guò)濾功能,配置占位符替換,具體方法包括:在pom.xml中啟用filtering,然后在Spring配置文件中通過(guò)${property}方式引用屬性2024-10-10Java中基于DeferredResult的異步服務(wù)詳解
這篇文章主要介紹了Java中基于DeferredResult的異步服務(wù)詳解,DeferredResult字面意思是"延遲結(jié)果",它允許Spring MVC收到請(qǐng)求后,立即釋放(歸還)容器線程,以便容器可以接收更多的外部請(qǐng)求,提升吞吐量,需要的朋友可以參考下2023-12-12SpringBoot實(shí)現(xiàn)發(fā)送電子郵件
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)發(fā)送電子郵件,電子郵件是—種用電子手段提供信息交換的通信方式,是互聯(lián)網(wǎng)應(yīng)用最廣的服務(wù)。通過(guò)網(wǎng)絡(luò)的電子郵件系統(tǒng),用戶可以非常快速的方式,與世界上任何一個(gè)角落的網(wǎng)絡(luò)用戶聯(lián)系,下面就來(lái)看看SpringBoot如何實(shí)現(xiàn)發(fā)送電子郵件吧2022-01-01JVM調(diào)優(yōu)參數(shù)的設(shè)置
Java虛擬機(jī)的調(diào)優(yōu)是一個(gè)復(fù)雜而關(guān)鍵的任務(wù),可以通過(guò)多種參數(shù)來(lái)實(shí)現(xiàn),本文就來(lái)介紹一下JVM調(diào)優(yōu)參數(shù)的設(shè)置,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03