Java報錯sun.misc.Unsafe.park(Native Method)問題
Java報錯sun.misc.Unsafe.park(Native Method)
這個問題基本上是Spring在啟動的時候,某個東西重復被初始化(請仔細檢查自己有沒有重名的接口,我好幾次都是接口重名導致的),導致內(nèi)存溢出或者其它。
我們在編程的過程中,一定要細心,避免類似的錯誤發(fā)生。
Java報錯sun.misc.Unsafe.park(Native Method) Conflicting setter definitions for property 導致的內(nèi)存泄露
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.原因分析
遇到內(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反序列化過程中,JSON需要和定義的實體類的屬性對應,當屬性名稱不一致的時候我們會使用@JsonProperty("")
來映射屬性,編譯后的代碼除了@JsonProperty("curPage")
相同看不出其他的異常,實際上 @JsonProperty("")
在序列化時也起到作用了:
// 序列化前(不同的KEY) { "sort_tag" : "1", "cur_page" : "2" } // 理論上序列化后(具有相同的KEY) { "curPage" : null, "curPage" : "2" }
所以猜想內(nèi)存泄漏有可能就是出現(xiàn)在對象的序列化過程中。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解如何配置springboot跳轉(zhuǎn)html頁面
這篇文章主要介紹了詳解如何配置springboot跳轉(zhuǎn)html頁面,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09關于MyBatis中SqlSessionFactory和SqlSession簡解
這篇文章主要介紹了MyBatis中SqlSessionFactory和SqlSession簡解,具有很好的參考價值,希望大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12JAVA調(diào)用SAP WEBSERVICE服務實現(xiàn)流程圖解
這篇文章主要介紹了JAVA調(diào)用SAP WEBSERVICE服務實現(xiàn)流程圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10Spring如何配置文件動態(tài)讀取pom.xml中的屬性
在項目開發(fā)中,經(jīng)常需要將pom.xml中的屬性動態(tài)傳遞給Spring配置文件,實現(xiàn)這一需求,可通過Maven的資源過濾功能,配置占位符替換,具體方法包括:在pom.xml中啟用filtering,然后在Spring配置文件中通過${property}方式引用屬性2024-10-10