You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2017/10/02 10:32:09 UTC

Re: Java 9 backports [Was: Java 9 TC shutdown warnings (reflection in WebappClassLoaderBase)]

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 <ma...@apache.org> 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