Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 144D7200D11 for ; Mon, 2 Oct 2017 12:32:14 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 12D911609EF; Mon, 2 Oct 2017 10:32:14 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 308921609DE for ; Mon, 2 Oct 2017 12:32:13 +0200 (CEST) Received: (qmail 6863 invoked by uid 500); 2 Oct 2017 10:32:12 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 6853 invoked by uid 99); 2 Oct 2017 10:32:12 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Oct 2017 10:32:12 +0000 Received: from [192.168.23.12] (host217-44-155-55.range217-44.btcentralplus.com [217.44.155.55]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id A90461A031B for ; Mon, 2 Oct 2017 10:32:11 +0000 (UTC) Subject: Re: Java 9 backports [Was: Java 9 TC shutdown warnings (reflection in WebappClassLoaderBase)] To: Tomcat Developers List References: <6fb541ba-ce42-1745-e834-2f50baa0ec8d@kippdata.de> <36fdc6e6-0747-564c-714b-5faa6474ff9c@apache.org> From: Mark Thomas Message-ID: Date: Mon, 2 Oct 2017 11:32:09 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit archived-at: Mon, 02 Oct 2017 10:32:14 -0000 On 26/09/17 10:47, Rainer Jung wrote: > I checked the TC 9 svn log for messages containing the regexp > /(java|jvm|jdk) ?9/i. All of them actually contained "Java 9" and the > following is the list. I marked the ones where I found the revision in > the 8.5 mergeinfo with a leading "*", but I have not checked how > complete the 8.5 backport was. The oldest ones would also not be in > mergeinfo, because they happened before the separat 8.5 branch. Thanks for this. I've copied the list to the wiki so it can be updated as progress is made. https://cwiki.apache.org/confluence/display/TOMCAT/Java+9+Status+tracking Mark > > r1809434 | rjung | 2017-09-23 16:45:48 +0200 (Sat, 23 Sep 2017) | 3 lines > Use the correct path when loading the JVMlogging.properties file for > Java 9. > ------------------------------------------------------------------------ > r1806973 | markt | 2017-09-01 17:04:45 +0200 (Fri, 01 Sep 2017) | 1 line > Java 9 allows us to be more selective with the JRE memory leak protection. > ------------------------------------------------------------------------ > r1806932 | markt | 2017-09-01 13:10:37 +0200 (Fri, 01 Sep 2017) | 1 line > Update comment. We now have features that depend on Java 9. > ------------------------------------------------------------------------ > r1800617 | markt | 2017-07-03 12:19:46 +0200 (Mon, 03 Jul 2017) | 1 line > Add necessary Java 9 configuration options to the startup scripts to > prevent > warnings being generated on web application stop. > ------------------------------------------------------------------------ > r1800614 | markt | 2017-07-03 11:48:01 +0200 (Mon, 03 Jul 2017) | 1 line > Restore the local definition of the web service annotations since the JRE > provided versions are deprecated and Java 9 does not provide them by > default. > ------------------------------------------------------------------------ > *r1791050 | markt | 2017-04-12 00:36:01 +0200 (Wed, 12 Apr 2017) | 1 line > Refactoring in preparation for Java 9. Refactor to avoid using some methods > that will be deprecated in Java 9 onwards. > ------------------------------------------------------------------------ > r1791036 | markt | 2017-04-11 23:40:13 +0200 (Tue, 11 Apr 2017) | 1 line > Java 8 and Java 9 friendly alternative > ------------------------------------------------------------------------ > r1791032 | markt | 2017-04-11 23:34:50 +0200 (Tue, 11 Apr 2017) | 1 line > Revert the Java 9 change that breaks in Java 8 > ------------------------------------------------------------------------ > r1791028 | markt | 2017-04-11 23:16:04 +0200 (Tue, 11 Apr 2017) | 1 line > Refactoring in preparation for Java 9. Refactor to avoid using some methods > that will be deprecated in Java 9 onwards. > ------------------------------------------------------------------------ > r1791027 | markt | 2017-04-11 22:40:36 +0200 (Tue, 11 Apr 2017) | 1 line > Refactoring in preparation for Java 9. Refactor to avoid using some methods > that will be deprecated in Java 9 onwards. > ------------------------------------------------------------------------ > *r1782857 | markt | 2017-02-13 21:39:14 +0100 (Mon, 13 Feb 2017) | 3 lines > Java 9 support for annotation scanningBased > on:http://cr.openjdk.java.net/~mr/jigsaw/spec/lang-vm.html#jigsaw-2.6 > ------------------------------------------------------------------------ > r1779932 | markt | 2017-01-23 15:16:32 +0100 (Mon, 23 Jan 2017) | 2 lines > Remove unused code, effectively reverting 1779370 and 1779612. > Java 9 is now handled in other branch of if/else. > ------------------------------------------------------------------------ > r1779622 | remm | 2017-01-20 14:09:56 +0100 (Fri, 20 Jan 2017) | 1 line > Restore Java 9 direct byte buffer cleanup code, for now. The last way to > access it is through the private Unsafe singleton, which will likely stop > working at some point :( > ------------------------------------------------------------------------ > r1779612 | markt | 2017-01-20 12:58:51 +0100 (Fri, 20 Jan 2017) | 1 line > Log message that includes command line option required when running on > Java 9 > ------------------------------------------------------------------------ > r1779545 | markt | 2017-01-20 01:12:16 +0100 (Fri, 20 Jan 2017) | 2 lines > Adding ALPN support for JSSE with Java 9Enable ALPN and also, therefore, > HTTP/2 for the NIO and NIO2 HTTP connectors when using the JSSE > implementation > for TLS when running on Java 9. > ------------------------------------------------------------------------ > r1779370 | markt | 2017-01-18 19:46:27 +0100 (Wed, 18 Jan 2017) | 1 line > Java 9 can throw a Java 9 specific exception here > (InaccessibleObjectException) > so tweak the handling > ------------------------------------------------------------------------ > r1779313 | markt | 2017-01-18 12:23:17 +0100 (Wed, 18 Jan 2017) | 1 line > ws police (I need to configure my Java 9 dev environment correctly) > ------------------------------------------------------------------------ > r1778603 | markt | 2017-01-13 15:42:01 +0100 (Fri, 13 Jan 2017) | 2 lines > Adding ALPN support for JSSE with Java 9Add some plumbing to exposed the > client > requested application protocols to the method that configures the SSLEngine > ------------------------------------------------------------------------ > r1778575 | markt | 2017-01-13 13:50:01 +0100 (Fri, 13 Jan 2017) | 2 lines > Adding ALPN support for JSSE with Java 9Expand the data extracted from > the TLS > client hello to include the client requested ALPN names. > ------------------------------------------------------------------------ > *r1766822 | markt | 2016-10-27 15:59:41 +0200 (Thu, 27 Oct 2016) | 2 lines > ThreadLocal leak detection is now hitting Java 9 module issues. > Catch the error and provide a useful error message if this happens. > ------------------------------------------------------------------------ > *r1762753 | remm | 2016-09-29 12:20:27 +0200 (Thu, 29 Sep 2016) | 1 line > Java 9 compatibility for direct ByteBuffer cleaner. > ------------------------------------------------------------------------ > *r1758556 | markt | 2016-08-31 11:09:47 +0200 (Wed, 31 Aug 2016) | 1 line > The latest Java 9 early access builds have fixed some more memory leaks. > ------------------------------------------------------------------------ > *r1744323 | markt | 2016-05-17 22:36:54 +0200 (Tue, 17 May 2016) | 1 line > Make checking for RMI Target memory leaks optional and log a warning if > running > on Java 9 without the necessary command line options > ------------------------------------------------------------------------ > r1744149 | markt | 2016-05-16 23:36:39 +0200 (Mon, 16 May 2016) | 1 line > Tomcat needs to know if it is running on Java 9 since the reflection > used by > the RMI memory leak detection will break unless the right command line > option > is specified. > ------------------------------------------------------------------------ > r1739492 | markt | 2016-04-16 21:08:19 +0200 (Sat, 16 Apr 2016) | 2 lines > Java 9 The JRE class loaders no longer extend URLClassLoader > ------------------------------------------------------------------------ > r1720196 | markt | 2015-12-15 18:05:45 +0100 (Tue, 15 Dec 2015) | 1 line > Minor hack to get the unit tests passing on Java 9. > ------------------------------------------------------------------------ > r1705771 | markt | 2015-09-28 22:45:08 +0200 (Mon, 28 Sep 2015) | 1 line > No need for LogManager when using stop. Can't use the Tomcat config > anyway since > that would resut in two processes trying to write to the same file. This > was also > causing an ugly stack trace on stop with Java 9 as it tried to find a > logging > configuration to use. > ------------------------------------------------------------------------ > r1692896 | markt | 2015-07-27 17:18:49 +0200 (Mon, 27 Jul 2015) | 1 line > Add Java 9 support for JSPs > ------------------------------------------------------------------------ > r1653475 | markt | 2015-01-21 11:39:59 +0100 (Wed, 21 Jan 2015) | 1 line > Remove use of java.endorsed.dirs since causes errors when starting with > Java 9. > Users that need to can still use this via setenv.sh > ------------------------------------------------------------------------ > r1633595 | markt | 2014-10-22 13:04:31 +0200 (Wed, 22 Oct 2014) | 1 line > Java 9 Javadoc issues > ------------------------------------------------------------------------ > > Regards, > > Rainer > > Am 25.09.2017 um 21:40 schrieb Mark Thomas: >> On 25/09/17 13:33, Coty Sutherland wrote: >>> On Sat, Sep 23, 2017 at 11:01 AM, Mark Thomas wrote: >>>> On 23/09/17 15:55, Rainer Jung wrote: >>>>> Hi all, >>>>> >>>>> when running TC 8.5.21 (9.0 should be the same) with Java 9 I get the >>>>> following warnings on STDOUT during shutdown: >>>> >>>> Tomcat 9 has the Java 9 fixes. 8.5.x doesn't. I've put together a list >>>> of the Java 9 commits that need to be back-ported. Now that Java 9 is >>>> final those back-ports need to happen. >>> >>> Have you shared/can you share the list of commits? I'd like to take a >>> look and see if I can help get 7.0.x and 8.0.x ready to go too. >> >> I haven't shared them and now I go back to re-read them my notes are >> somewhat disorganized. >> >> I'll try and post something more coherent on Wednesday. >> >> >> Mark >> >> >>> >>>> This is on my TODO list for after TomcatCon London on Tuesday. >>>> >>>> Mark >>>> >>>> >>>>> >>>>> WARNING: An illegal reflective access operation has occurred >>>>> WARNING: Illegal reflective access by >>>>> org.apache.catalina.loader.WebappClassLoaderBase >>>>> (file:/.../lib/catalina.jar) to field java.lang.Thread.threadLocals >>>>> WARNING: Please consider reporting this to the maintainers of >>>>> org.apache.catalina.loader.WebappClassLoaderBase >>>>> WARNING: Use --illegal-access=warn to enable warnings of further >>>>> illegal >>>>> reflective access operations >>>>> WARNING: All illegal access operations will be denied in a future >>>>> release >>>>> >>>>> >>>>> If I add the mentioned flag, I get more such lines, all referring to >>>>> org.apache.catalina.loader.WebappClassLoaderBase and then: >>>>> >>>>> field java.lang.Thread.threadLocals >>>>> field java.lang.Thread.inheritableThreadLocals >>>>> field java.lang.ThreadLocal$ThreadLocalMap.table >>>>> method java.lang.ThreadLocal$ThreadLocalMap.expungeStaleEntries() >>>>> field java.lang.ThreadLocal$ThreadLocalMap$Entry.value >>>>> field sun.rmi.transport.Target.ccl >>>>> field sun.rmi.transport.Target.stub >>>>> field sun.rmi.transport.ObjectTable.objTable >>>>> field sun.rmi.transport.ObjectTable.implTable >>>>> >>>>> Details may vary depending on the cleanup flags set in the loader, but >>>>> this is 8.5 with default settings. >>>>> >>>>> Regards, >>>>> >>>>> Rainer > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org > For additional commands, e-mail: dev-help@tomcat.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org