NetBeans APIs offer an "active" reference queue[1] which is automatically cleaned by one dedicated NetBeans thread. Once we got a bug report[2] that it behaves poorly when used inside of a WAR file. Whenever the WAR was redeployed, the number of cleanup threads increased by one, which also caused major memory leaks. We fixed that with a bit of reflection (nasty, of course). The fix worked OK, up until JDK-6853696 got fixed - the JDK-6853696 fix broke our assumptions, so now NetBeans is significantly broken on JDK9. I can either come up with another reflective trick[3] or be constructive and improve JDK to offer the functionality we need. This issue is my attempt to propose such JDK change.
[1] http://bits.netbeans.org/8.0/javadoc/org-openide-util/org/openide/util/Utilities.html#activeReferenceQueue()
[2] https://netbeans.org/bugzilla/show_bug.cgi?id=206621
[3] https://netbeans.org/bugzilla/show_bug.cgi?id=245732