This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new 2364ae9c92 Follow up to "Use an instanceof check when instantiating
..."
2364ae9c92 is described below
commit 2364ae9c9234b0cfcc7d78e2070a313e512c606f
Author: Mark Thomas <[email protected]>
AuthorDate: Thu Oct 1 16:53:26 2026 +0100
Follow up to "Use an instanceof check when instantiating ..."
- Simplify
- Add missing checks for other, similar code
---
java/jakarta/el/ExpressionFactory.java | 2 +-
java/org/apache/catalina/authenticator/AuthenticatorBase.java | 2 +-
.../catalina/authenticator/jaspic/AuthConfigFactoryImpl.java | 2 +-
.../catalina/authenticator/jaspic/SimpleServerAuthConfig.java | 3 ++-
java/org/apache/catalina/filters/CsrfPreventionFilterBase.java | 10 ++--------
java/org/apache/catalina/filters/RateLimitFilter.java | 9 ++-------
java/org/apache/catalina/realm/JAASMemoryLoginModule.java | 2 +-
java/org/apache/catalina/realm/RealmBase.java | 2 +-
java/org/apache/catalina/startup/Tomcat.java | 5 +++--
java/org/apache/jasper/JspCompilationContext.java | 2 +-
10 files changed, 15 insertions(+), 24 deletions(-)
diff --git a/java/jakarta/el/ExpressionFactory.java
b/java/jakarta/el/ExpressionFactory.java
index f8923de606..d4e003864a 100644
--- a/java/jakarta/el/ExpressionFactory.java
+++ b/java/jakarta/el/ExpressionFactory.java
@@ -172,7 +172,7 @@ public abstract class ExpressionFactory {
Throwable cause = e.getCause();
Util.handleThrowable(cause);
throw new ELException(Util.message(null,
"expressionFactory.cannotCreate", clazz.getName()), e);
- } catch (ReflectiveOperationException | IllegalArgumentException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException |
ClassCastException e) {
throw new ELException(Util.message(null,
"expressionFactory.cannotCreate", clazz.getName()), e);
}
diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
index 8511d90a36..e6eec423ea 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -1496,7 +1496,7 @@ public abstract class AuthenticatorBase extends ValveBase
implements Authenticat
clazz = Class.forName(jaspicCallbackHandlerClass);
}
callbackHandler = (CallbackHandler)
clazz.getConstructor().newInstance();
- } catch (ReflectiveOperationException e) {
+ } catch (ReflectiveOperationException | ClassCastException e) {
throw new SecurityException(e);
}
diff --git
a/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
b/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
index 9c3d24631e..7f07dcfc12 100644
--- a/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
+++ b/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
@@ -191,7 +191,7 @@ public class AuthConfigFactoryImpl extends
AuthConfigFactory {
}
Constructor<?> constructor = clazz.getConstructor(Map.class,
AuthConfigFactory.class);
provider = (AuthConfigProvider)
constructor.newInstance(properties, null);
- } catch (ReflectiveOperationException | IllegalArgumentException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException |
ClassCastException e) {
throw new SecurityException(e);
}
return provider;
diff --git
a/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
b/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
index 27c8eca20b..89a9dcd030 100644
--- a/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
+++ b/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
@@ -154,7 +154,8 @@ public class SimpleServerAuthConfig implements
ServerAuthConfig {
ServerAuthModule module = (ServerAuthModule)
clazz.getConstructor().newInstance();
module.initialize(null, null, handler,
mergedProperties);
modules.add(module);
- } catch (ReflectiveOperationException |
IllegalArgumentException | SecurityException e) {
+ } catch (ReflectiveOperationException |
IllegalArgumentException | SecurityException |
+ ClassCastException e) {
throw new AuthException(e);
}
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
index aec1c49c4f..fe23b8c452 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
@@ -87,14 +87,8 @@ public abstract class CsrfPreventionFilterBase extends
FilterBase {
super.init(filterConfig);
try {
- Class<?> clazz = Class.forName(randomClass);
- Object instance = clazz.getConstructor().newInstance();
- if (instance instanceof Random) {
- randomSource = (Random) instance;
- } else {
- throw new
ServletException(sm.getString("csrfPrevention.invalidRandomClass",
randomClass));
- }
- } catch (ReflectiveOperationException e) {
+ randomSource = (Random)
Class.forName(randomClass).getConstructor().newInstance();
+ } catch (ReflectiveOperationException | ClassCastException e) {
throw new
ServletException(sm.getString("csrfPrevention.invalidRandomClass",
randomClass), e);
}
}
diff --git a/java/org/apache/catalina/filters/RateLimitFilter.java
b/java/org/apache/catalina/filters/RateLimitFilter.java
index dea872f830..c8d47b55ba 100644
--- a/java/org/apache/catalina/filters/RateLimitFilter.java
+++ b/java/org/apache/catalina/filters/RateLimitFilter.java
@@ -254,13 +254,8 @@ public class RateLimitFilter extends FilterBase {
super.init(filterConfig);
try {
- Object instance =
Class.forName(rateLimitClassName).getConstructor().newInstance();
- if (instance instanceof RateLimiter) {
- rateLimiter = (RateLimiter) instance;
- } else {
- throw new
ServletException(sm.getString("rateLimitFilter.classNotFound",
rateLimitClassName));
- }
- } catch (ReflectiveOperationException e) {
+ rateLimiter = (RateLimiter)
Class.forName(rateLimitClassName).getConstructor().newInstance();
+ } catch (ReflectiveOperationException | ClassCastException e) {
throw new
ServletException(sm.getString("rateLimitFilter.classNotFound",
rateLimitClassName), e);
}
diff --git a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
index 7dca65e684..2a805cff3d 100644
--- a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
+++ b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
@@ -214,7 +214,7 @@ public class JAASMemoryLoginModule extends MemoryRealm
implements LoginModule {
try {
Class<?> clazz = Class.forName((String) option);
credentialHandler = (CredentialHandler)
clazz.getConstructor().newInstance();
- } catch (ReflectiveOperationException e) {
+ } catch (ReflectiveOperationException | ClassCastException e) {
throw new IllegalArgumentException(e);
}
}
diff --git a/java/org/apache/catalina/realm/RealmBase.java
b/java/org/apache/catalina/realm/RealmBase.java
index a4867fb066..276bfd99a4 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -1475,7 +1475,7 @@ public abstract class RealmBase extends
LifecycleMBeanBase implements Realm {
Class<?> clazz = Class.forName(handlerClassName);
handler = (DigestCredentialHandlerBase)
clazz.getConstructor().newInstance();
IntrospectionUtils.setProperty(handler, "algorithm",
algorithm);
- } catch (ReflectiveOperationException e) {
+ } catch (ReflectiveOperationException | ClassCastException e) {
throw new RuntimeException(e);
}
}
diff --git a/java/org/apache/catalina/startup/Tomcat.java
b/java/org/apache/catalina/startup/Tomcat.java
index f6dd8fd02c..de7399a7f6 100644
--- a/java/org/apache/catalina/startup/Tomcat.java
+++ b/java/org/apache/catalina/startup/Tomcat.java
@@ -692,7 +692,7 @@ public class Tomcat {
try {
Class<?> clazz = Class.forName((host != null ? host :
getHost()).getConfigClass());
listener = (LifecycleListener)
clazz.getConstructor().newInstance();
- } catch (ReflectiveOperationException e) {
+ } catch (ReflectiveOperationException | ClassCastException e) {
// Wrap in IAE since we can't easily change the method signature
// to throw the specific checked exceptions
throw new IllegalArgumentException(e);
@@ -977,7 +977,8 @@ public class Tomcat {
return (Context)
Class.forName(contextClass).getConstructor().newInstance();
}
- } catch (ReflectiveOperationException | IllegalArgumentException |
SecurityException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException |
SecurityException |
+ ClassCastException e) {
throw new
IllegalArgumentException(sm.getString("tomcat.noContextClass", contextClass,
host, url), e);
}
}
diff --git a/java/org/apache/jasper/JspCompilationContext.java
b/java/org/apache/jasper/JspCompilationContext.java
index 2127f22ed3..1b77c09b83 100644
--- a/java/org/apache/jasper/JspCompilationContext.java
+++ b/java/org/apache/jasper/JspCompilationContext.java
@@ -277,7 +277,7 @@ public class JspCompilationContext {
if (log.isDebugEnabled()) {
log.debug(Localizer.getMessage("jsp.error.compiler"), e);
}
- } catch (ReflectiveOperationException e) {
+ } catch (ReflectiveOperationException | ClassCastException e) {
log.warn(Localizer.getMessage("jsp.error.compiler"), e);
}
return compiler;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]