Author: markt
Date: Mon Jun 11 20:57:26 2012
New Revision: 1349007
URL: http://svn.apache.org/viewvc?rev=1349007&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=53266
Handle missing classes defined in @HandlesTypes more gracefully - the
specification requires it should not stop the web application from loading
Modified:
tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1349007&r1=1349006&r2=1349007&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Mon Jun 11
20:57:26 2012
@@ -1481,8 +1481,16 @@ public class ContextConfig implements Li
initializerClassMap.put(sci, new HashSet<Class<?>>());
- HandlesTypes ht =
- sci.getClass().getAnnotation(HandlesTypes.class);
+ HandlesTypes ht = null;
+ try {
+ ht = sci.getClass().getAnnotation(HandlesTypes.class);
+ } catch (Exception e) {
+ if (log.isDebugEnabled()) {
+ log.info(sm.getString("contextConfig.sci.debug", url), e);
+ } else {
+ log.info(sm.getString("contextConfig.sci.info", url));
+ }
+ }
if (ht != null) {
Class<?>[] types = ht.value();
if (types != null) {
Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1349007&r1=1349006&r2=1349007&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Mon
Jun 11 20:57:26 2012
@@ -53,6 +53,8 @@ contextConfig.resourceJarFail=Failed to
contextConfig.role.auth=WARNING: Security role name {0} used in an
<auth-constraint> without being defined in a <security-role>
contextConfig.role.link=WARNING: Security role name {0} used in a <role-link>
without being defined in a <security-role>
contextConfig.role.runas=WARNING: Security role name {0} used in a <run-as>
without being defined in a <security-role>
+contextConfig.sci.debug=Unable to process ServletContainerInitializer for
[{0}]. This is most likely due to a class defined in the @HandlesTypes
annotation being missing
+contextConfig.sci.info=Unable to process ServletContainerInitializer for
[{0}]. This is most likely due to a class defined in the @HandlesTypes
annotation being missing. Enable DEBUG level logging for the full stack trace.
contextConfig.servletContainerInitializerFail=Failed to process JAR found at
URL [{0}] for ServletContainerInitializers for context with name [{1}]
contextConfig.start=ContextConfig: Processing START
contextConfig.stop=ContextConfig: Processing STOP
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]