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