You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/10/31 22:48:11 UTC

svn commit: r1195690 - /tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java

Author: hlship
Date: Mon Oct 31 21:48:11 2011
New Revision: 1195690

URL: http://svn.apache.org/viewvc?rev=1195690&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/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java

Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java?rev=1195690&r1=1195689&r2=1195690&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java Mon Oct 31 21:48:11 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);
                 }
             }