Author: markt Date: Wed Aug 31 09:09:47 2016 New Revision: 1758556 URL: http://svn.apache.org/viewvc?rev=1758556&view=rev Log: The latest Java 9 early access builds have fixed some more memory leaks.
Modified: tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java tomcat/trunk/webapps/docs/config/listeners.xml Modified: tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?rev=1758556&r1=1758555&r2=1758556&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java Wed Aug 31 09:09:47 2016 @@ -251,8 +251,10 @@ public class JreMemoryLeakPreventionList * to the web application class loader. * * Instead we initialize JCA right now. + * + * Fixed in Java 9 onwards (from early access build 133) */ - if (tokenPollerProtection) { + if (tokenPollerProtection && !JreCompat.isJre9Available()) { java.security.Security.getProviders(); } @@ -287,7 +289,10 @@ public class JreMemoryLeakPreventionList } } - if (xmlParsingProtection) { + /* + * Fixed in Java 9 onwards (from early access build 133) + */ + if (xmlParsingProtection && !JreCompat.isJre9Available()) { // There are two known issues with XML parsing that affect // Java 8+. The issues both relate to cached Exception // instances that retain a link to the TCCL via the Modified: tomcat/trunk/webapps/docs/config/listeners.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/listeners.xml?rev=1758556&r1=1758555&r2=1758556&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/config/listeners.xml (original) +++ tomcat/trunk/webapps/docs/config/listeners.xml Wed Aug 31 09:09:47 2016 @@ -182,7 +182,9 @@ <p>Enables protection so that calls to <code>java.awt.Toolkit.getDefaultToolkit()</code> triggered by a web application do not result in a memory leak. - Defaults to <code>false</code> because an AWT thread is launched.</p> + Defaults to <code>false</code> because an AWT thread is launched. This + protection is disabled if running on Java 9 onwards since the leak has + been fixed for Java 9 onwards.</p> </attribute> <attribute name="classesToInitialize" required="false"> @@ -210,7 +212,9 @@ trigger a call to this method. A side effect of enabling this protection is the creation of a thread named "GC Daemon". The protection uses reflection to access internal Sun classes and may generate errors on - startup on non-Sun JVMs. The default is <code>true</code>.</p> + startup on non-Sun JVMs. The default is <code>true</code>. This + protection is disabled if running on Java 9 onwards since the leak has + been fixed for Java 9 onwards.</p> </attribute> <attribute name="ldapPoolProtection" required="false"> @@ -223,7 +227,8 @@ class the PoolCleaner thread will be configured with the thread's context class loader set to the web application class loader which in turn will trigger a memory leak on reload. Defaults to - <code>true</code>.</p> + <code>true</code>. This protection is disabled if running on Java 9 + onwards since the leak has been fixed for Java 9 onwards.</p> </attribute> <attribute name="tokenPollerProtection" required="false"> @@ -235,7 +240,9 @@ deployment when the MessageDigest for generating session IDs is initialized. As a result the thread has the Webapp class loader as its thread context class loader. Enabling the protection initializes JCA - early during Tomcat startup. Defaults to <code>true</code>.</p> + early during Tomcat startup. Defaults to <code>true</code>. This + protection is disabled if running on Java 9 onwards since the leak has + been fixed for Java 9 onwards.</p> </attribute> <attribute name="urlCacheProtection" required="false"> @@ -251,7 +258,9 @@ <p>Enables protection so that parsing XML files within a web application does not result in a memory leak. Note that memory profilers may not display the GC root associated with this leak making it particularly - hard to diagnose. Defaults to <code>true</code>.</p> + hard to diagnose. Defaults to <code>true</code>. This protection is + disabled if running on Java 9 onwards since the leak has been fixed for + Java 9 onwards.</p> </attribute> </attributes> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org