I'm working on fixing the issue
java.lang.OutOfMemoryError: Metaspace
in the time of redeploy where running an web application (Apache Roller, Java EE weblogger software: https://roller.apache.org) on Tomcat 8.0.18.
I know the cause of the issue can be found via Eclipse Memory Analyzer, so I have got a heap dump in the time of OOME, that produced automatically by the JVM which running with
-XX:+HeapDumpOnOutOfMemoryError.
I can see there are 4 WebappClassLoader instances that should be garbage collected. but I'm not sure why these instances hasn't be garbage collected.
So here's my questions in Merge Shortest Paths to GC Roots => exclude all phantom/weak/soft/etc. references
screen for each WebappClassLoader
instances:
Does this mean PostgreSQL JDBC Driver (deployed on the server side) has a reference to RollerContext?
This looks like a instance of
SoftEntryReference
has a reference toWebappClassLoader
, but I guess it is not a strong reference so it doesn't prevent theWebappClassLoader
to be garbage collected. am I wrong?I have no idea what this means... What does this mean? Does
WebappClassLoader
itself prevents to be garbage collected?Like I wrote in 2, I guess it should be garbage collected because it's referenced by a SoftReference. Am I wrong?