https://issues.apache.org/bugzilla/show_bug.cgi?id=51386
Bug #: 51386 Summary: @HandlingType not correctly handled at server startup leads to incorrect classes set passed to initializers Product: Tomcat 7 Version: trunk Platform: PC OS/Version: Windows XP Status: NEW Severity: critical Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: etienne.mas...@gmail.com Classification: Unclassified The following code in org.apache.catalina.startup.ContextConfig.checkHandlesTypes(JavaClass) looks very buggy : boolean match = false; for (Map.Entry<Class<?>, Set<ServletContainerInitializer>> entry : typeInitializerMap.entrySet()) { if (entry.getKey().isAnnotation()) { AnnotationEntry[] annotationEntries = javaClass.getAnnotationEntries(); for (AnnotationEntry annotationEntry : annotationEntries) { if (entry.getKey().getName().equals( getClassName(annotationEntry.getAnnotationType()))) { match = true; break; } } } else if (entry.getKey().isAssignableFrom(clazz)) { match = true; } if (match) { for (ServletContainerInitializer sci : entry.getValue()) { initializerClassMap.get(sci).add(clazz); } } } Shouldn't "match" variable be reset to false at each iteration ? As it is for now, my SpringServletContainerInitializer (3.1M2), handling only WebApplicationInitializers, will finally receive a huge set of various applicative classes, starting from the first class parsed matching any type handled by any previously parsed ServletContainerInitializer !!! http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java -- Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org