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