You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/05/17 10:12:16 UTC

[tomcat] branch main updated (4ed79f7e68 -> fd8e26e8d4)

This is an automated email from the ASF dual-hosted git repository.

markt pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


    from 4ed79f7e68 Link to new front page rather than old, migrated front page
     new c06d836918 Java 19 introduces some new classes
     new fd8e26e8d4 Improve handling of errors associated with --enable-preview

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/jakarta/el/ImportHandler.java                 |  6 ++++-
 .../el/TestImportHandlerStandardPackages.java      | 29 ++++++++++++++++++++--
 webapps/docs/changelog.xml                         |  4 +++
 3 files changed, 36 insertions(+), 3 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 01/02: Java 19 introduces some new classes

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit c06d8369188a8421e5d6dbb940a6fd11daf625e2
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue May 17 10:55:08 2022 +0100

    Java 19 introduces some new classes
---
 java/jakarta/el/ImportHandler.java                     | 6 +++++-
 test/jakarta/el/TestImportHandlerStandardPackages.java | 2 +-
 webapps/docs/changelog.xml                             | 4 ++++
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/java/jakarta/el/ImportHandler.java b/java/jakarta/el/ImportHandler.java
index b824d5dd79..050067ac88 100644
--- a/java/jakarta/el/ImportHandler.java
+++ b/java/jakarta/el/ImportHandler.java
@@ -140,7 +140,7 @@ public class ImportHandler {
         standardPackages.put("jakarta.servlet.jsp", servletJspClassNames);
 
         Set<String> javaLangClassNames = new HashSet<>();
-        // Taken from Java 14 EA27 Javadoc
+        // Based on Java 19 EA22
         // Interfaces
         javaLangClassNames.add("Appendable");
         javaLangClassNames.add("AutoCloseable");
@@ -154,6 +154,9 @@ public class ImportHandler {
         javaLangClassNames.add("Runnable");
         javaLangClassNames.add("StackWalker.StackFrame");
         javaLangClassNames.add("System.Logger");
+        javaLangClassNames.add("Thread.Builder");
+        javaLangClassNames.add("Thread.Builder.OfPlatform");
+        javaLangClassNames.add("Thread.Builder.OfVirtual");
         javaLangClassNames.add("Thread.UncaughtExceptionHandler");
         //Classes
         javaLangClassNames.add("Boolean");
@@ -237,6 +240,7 @@ public class ImportHandler {
         javaLangClassNames.add("StringIndexOutOfBoundsException");
         javaLangClassNames.add("TypeNotPresentException");
         javaLangClassNames.add("UnsupportedOperationException");
+        javaLangClassNames.add("WrongThreadException");
         //Errors
         javaLangClassNames.add("AbstractMethodError");
         javaLangClassNames.add("AssertionError");
diff --git a/test/jakarta/el/TestImportHandlerStandardPackages.java b/test/jakarta/el/TestImportHandlerStandardPackages.java
index 28ba400d06..0d0c40c096 100644
--- a/test/jakarta/el/TestImportHandlerStandardPackages.java
+++ b/test/jakarta/el/TestImportHandlerStandardPackages.java
@@ -54,7 +54,7 @@ public class TestImportHandlerStandardPackages {
             // The intention is that this test will catch new classes when the
             // tests are run on a newer JRE.
             // The latest version of the JRE where this test is known to pass is
-            // - OpenJDK 17 EA 28
+            // - OpenJDK 19 EA 22
             ModuleFinder.ofSystem().find("java.base").get().open().list()
                     .filter(c -> (c.startsWith("java/lang/")))
                     .filter(c -> c.lastIndexOf('/') == 9)             // Exclude sub-packages
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 9fb16d17ae..4d0bbac83d 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -115,6 +115,10 @@
         Update the XML schema used by the web fragment defined for the Jasper EL
         JAR to use the Servlet 6.0 web fragment schema. (markt)
       </fix>
+      <fix>
+        Update <code>ImportHandler</code> optimisation for new classes
+        introduced in Java 19. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Web Socket">


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 02/02: Improve handling of errors associated with --enable-preview

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit fd8e26e8d4a0dc212988057326c1427b88abe911
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue May 17 11:11:38 2022 +0100

    Improve handling of errors associated with --enable-preview
---
 .../el/TestImportHandlerStandardPackages.java      | 27 +++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/test/jakarta/el/TestImportHandlerStandardPackages.java b/test/jakarta/el/TestImportHandlerStandardPackages.java
index 0d0c40c096..8d7def7005 100644
--- a/test/jakarta/el/TestImportHandlerStandardPackages.java
+++ b/test/jakarta/el/TestImportHandlerStandardPackages.java
@@ -64,9 +64,13 @@ public class TestImportHandlerStandardPackages {
                         try {
                             return Class.forName("java.lang." + c);   // Get the class object
                         } catch (ClassNotFoundException e) {
-                            throw new RuntimeException();
+                            throw new RuntimeException(c);
+                        } catch (Throwable t) {
+                            swallowEnablePreview(c, t);
+                            return null;
                         }
                     })
+                    .filter(c -> null != c)
                     .filter(c -> Modifier.isPublic(c.getModifiers())) // Exclude non-public classes
                     .map(c -> c.getName().substring(10))              // Back to the class name
                     .map(c -> c.replace('$',  '.'))
@@ -129,4 +133,25 @@ public class TestImportHandlerStandardPackages {
             }
         }
     }
+
+
+    /*
+     * This is a bit of a hack but there isn't a specific exception that can be
+     * caught.
+     */
+    private void swallowEnablePreview(String className, Throwable t) {
+        while (t != null) {
+            if (t.getMessage() != null && t.getMessage().contains("--enable-preview")) {
+                return;
+            }
+
+            Throwable cause = t.getCause();
+            if (t == cause) {
+                break;
+            }
+            t = cause;
+        }
+
+        throw new RuntimeException(className, t);
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org