Author: ivaynberg
Date: Tue May 18 21:49:50 2010
New Revision: 945909

URL: http://svn.apache.org/viewvc?rev=945909&view=rev
Log:
WICKET-2856: PackageStringResourceLoader.loadStringResource() causes 
NullPointerException when used in a Class within the root package (i.e. it has 
no package declaration)
Issue: WICKET-2856

Modified:
    
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java

Modified: 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
URL: 
http://svn.apache.org/viewvc/wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java?rev=945909&r1=945908&r2=945909&view=diff
==============================================================================
--- 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
 (original)
+++ 
wicket/branches/wicket-1.4.x/wicket/src/main/java/org/apache/wicket/resource/loader/PackageStringResourceLoader.java
 Tue May 18 21:49:50 2010
@@ -78,13 +78,18 @@ public class PackageStringResourceLoader
 
                while (true)
                {
-                       String packageName = clazz.getPackage().getName();
+                       Package pkg = clazz.getPackage();
+                       String packageName = (pkg == null) ? "" : pkg.getName();
                        packageName = packageName.replace('.', '/');
 
-                       while (packageName.length() > 0)
+                       do
                        {
                                // Create the base path
-                               String path = packageName + "/" + filename;
+                               String path = filename;
+                               if (packageName.length() > 0)
+                               {
+                                       path = packageName + "/" + path;
+                               }
 
                                // Iterator over all the combinations
                                ResourceNameIterator iter = new 
ResourceNameIterator(path, style, locale, null);
@@ -112,6 +117,7 @@ public class PackageStringResourceLoader
                                // Didn't find the key yet, continue searching 
if possible
                                packageName = Strings.beforeLast(packageName, 
'/');
                        }
+                       while (packageName.length() > 0);
 
                        // Move to the next superclass
                        clazz = clazz.getSuperclass();


Reply via email to