User 870ab5b546
08-03-2011 18:40:32
I got this message when recompiling code (to show some debugging output; none of the other code had changed from the last time I compiled). I saw this output in the debugging output:
SEVERE: A web application created a ThreadLocal with key of type [null] (value [chemaxon.struc.StaticMolecule$1@301ea4]) and a value of type [chemaxon.util.BondClassifier] (value [chemaxon.util.BondClassifier@12bad63]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
Is this something I need to worry about? I'm concerned that it may be associated with our new code that uses a JChem table.
ChemAxon 9c0afc9aaf
09-03-2011 18:19:12
Hi Bob,
It may take some time for my colleages to investigate this issue in detail - we a re very busy getting close to the 5.5 release.
However at first glance I would not be too worried about this, especially as the Tomcat (??) output says it has been "forcibly removed" anyway.
The ThreadLocal instance is also static, so would not expect more copies than the number of threads - my best guess is that if there is any leak it's probably negligible / very-very slow.
Best,
Szilard
User c1ce6b3d19
16-03-2011 09:19:11
I found this insightful link to a tomcat wikipedia page describing the phenomena.
http://wiki.apache.org/tomcat/MemoryLeakProtection
Perhaps this can identify possible code segments (Custom ThreadLocal class or Webapp class instance as ThreadLocal value ) that can be causing the issue.
If it is not found in your code, can you please provide more information about the Tomcat version you are using. Can you tell us more about when this occurs (upon restarting a web app or compiling code before putting into the webserver)? Which web applications features seem to cause the issue on restart?