Author: hlship Date: Mon Oct 31 21:48:39 2011 New Revision: 1195691 URL: http://svn.apache.org/viewvc?rev=1195691&view=rev Log: TAP5-1737: Loading all pages using PageCatalog page fails with java.lang.ClassFormatError: Illegal field modifiers in class org/apache/tapestry5/corelib/pages/package-info: 0x12
Modified: tapestry/tapestry5/branches/5.3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java Modified: tapestry/tapestry5/branches/5.3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java?rev=1195691&r1=1195690&r2=1195691&view=diff ============================================================================== --- tapestry/tapestry5/branches/5.3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java (original) +++ tapestry/tapestry5/branches/5.3/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java Mon Oct 31 21:48:39 2011 @@ -74,8 +74,7 @@ public class ClassNameLocatorImpl implem return findClassesWithinPath(packagePath); - } - catch (IOException ex) + } catch (IOException ex) { throw new RuntimeException(ex); } @@ -108,8 +107,7 @@ public class ClassNameLocatorImpl implem if (connection instanceof JarURLConnection) { jarFile = ((JarURLConnection) connection).getJarFile(); - } - else + } else { jarFile = getAlternativeJarFile(url); } @@ -117,8 +115,7 @@ public class ClassNameLocatorImpl implem if (jarFile != null) { scanJarFile(packagePath, componentClassNames, jarFile); - } - else if (supportsDirStream(url)) + } else if (supportsDirStream(url)) { Stack<Queued> queue = CollectionFactory.newStack(); @@ -130,8 +127,7 @@ public class ClassNameLocatorImpl implem scanDirStream(queued.packagePath, queued.packageURL, componentClassNames, queue); } - } - else + } else { // Try scanning file system. String packageName = packagePath.replace("/", "."); @@ -157,16 +153,13 @@ public class ClassNameLocatorImpl implem { is = packageURL.openStream(); return true; - } - catch (FileNotFoundException ex) + } catch (FileNotFoundException ex) { return false; - } - catch (IOException e) + } catch (IOException e) { return false; - } - finally + } finally { InternalUtils.close(is); } @@ -180,8 +173,7 @@ public class ClassNameLocatorImpl implem try { is = new BufferedInputStream(packageURL.openStream()); - } - catch (FileNotFoundException ex) + } catch (FileNotFoundException ex) { // This can happen for certain application servers (JBoss 4.0.5 for example), that // export part of the exploded WAR for deployment, but leave part (WEB-INF/classes) @@ -205,13 +197,21 @@ public class ClassNameLocatorImpl implem if (CLASS_NAME_PATTERN.matcher(line).matches()) { - if (packageName == null) packageName = packagePath.replace('/', '.'); + if (packageName == null) + { + packageName = packagePath.replace('/', '.'); + } // packagePath ends with '/', packageName ends with '.' - String fullClassName = packageName + line.substring(0, line.length() - CLASS_SUFFIX.length()); + String fileName = line.substring(0, line.length() - CLASS_SUFFIX.length()); - componentClassNames.add(fullClassName); + if (!fileName.equals("package-info")) + { + String fullClassName = packageName + fileName; + + componentClassNames.add(fullClassName); + } continue; } @@ -230,8 +230,7 @@ public class ClassNameLocatorImpl implem lineReader.close(); lineReader = null; - } - finally + } finally { InternalUtils.close(lineReader); } @@ -280,10 +279,10 @@ public class ClassNameLocatorImpl implem } // https://issues.apache.org/jira/browse/TAP5-1737 // Use of package-info.java leaves these package-info.class files around. - else if (fileName.endsWith(CLASS_SUFFIX) && ! fileName.equals("package-info.class")) + else if (fileName.endsWith(CLASS_SUFFIX) && !fileName.equals("package-info.class")) { String className = packageName + "." + fileName.substring(0, - fileName.length() - CLASS_SUFFIX.length()); + fileName.length() - CLASS_SUFFIX.length()); componentClassNames.add(className); } }