[prev in list] [next in list] [prev in thread] [next in thread]
List: tapestry-dev
Subject: svn commit: r1195702 -
From: hlship () apache ! org
Date: 2011-10-31 22:15:48
Message-ID: 20111031221548.C0C982388AA9 () eris ! apache ! org
[Download RAW message or body]
Author: hlship
Date: Mon Oct 31 22:15:48 2011
New Revision: 1195702
URL: http://svn.apache.org/viewvc?rev=1195702&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/mai \
n/java/org/apache/tapestry5/ioc/internal/services/ClassNameLocatorImpl.java?rev=1195702&r1=1195701&r2=1195702&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 22:15:48 2011 @@ -33,6 +33,7 @@ import java.util.regex.Pattern;
public class ClassNameLocatorImpl implements ClassNameLocator
{
private static final String CLASS_SUFFIX = ".class";
+ public static final String PACKAGE_INFO = "package-info.class";
private final ClassLoader contextClassLoader = \
Thread.currentThread().getContextClassLoader();
@@ -247,15 +248,22 @@ public class ClassNameLocatorImpl implem
if (!name.startsWith(packagePath)) continue;
- if (!name.endsWith(CLASS_SUFFIX)) continue;
- if (name.contains("$")) continue;
+ int lastSlashx = name.lastIndexOf('/');
- // Strip off .class and convert the slashes back to periods.
+ String fileName = name.substring(lastSlashx + 1);
- String className = name.substring(0, name.length() - \
CLASS_SUFFIX.length()).replace("/", "."); + if (isClassName(fileName))
+ {
+
+ // Strip off .class and convert the slashes back to periods.
+ String className =
+ name.substring(0, lastSlashx + 1).replace('/', '.') +
+ fileName.substring(0, fileName.length() - \
CLASS_SUFFIX.length());
- componentClassNames.add(className);
+
+ componentClassNames.add(className);
+ }
}
}
@@ -279,7 +287,7 @@ 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 \
(isClassName(fileName)) {
String className = packageName + "." + fileName.substring(0,
fileName.length() - CLASS_SUFFIX.length());
@@ -289,6 +297,11 @@ public class ClassNameLocatorImpl implem
}
}
+ private boolean isClassName(String fileName)
+ {
+ return fileName.endsWith(CLASS_SUFFIX) && !fileName.equals(PACKAGE_INFO) && \
!fileName.contains("$"); + }
+
/**
* For URLs to JARs that do not use JarURLConnection - allowed by the servlet \
spec - attempt to produce a JarFile
* object all the same. Known servlet engines that function like this include \
Weblogic and OC4J. This is not a full
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic