This is an automated email from the ASF dual-hosted git repository.
markt-asf pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 3f8761a0f3 Follow up to "Use an instanceof check when instantiating
..."
3f8761a0f3 is described below
commit 3f8761a0f3df65c695e91678487e497a4bb0f460
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/javax/el/ExpressionFactory.java | 2 +-
java/org/apache/catalina/authenticator/AuthenticatorBase.java | 2 +-
.../catalina/authenticator/jaspic/AuthConfigFactoryImpl.java | 2 +-
.../catalina/authenticator/jaspic/SimpleServerAuthConfig.java | 7 ++++---
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, 17 insertions(+), 26 deletions(-)
diff --git a/java/javax/el/ExpressionFactory.java
b/java/javax/el/ExpressionFactory.java
index f2aac0cc88..de5187b1d7 100644
--- a/java/javax/el/ExpressionFactory.java
+++ b/java/javax/el/ExpressionFactory.java
@@ -161,7 +161,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 514678d83b..3c14fec87a 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -1491,7 +1491,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 aff2e72874..c6a667f30c 100644
--- a/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
+++ b/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
@@ -179,7 +179,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 28d165e5fa..266590a39b 100644
--- a/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
+++ b/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
@@ -143,18 +143,19 @@ public class SimpleServerAuthConfig implements
ServerAuthConfig {
try {
Class<?> clazz = null;
try {
- clazz = Class.forName((String)
moduleClassName, true,
+ clazz = Class.forName(moduleClassName, true,
Thread.currentThread().getContextClassLoader());
} catch (ClassNotFoundException ignore) {
// Ignore so the re-try below can proceed
}
if (clazz == null) {
- clazz = Class.forName((String)
moduleClassName);
+ clazz = Class.forName(moduleClassName);
}
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) {
AuthException ae = new AuthException();
ae.initCause(e);
throw ae;
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
index 17fdd6ccba..90ee1b9e9a 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 d1dfd2b6ee..d24de66a23 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 136f19e9f5..57ece9f304 100644
--- a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
+++ b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
@@ -213,7 +213,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 072eda533f..8a962dc896 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -1497,7 +1497,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 3e59fbada6..570355af85 100644
--- a/java/org/apache/catalina/startup/Tomcat.java
+++ b/java/org/apache/catalina/startup/Tomcat.java
@@ -695,7 +695,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);
@@ -980,7 +980,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 110a35c825..334baff24b 100644
--- a/java/org/apache/jasper/JspCompilationContext.java
+++ b/java/org/apache/jasper/JspCompilationContext.java
@@ -276,7 +276,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]