Any webapp that calls java.awt.Toolkit.getDefaultToolkit will launch a new thread (AWT-Windows, AWT-XAWT, etc.) which will capture the ContextClassLoader, pinning the webapp in memory after an undeploy/redeploy. A simple addition to JreMemoryLeakPreventionListener can alleviate this condition.
Fixed in 7.0.x, will be included in 7.0.21. Proposed for 6.0.x.
Did you try to run this in a headless environment ? And what about environments without a X library installed ?
I believe my environment is headless, though I didn't actually run with java.awt.headless=true, here. I'll check to see what happens when I do that. I don't believe you can do any AWT work without an X environment under *NIX. In any case, this is an optional setting that one would only use if they were going to be using AWT, so I don't believe there is any danger, here. If you observe any specific problems, don't hesitate to re-open.
Fixed in 6.0.x, will be included in 6.0.34. Fixed in 8.0.x (thanks to kkolinko).