You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Rainer Jung <ra...@kippdata.de> on 2017/09/26 09:47:07 UTC

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

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.

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


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

Posted by Mark Thomas <ma...@apache.org>.
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