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
SoftEntryReferencehas a reference toWebappClassLoader, but I guess it is not a strong reference so it doesn't prevent theWebappClassLoaderto be garbage collected. am I wrong?
I have no idea what this means... What does this mean? Does
WebappClassLoaderitself 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?
