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 2017/10/06 09:59:31 UTC
svn commit: r1811311 - in /tomcat/trunk/java: javax/el/
javax/security/auth/message/config/ javax/websocket/
javax/websocket/server/ org/apache/catalina/authenticator/jaspic/
org/apache/catalina/connector/ org/apache/catalina/core/
org/apache/catalina/...
Author: markt
Date: Fri Oct 6 09:59:31 2017
New Revision: 1811311
URL: http://svn.apache.org/viewvc?rev=1811311&view=rev
Log:
Refactor
Use ReflectiveOperationException rather than multiple sub-classes
Modified:
tomcat/trunk/java/javax/el/ExpressionFactory.java
tomcat/trunk/java/javax/el/StaticFieldELResolver.java
tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java
tomcat/trunk/java/javax/websocket/ContainerProvider.java
tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java
tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java
tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
tomcat/trunk/java/org/apache/juli/logging/LogFactory.java
tomcat/trunk/java/org/apache/tomcat/util/compat/Jre9Compat.java
tomcat/trunk/java/org/apache/tomcat/util/compat/JreCompat.java
Modified: tomcat/trunk/java/javax/el/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/ExpressionFactory.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/ExpressionFactory.java (original)
+++ tomcat/trunk/java/javax/el/ExpressionFactory.java Fri Oct 6 09:59:31 2017
@@ -175,17 +175,16 @@ public abstract class ExpressionFactory
(ExpressionFactory) constructor.newInstance(properties);
}
- } catch (InstantiationException | IllegalAccessException | IllegalArgumentException |
- NoSuchMethodException e) {
- throw new ELException(
- "Unable to create ExpressionFactory of type: " + clazz.getName(),
- e);
} catch (InvocationTargetException e) {
Throwable cause = e.getCause();
Util.handleThrowable(cause);
throw new ELException(
"Unable to create ExpressionFactory of type: " + clazz.getName(),
e);
+ } catch (ReflectiveOperationException | IllegalArgumentException e) {
+ throw new ELException(
+ "Unable to create ExpressionFactory of type: " + clazz.getName(),
+ e);
}
return result;
Modified: tomcat/trunk/java/javax/el/StaticFieldELResolver.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/el/StaticFieldELResolver.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/javax/el/StaticFieldELResolver.java (original)
+++ tomcat/trunk/java/javax/el/StaticFieldELResolver.java Fri Oct 6 09:59:31 2017
@@ -101,13 +101,12 @@ public class StaticFieldELResolver exten
try {
result = match.newInstance(parameters);
- } catch (IllegalArgumentException | IllegalAccessException |
- InstantiationException e) {
- throw new ELException(e);
} catch (InvocationTargetException e) {
Throwable cause = e.getCause();
Util.handleThrowable(cause);
throw new ELException(cause);
+ } catch (ReflectiveOperationException e) {
+ throw new ELException(e);
}
return result;
Modified: tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java (original)
+++ tomcat/trunk/java/javax/security/auth/message/config/AuthConfigFactory.java Fri Oct 6 09:59:31 2017
@@ -16,7 +16,6 @@
*/
package javax.security.auth.message.config;
-import java.lang.reflect.InvocationTargetException;
import java.security.AccessController;
import java.security.Permission;
import java.security.PrivilegedAction;
@@ -65,9 +64,8 @@ public abstract class AuthConfigFactory
factory = AccessController.doPrivileged(
new PrivilegedExceptionAction<AuthConfigFactory>() {
@Override
- public AuthConfigFactory run() throws ClassNotFoundException,
- InstantiationException, IllegalAccessException, IllegalArgumentException,
- InvocationTargetException, NoSuchMethodException, SecurityException {
+ public AuthConfigFactory run() throws ReflectiveOperationException,
+ IllegalArgumentException, SecurityException {
// Load this class with the same class loader as used for
// this class. Note that the Thread context class loader
// should not be used since that would trigger a memory leak
Modified: tomcat/trunk/java/javax/websocket/ContainerProvider.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/ContainerProvider.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/ContainerProvider.java (original)
+++ tomcat/trunk/java/javax/websocket/ContainerProvider.java Fri Oct 6 09:59:31 2017
@@ -16,7 +16,6 @@
*/
package javax.websocket;
-import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.ServiceLoader;
@@ -52,8 +51,7 @@ public abstract class ContainerProvider
(Class<WebSocketContainer>) Class.forName(
DEFAULT_PROVIDER_CLASS_NAME);
result = clazz.getConstructor().newInstance();
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
- IllegalArgumentException | InvocationTargetException | NoSuchMethodException |
+ } catch (ReflectiveOperationException | IllegalArgumentException |
SecurityException e) {
// No options left. Just return null.
}
Modified: tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java (original)
+++ tomcat/trunk/java/javax/websocket/server/ServerEndpointConfig.java Fri Oct 6 09:59:31 2017
@@ -16,7 +16,6 @@
*/
package javax.websocket.server;
-import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
@@ -177,9 +176,8 @@ public interface ServerEndpointConfig ex
(Class<Configurator>) Class.forName(
DEFAULT_IMPL_CLASSNAME);
result = clazz.getConstructor().newInstance();
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
- IllegalArgumentException | InvocationTargetException |
- NoSuchMethodException | SecurityException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException |
+ SecurityException e) {
// No options left. Just return null.
}
}
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/AuthConfigFactoryImpl.java Fri Oct 6 09:59:31 2017
@@ -18,7 +18,6 @@ package org.apache.catalina.authenticato
import java.io.File;
import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -115,8 +114,7 @@ public class AuthConfigFactoryImpl exten
clazz = Class.forName(className);
Constructor<?> constructor = clazz.getConstructor(Map.class, AuthConfigFactory.class);
provider = (AuthConfigProvider) constructor.newInstance(properties, null);
- } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException |
- IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException e) {
throw new SecurityException(e);
}
Modified: tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/SimpleServerAuthConfig.java Fri Oct 6 09:59:31 2017
@@ -16,7 +16,6 @@
*/
package org.apache.catalina.authenticator.jaspic;
-import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -118,9 +117,7 @@ public class SimpleServerAuthConfig impl
(ServerAuthModule) clazz.getConstructor().newInstance();
module.initialize(null, null, handler, mergedProperties);
modules.add(module);
- } catch (ClassNotFoundException | InstantiationException |
- IllegalAccessException | IllegalArgumentException |
- InvocationTargetException | NoSuchMethodException |
+ } catch (ReflectiveOperationException | IllegalArgumentException |
SecurityException e) {
AuthException ae = new AuthException();
ae.initCause(e);
Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Fri Oct 6 09:59:31 2017
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.io.UnsupportedEncodingException;
-import java.lang.reflect.InvocationTargetException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
@@ -1988,8 +1987,7 @@ public class Request implements HttpServ
instanceManager = getContext().getInstanceManager();
handler = (T) instanceManager.newInstance(httpUpgradeHandlerClass);
}
- } catch (InstantiationException | IllegalAccessException | InvocationTargetException |
- NamingException | IllegalArgumentException | NoSuchMethodException |
+ } catch (ReflectiveOperationException | NamingException | IllegalArgumentException |
SecurityException e) {
throw new ServletException(e);
}
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationContext.java Fri Oct 6 09:59:31 2017
@@ -825,8 +825,7 @@ public class ApplicationContext implemen
} catch (InvocationTargetException e) {
ExceptionUtils.handleThrowable(e.getCause());
throw new ServletException(e);
- } catch (IllegalAccessException | NamingException | InstantiationException |
- ClassNotFoundException | NoSuchMethodException e) {
+ } catch (ReflectiveOperationException | NamingException e) {
throw new ServletException(e);
}
}
@@ -959,8 +958,7 @@ public class ApplicationContext implemen
} catch (InvocationTargetException e) {
ExceptionUtils.handleThrowable(e.getCause());
throw new ServletException(e);
- } catch (IllegalAccessException | NamingException | InstantiationException |
- ClassNotFoundException | NoSuchMethodException e) {
+ } catch (ReflectiveOperationException | NamingException e) {
throw new ServletException(e);
}
}
@@ -1100,8 +1098,7 @@ public class ApplicationContext implemen
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.cnfe", className),
e);
- } catch (IllegalAccessException | NamingException | InstantiationException |
- ClassNotFoundException | NoSuchMethodException e) {
+ } catch (ReflectiveOperationException| NamingException e) {
throw new IllegalArgumentException(sm.getString(
"applicationContext.addListener.iae.cnfe", className),
e);
@@ -1173,8 +1170,7 @@ public class ApplicationContext implemen
} catch (InvocationTargetException e) {
ExceptionUtils.handleThrowable(e.getCause());
throw new ServletException(e);
- } catch (IllegalAccessException | NamingException | InstantiationException |
- NoSuchMethodException e) {
+ } catch (ReflectiveOperationException | NamingException e) {
throw new ServletException(e);
}
}
Modified: tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/ApplicationFilterConfig.java Fri Oct 6 09:59:31 2017
@@ -20,7 +20,6 @@ package org.apache.catalina.core;
import java.io.Serializable;
-import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
@@ -89,15 +88,12 @@ public final class ApplicationFilterConf
* instantiating the filter object
* @exception ServletException if thrown by the filter's init() method
* @throws NamingException
- * @throws InvocationTargetException
* @throws SecurityException
- * @throws NoSuchMethodException
* @throws IllegalArgumentException
*/
ApplicationFilterConfig(Context context, FilterDef filterDef)
- throws ClassCastException, ClassNotFoundException, IllegalAccessException,
- InstantiationException, ServletException, InvocationTargetException, NamingException,
- IllegalArgumentException, NoSuchMethodException, SecurityException {
+ throws ClassCastException, ReflectiveOperationException, ServletException,
+ NamingException, IllegalArgumentException, SecurityException {
super();
@@ -244,14 +240,12 @@ public final class ApplicationFilterConf
* instantiating the filter object
* @exception ServletException if thrown by the filter's init() method
* @throws NamingException
- * @throws InvocationTargetException
+ * @throws ReflectiveOperationException
* @throws SecurityException
- * @throws NoSuchMethodException
* @throws IllegalArgumentException
*/
- Filter getFilter() throws ClassCastException, ClassNotFoundException, IllegalAccessException,
- InstantiationException, ServletException, InvocationTargetException, NamingException,
- IllegalArgumentException, NoSuchMethodException, SecurityException {
+ Filter getFilter() throws ClassCastException, ReflectiveOperationException, ServletException,
+ NamingException, IllegalArgumentException, SecurityException {
// Return the existing filter instance, if any
if (this.filter != null)
Modified: tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/AsyncContextImpl.java Fri Oct 6 09:59:31 2017
@@ -268,8 +268,7 @@ public class AsyncContextImpl implements
try {
listener = (T) getInstanceManager().newInstance(clazz.getName(),
clazz.getClassLoader());
- } catch (InstantiationException | IllegalAccessException | NamingException |
- ClassNotFoundException e) {
+ } catch (ReflectiveOperationException | NamingException e) {
ServletException se = new ServletException(e);
throw se;
} catch (Exception e) {
Modified: tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JAASRealm.java Fri Oct 6 09:59:31 2017
@@ -628,23 +628,11 @@ public class JAASRealm extends RealmBase
this.jaasConfigurationLoaded = true;
return this.jaasConfiguration;
}
- } catch (URISyntaxException ex) {
- throw new RuntimeException(ex);
- } catch (NoSuchMethodException ex) {
- throw new RuntimeException(ex);
- } catch (SecurityException ex) {
- throw new RuntimeException(ex);
- } catch (InstantiationException ex) {
- throw new RuntimeException(ex);
- } catch (IllegalAccessException ex) {
- throw new RuntimeException(ex);
- } catch (IllegalArgumentException ex) {
- throw new RuntimeException(ex);
} catch (InvocationTargetException ex) {
throw new RuntimeException(ex.getCause());
- } catch (ClassNotFoundException ex) {
+ } catch (SecurityException | URISyntaxException | ReflectiveOperationException |
+ IllegalArgumentException ex) {
throw new RuntimeException(ex);
}
-
}
}
Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Fri Oct 6 09:59:31 2017
@@ -18,7 +18,6 @@ package org.apache.catalina.startup;
import java.io.File;
import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.Principal;
@@ -853,10 +852,7 @@ public class Tomcat {
try {
return (Context) Class.forName(contextClass).getConstructor()
.newInstance();
- } catch (InstantiationException | IllegalAccessException
- | IllegalArgumentException | InvocationTargetException
- | NoSuchMethodException | SecurityException
- | ClassNotFoundException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException | SecurityException e) {
throw new IllegalArgumentException(
"Can't instantiate context-class " + contextClass
+ " for host " + host + " and url "
Modified: tomcat/trunk/java/org/apache/juli/logging/LogFactory.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/logging/LogFactory.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/juli/logging/LogFactory.java (original)
+++ tomcat/trunk/java/org/apache/juli/logging/LogFactory.java Fri Oct 6 09:59:31 2017
@@ -17,7 +17,6 @@
package org.apache.juli.logging;
import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
import java.util.ServiceLoader;
import java.util.logging.LogManager;
@@ -119,8 +118,7 @@ public class LogFactory {
try {
return discoveredLogConstructor.newInstance(name);
- } catch (InstantiationException | IllegalAccessException | IllegalArgumentException |
- InvocationTargetException e) {
+ } catch (ReflectiveOperationException | IllegalArgumentException e) {
throw new LogConfigurationException(e);
}
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/compat/Jre9Compat.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/compat/Jre9Compat.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/compat/Jre9Compat.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/compat/Jre9Compat.java Fri Oct 6 09:59:31 2017
@@ -19,7 +19,11 @@ package org.apache.tomcat.util.compat;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.net.URLConnection;
+import java.util.Deque;
+import java.util.Optional;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters;
@@ -97,4 +101,19 @@ class Jre9Compat extends JreCompat {
throw new UnsupportedOperationException(e);
}
}
+
+
+ @Override
+ public void addClassPath(Deque<URL> classPathUrlsToProcess) {
+ ModuleLayer.boot().configuration().modules().stream().map(
+ rm -> rm.reference().location()).flatMap(Optional::stream).map(u -> {
+ try {
+ return u.toURL();
+ } catch (MalformedURLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ return null;
+ }
+ }).forEach(classPathUrlsToProcess::add);
+ }
}
Modified: tomcat/trunk/java/org/apache/tomcat/util/compat/JreCompat.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/compat/JreCompat.java?rev=1811311&r1=1811310&r2=1811311&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/compat/JreCompat.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/compat/JreCompat.java Fri Oct 6 09:59:31 2017
@@ -19,6 +19,7 @@ package org.apache.tomcat.util.compat;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;
+import java.util.Deque;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters;
@@ -115,4 +116,16 @@ public class JreCompat {
URLConnection uConn = url.openConnection();
uConn.setDefaultUseCaches(false);
}
+
+
+ /**
+ * Scans the module path and adds the locations of each module found to the
+ * queue for URLs to be processed.
+ *
+ * @param classPathUrlsToProcess The queue of URLs to which found
+ * locations should be added
+ */
+ public void addClassPath(Deque<URL> classPathUrlsToProcess) {
+ // NO-OP unless running on Java 9 or later
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org