https://issues.apache.org/bugzilla/show_bug.cgi?id=51584
Bug #: 51584 Summary: Crash (infinite loop) when files starting with '#' are in the library tree Product: Tomcat 7 Version: trunk Platform: PC Status: NEW Severity: major Priority: P2 Component: Catalina AssignedTo: dev@tomcat.apache.org ReportedBy: srloo...@us.ibm.com Classification: Unclassified Situation: stray text file in my /WEB-INF/classes/...../ directory named "#SurveyMain.java#" ( It was a backup/autosaved source file, and eclipse 'helpfully' deployed it. ) causes crash on startup in tomcat 7.0.6, 7.0.19 and 7.0.20-dev (1151601M). - out of memory. Added this test to .20-dev: Index: org/apache/catalina/startup/ContextConfig.java =================================================================== --- org/apache/catalina/startup/ContextConfig.java (revision 1151601) +++ org/apache/catalina/startup/ContextConfig.java (working copy) @@ -1902,6 +1902,7 @@ while (dirs.hasMoreElements()) { String dir = dirs.nextElement(); URL dirUrl = new URL(url.toString() + '/' + dir); + System.err.println("Processing: " + url.toString() + '/' + dir); processAnnotationsJndi(dirUrl, fragment); } Printed tons of lines… at startup… Processing: jndi:/localhost/cldr-apps/WEB-INF/classes/org/unicode/cldr/web/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/#SurveyMain.java#/.... Then crashed as before… java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:3209) at java.lang.String.<init>(String.java:215) at java.lang.StringBuilder.toString(StringBuilder.java:430) at java.io.UnixFileSystem.resolve(UnixFileSystem.java:93) at java.io.File.<init>(File.java:312) at org.apache.naming.resources.FileDirContext.list(FileDirContext.java:871) at org.apache.naming.resources.FileDirContext.list(FileDirContext.java:304) at org.apache.naming.resources.ProxyDirContext.list(ProxyDirContext.java:506) at org.apache.naming.resources.DirContextURLConnection.list(DirContextURLConnection.java:444) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1901) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) at org.apache.catalina.startup.ContextConfig.processAnnotationsJndi(ContextConfig.java:1906) I think the problem is that the URL generated contains a '#' and so file:// interprets it as a fragment and not as a path. Quick patch: Index: java/org/apache/catalina/startup/ContextConfig.java =================================================================== --- java/org/apache/catalina/startup/ContextConfig.java (revision 1151601) +++ java/org/apache/catalina/startup/ContextConfig.java (working copy) @@ -1901,7 +1901,11 @@ Enumeration<String> dirs = dcUrlConn.list(); while (dirs.hasMoreElements()) { String dir = dirs.nextElement(); + if(dir.startsWith("#")) { + continue; + } URL dirUrl = new URL(url.toString() + '/' + dir); + //System.err.println("Processing: " + dirUrl.toString()); processAnnotationsJndi(dirUrl, fragment); } -- 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