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

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

commit 205efe8659d727114fa61c17bd82a6b28b74cf9f
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      | 31 +++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/test/javax/el/TestImportHandlerStandardPackages.java 
b/test/javax/el/TestImportHandlerStandardPackages.java
index 9bbea56aed..a3ce0b76e8 100644
--- a/test/javax/el/TestImportHandlerStandardPackages.java
+++ b/test/javax/el/TestImportHandlerStandardPackages.java
@@ -70,7 +70,15 @@ public class TestImportHandlerStandardPackages {
                 }
                 // Extract class name
                 String className = fileName.substring(10, fileName.length() - 
6);
-                Class<?> clazz = Class.forName("java.lang." + className);
+                Class<?> clazz = null;
+                try {
+                    clazz = Class.forName("java.lang." + className);
+                } catch (Throwable t) {
+                    swallowEnablePreview(className, t);
+                }
+                if (clazz == null) {
+                    continue;
+                }
                 if (!Modifier.isPublic(clazz.getModifiers())) {
                     // Exclude non-public classes
                     continue;
@@ -174,4 +182,25 @@ public class TestImportHandlerStandardPackages {
         }
         return result;
     }
+
+
+    /*
+     * 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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to