Author: markt Date: Fri Jan 20 11:58:51 2017 New Revision: 1779612 URL: http://svn.apache.org/viewvc?rev=1779612&view=rev Log: Log message that includes command line option required when running on Java 9
Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/ByteBufferUtils.java tomcat/trunk/java/org/apache/tomcat/util/buf/LocalStrings.properties Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/ByteBufferUtils.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/ByteBufferUtils.java?rev=1779612&r1=1779611&r2=1779612&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/buf/ByteBufferUtils.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/buf/ByteBufferUtils.java Fri Jan 20 11:58:51 2017 @@ -23,6 +23,7 @@ import java.nio.ByteBuffer; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; +import org.apache.tomcat.util.compat.JreCompat; import org.apache.tomcat.util.res.StringManager; public class ByteBufferUtils { @@ -48,9 +49,14 @@ public class ByteBufferUtils { } cleanMethodLocal.invoke(cleanerObject); } catch (Throwable t) { - // Use throwable as when running on Java 9 we may see a Java 9 - // specific exception (InaccessibleObjectException) here. - ExceptionUtils.handleThrowable(t); + JreCompat jreCompat = JreCompat.getInstance(); + if (jreCompat.isInstanceOfInaccessibleObjectException(t)) { + // Must be running on Java 9 without the necessary command line + // options. + log.warn(sm.getString("byteBufferUtils.addExportsCleaner")); + } else { + ExceptionUtils.handleThrowable(t); + } log.warn(sm.getString("byteBufferUtils.cleaner"), t); cleanerMethodLocal = null; cleanMethodLocal = null; Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/LocalStrings.properties?rev=1779612&r1=1779611&r2=1779612&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/buf/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/tomcat/util/buf/LocalStrings.properties Fri Jan 20 11:58:51 2017 @@ -23,4 +23,5 @@ uDecoder.urlDecode.missingDigit=The % ch uDecoder.convertHexDigit.notHex=[{0}] is not a hexadecimal digit uDecoder.urlDecode.uee=Unable to URL decode the specified input since the encoding [{0}] is not supported. -byteBufferUtils.cleaner=Cannot use direct ByteBuffer cleaner, memory leaking may occur \ No newline at end of file +byteBufferUtils.addExportsCleaner=When running on Java 9 you need to add "--add-opens=java.base/java.nio=ALL-UNNAMED" to the JVM command line arguments to enable the direct ByteBuffer cleaner +byteBufferUtils.cleaner=Cannot use direct ByteBuffer cleaner, memory leaking may occur --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org