SEVERE: The web application [/mywar] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@75af844e]) and a value of type [com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer] (value [com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer@5617593e]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

I have been debugging this issue using jvisiualvm and eclipse MAT. I had the below error when I was undeploying the war file. And after 10 deployments the tomcat was running out of memory

SEVERE: The web application [/mywar] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@75af844e]) and a value of type [com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer] (value [com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer@5617593e]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

After doing some research i found that this issue existed with the version 1.3 of saaj-impl
https://java.net/jira/si/jira.issueviews:issue-html/SAAJ-46/SAAJ-46.html

Since I use maven so i only had to update the below dependency

<dependency>
   <groupId>com.sun.xml.messaging.saaj</groupId>
   <artifactId>saaj-impl</artifactId>
   <version>1.3.4</version> // here I was using 1.3 before
</dependency>



Here is how you can do memory analysis.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.