Re: JDK 18 Early-Access builds 23 are available
Hi David, Apache Tomcat's build and tests pass on JDK 18 b23 on both Linux x86_64 and aarch64! Regards, Martin P.S. It seems your email client does not properly set Reply-to header. I almost sent the email without you in To/CC. On Tue, Nov 16, 2021 at 1:08 PM wrote: > Hi Mark, > > I’m happy to announce that moving forward Oracle’s Java DevRel Team will > manage the Quality Outreach Program. I would like to thank Rory for all > the efforts he's put into this program and wish him all the joy and > happiness that retirement can bring! We have big shoes to fill but we’re > excited to continue building off the amazing structure Rory has put in > place. > > > The JDK 18 schedule is now known [1] with a feature freeze date > (Rampdown Phase One) less than 4 weeks away! This time, we have 2 > important heads-ups, one related to JEP 411 (Deprecate the Security > Manager for Removal), and one related to JEP 416 (Reimplement Core > Reflection with Method Handles). We're asking your help to test and > confirm that your project works seamlessly now that those 2 JEPs are > integrated in the JDK 18 Early-Access builds. > > [1] https://openjdk.java.net/projects/jdk/18/ > > > # JEP 411 - Deprecate the Security Manager for Removal > > Starting JDK 18 b21 [2], the default value of the > 'java.security.manager' system property is set to "disallow". This means > that any application or library that enables the Security Manager by > calling `System.setSecurityManager` will now have to specify > `-Djava.security.manager=allow` on the command-line in order for that > code to continue working as expected. This change was originally > targeted for JDK 17, but after some discussion/feedback from the > community, the change was delayed until JDK 18 [3]. > > [2] https://bugs.openjdk.java.net/browse/JDK-8270380 > [3] https://openjdk.java.net/jeps/411#Description > > > # JEP 416 - Reimplement Core Reflection with Method Handles > > JEP 416 [4] reimplements `java.lang.reflect.Method`, > `java.lang.reflect.Constructor`, and `java.lang.reflect.Field` on top of > `java.lang.invoke` method handles. Making method handles the underlying > mechanism for reflection will reduce the maintenance and development > cost of both the `java.lang.reflect` and `java.lang.invoke` APIs. This > is solely an implementation change but we encourage you to test your > project to identify any behavior or performance regressions. > > [4] https://openjdk.java.net/jeps/416 > > > OpenJDK 18 Early-Access builds 23 are now available [5], and are > provided under the GNU General Public License v2, with the Classpath > Exception. The Release Notes are available [6]. > > [5] https://jdk.java.net/18/ > [6] https://jdk.java.net/18/release-notes > > > # JEPs integrated to JDK 18, so far: > > - JEP 400: UTF-8 by Default https://openjdk.java.net/jeps/400 > - JEP 408: Simple Web Server https://openjdk.java.net/jeps/408 > - JEP 413: Code Snippets in Java API Documentation > https://openjdk.java.net/jeps/413 > - JEP 416: Reimplement Core Reflection with Method Handles > https://openjdk.java.net/jeps/416 > - JEP 418: Internet-Address Resolution SPI > https://openjdk.java.net/jeps/418 > > > # JEPs targeted to JDK 18, so far: > > - JEP 417: Vector API (Third Incubator) https://openjdk.java.net/jeps/417 > > > # JEPs proposed to target JDK 18, so far: > > - JEP 419: Foreign Function & Memory API (Second Incubator) > https://openjdk.java.net/jeps/419 > - JEP 420: Pattern Matching for switch (Second Preview) > https://openjdk.java.net/jeps/420 > > > # Changes in recent builds that maybe of interest: > > ## Build 23: > > - JDK-8275509: ModuleDescriptor.hashCode isn't reproducible across builds > - JDK-8276220: Reduce excessive allocations in DateTimeFormatter > - JDK-8276298: G1: Remove unused G1SegmentedArrayBufferList::add > - JDK-8273922: (fs) UserDefinedFileAttributeView doesn't handle file > names that are just under the MAX_PATH limit (win) > > ## Build 22: > > - JDK-8271820: Implementation of JEP 416: Reimplement Core Reflection > with Method Handle > - JDK-8260428: Drop support for pre JDK 1.4 DatagramSocketImpl > implementations > - JDK-8251468: X509Certificate.get{Subject,Issuer}AlternativeNames and > getExtendedKeyUsage do not throw CertificateParsingException if > extension is unparseable > > ## Build 21: > > - JDK-8270380: Change the default value of the java.security.manager > system property to disallow > - JDK-8275319: java.net.NetworkInterface throws java.lang.Error instead > of SocketException > - JDK-8270490: Charset.forName() taking fallback default value > - JDK-8269336: Malformed jdk.serialFilter incorrectly handled > > > # Project Loom update > > New Project Loom 18-loom+4-273 (2021/11/10) Early-Access builds are > available [7] with related Javadocs [8]. > > [7] https://jdk.java.net/loom/ > [8] https://download.java.net/java/early_access/loom/docs/api/ > > These EA builds are provided under the GNU General Public License, > version 2, with the Classpath Exce
[Bug 65684] New: NullPointerException in Tomcat's ClassLoaderLogManager when logging.properties is empty
https://bz.apache.org/bugzilla/show_bug.cgi?id=65684 Bug ID: 65684 Summary: NullPointerException in Tomcat's ClassLoaderLogManager when logging.properties is empty Product: Tomcat 8 Version: 8.5.71 Hardware: Other OS: Linux Status: NEW Severity: normal Priority: P2 Component: JULI Assignee: dev@tomcat.apache.org Reporter: ros...@encoway.de Target Milestone: Created attachment 38092 --> https://bz.apache.org/bugzilla/attachment.cgi?id=38092&action=edit Servlet to test the issue. I am using Tomcat 8.5.71 in a docker container. I followed the instructions from https://logging.apache.org/log4j/2.x/log4j-appserver/index.html in order to setup log4j2 logging configuration. Additionally, I removed every entry from file conf/loggging.properties and added a comment "# see: log4j2/conf/log4j2-tomcat.xml" to guide other maintainer to the log4j2 xml. In one webapp some business logic is done in a separate thread by using the join-fork-threadpool. At some point, jdbc comes into play and the mssql.jdbc:8.4.1 driver asks for a logging property. static boolean isActivityTraceOn() { LogManager lm = LogManager.getLogManager(); String activityTrace = lm.getProperty("com.microsoft.sqlserver.jdbc.traceactivity"); return "on".equalsIgnoreCase(activityTrace); } But a NPE is thrown in ClassLoaderLogManager. 2021-11-04T11:08:27,233 ERROR [ForkJoinPool.commonPool-worker-0] java.lang.NullPointerException: null at org.apache.juli.ClassLoaderLogManager.findProperty(ClassLoaderLogManager.java:311) ~[tomcat-juli.jar:8.5.71] at org.apache.juli.ClassLoaderLogManager.getProperty(ClassLoaderLogManager.java:291) ~[tomcat-juli.jar:8.5.71] at com.microsoft.sqlserver.jdbc.Util.isActivityTraceOn(Util.java:778) ~[mssql-jdbc-8.4.1.jre8.jar:?] I debugged into the method org.apache.juli.ClassLoaderLogManager#findProperty. In my case, the ContextClassLoader is null and info.props.isEmpty() yields true. I would suggest to check if classLoader is null in the if condition in line 310 to avoid the NPE. My workaround at the moment is to remove the conf/loggging.properties entirely. Then everything works as expected. I attached a servlet to test the issue. -- You are receiving this mail because: You are the assignee for the bug. - To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org
JDK 18 Early-Access builds 23 are available
Hi Mark, I’m happy to announce that moving forward Oracle’s Java DevRel Team will manage the Quality Outreach Program. I would like to thank Rory for all the efforts he's put into this program and wish him all the joy and happiness that retirement can bring! We have big shoes to fill but we’re excited to continue building off the amazing structure Rory has put in place. The JDK 18 schedule is now known [1] with a feature freeze date (Rampdown Phase One) less than 4 weeks away! This time, we have 2 important heads-ups, one related to JEP 411 (Deprecate the Security Manager for Removal), and one related to JEP 416 (Reimplement Core Reflection with Method Handles). We're asking your help to test and confirm that your project works seamlessly now that those 2 JEPs are integrated in the JDK 18 Early-Access builds. [1] https://openjdk.java.net/projects/jdk/18/ # JEP 411 - Deprecate the Security Manager for Removal Starting JDK 18 b21 [2], the default value of the 'java.security.manager' system property is set to "disallow". This means that any application or library that enables the Security Manager by calling `System.setSecurityManager` will now have to specify `-Djava.security.manager=allow` on the command-line in order for that code to continue working as expected. This change was originally targeted for JDK 17, but after some discussion/feedback from the community, the change was delayed until JDK 18 [3]. [2] https://bugs.openjdk.java.net/browse/JDK-8270380 [3] https://openjdk.java.net/jeps/411#Description # JEP 416 - Reimplement Core Reflection with Method Handles JEP 416 [4] reimplements `java.lang.reflect.Method`, `java.lang.reflect.Constructor`, and `java.lang.reflect.Field` on top of `java.lang.invoke` method handles. Making method handles the underlying mechanism for reflection will reduce the maintenance and development cost of both the `java.lang.reflect` and `java.lang.invoke` APIs. This is solely an implementation change but we encourage you to test your project to identify any behavior or performance regressions. [4] https://openjdk.java.net/jeps/416 OpenJDK 18 Early-Access builds 23 are now available [5], and are provided under the GNU General Public License v2, with the Classpath Exception. The Release Notes are available [6]. [5] https://jdk.java.net/18/ [6] https://jdk.java.net/18/release-notes # JEPs integrated to JDK 18, so far: - JEP 400: UTF-8 by Default https://openjdk.java.net/jeps/400 - JEP 408: Simple Web Server https://openjdk.java.net/jeps/408 - JEP 413: Code Snippets in Java API Documentation https://openjdk.java.net/jeps/413 - JEP 416: Reimplement Core Reflection with Method Handles https://openjdk.java.net/jeps/416 - JEP 418: Internet-Address Resolution SPI https://openjdk.java.net/jeps/418 # JEPs targeted to JDK 18, so far: - JEP 417: Vector API (Third Incubator) https://openjdk.java.net/jeps/417 # JEPs proposed to target JDK 18, so far: - JEP 419: Foreign Function & Memory API (Second Incubator) https://openjdk.java.net/jeps/419 - JEP 420: Pattern Matching for switch (Second Preview) https://openjdk.java.net/jeps/420 # Changes in recent builds that maybe of interest: ## Build 23: - JDK-8275509: ModuleDescriptor.hashCode isn't reproducible across builds - JDK-8276220: Reduce excessive allocations in DateTimeFormatter - JDK-8276298: G1: Remove unused G1SegmentedArrayBufferList::add - JDK-8273922: (fs) UserDefinedFileAttributeView doesn't handle file names that are just under the MAX_PATH limit (win) ## Build 22: - JDK-8271820: Implementation of JEP 416: Reimplement Core Reflection with Method Handle - JDK-8260428: Drop support for pre JDK 1.4 DatagramSocketImpl implementations - JDK-8251468: X509Certificate.get{Subject,Issuer}AlternativeNames and getExtendedKeyUsage do not throw CertificateParsingException if extension is unparseable ## Build 21: - JDK-8270380: Change the default value of the java.security.manager system property to disallow - JDK-8275319: java.net.NetworkInterface throws java.lang.Error instead of SocketException - JDK-8270490: Charset.forName() taking fallback default value - JDK-8269336: Malformed jdk.serialFilter incorrectly handled # Project Loom update New Project Loom 18-loom+4-273 (2021/11/10) Early-Access builds are available [7] with related Javadocs [8]. [7] https://jdk.java.net/loom/ [8] https://download.java.net/java/early_access/loom/docs/api/ These EA builds are provided under the GNU General Public License, version 2, with the Classpath Exception and are produced for the purpose of gathering feedback. Use for any other purpose is at your own risk. Feedback should be send to the `loom-dev` mailing list (https://mail.openjdk.java.net/mailman/listinfo/loom-dev). # Topics of Interest: * New Candidate JEP: 421: Deprecate Finalization for Removal, https://openjdk.java.net/jeps/421 * What Happens to Finalization in JDK 18 and JEP 416 - Inside Java Newscast, ht