The attached patch allows passing null into the C'tor of
ClassPropertiesConfiguration. In this case, the System class loader is
used. 

Without this patch, passing null in resulted in a NPE.

Please appy, my karma seems to be missing.

        Regards
                Henning

Index: src/java/org/apache/commons/configuration/ClassPropertiesConfiguration.java
===================================================================
RCS file: 
/home/cvs/jakarta-commons/configuration/src/java/org/apache/commons/configuration/ClassPropertiesConfiguration.java,v
retrieving revision 1.9
diff -u -r1.9 ClassPropertiesConfiguration.java
--- src/java/org/apache/commons/configuration/ClassPropertiesConfiguration.java 24 Jun 
2004 14:01:03 -0000      1.9
+++ src/java/org/apache/commons/configuration/ClassPropertiesConfiguration.java 12 Jul 
2004 09:12:36 -0000
@@ -46,19 +46,26 @@
      * Creates and loads an extended properties file from the Class
      * Resources. Uses the class loader.
      *
-     * @param baseClass The class providing the FileStream.
+     * @param baseClass The class providing the FileStream. If you pass null, the
+     *                  system class loader will be used.
      * @param resource The name of the Resource.
      * @throws ConfigurationException Error while loading the properties file
      */
     public ClassPropertiesConfiguration(Class baseClass, String resource) throws 
ConfigurationException
     {
         this.baseClass = baseClass;
-        // According to javadocs, getClassLoader() might return null
-        // if it represents the "bootstrap class loader"
-        // Use the System class loader in this case.
-        classLoader = (baseClass.getClassLoader() == null)
-            ? ClassLoader.getSystemClassLoader()
-            : baseClass.getClassLoader();
+
+            // According to javadocs, getClassLoader() might return null
+            // if it represents the "bootstrap class loader"
+            // Use the System class loader in this case.
+        if (baseClass != null && baseClass.getClassLoader() != null)
+        {
+            classLoader = baseClass.getClassLoader();
+        }
+        else
+        {
+            classLoader = ClassLoader.getSystemClassLoader();
+        }
 
         setIncludesAllowed(true);
         try
@@ -83,8 +90,11 @@
     {
         InputStream resource = null;
 
-        //First try to load from within the package of the provided class
-        resource = baseClass.getResourceAsStream(resourceName);
+        if (baseClass != null)
+        {
+            // First try to load from within the package of the provided class
+            resource = baseClass.getResourceAsStream(resourceName);
+        }
 
         if (resource == null)
         {


-- 
Dipl.-Inf. (Univ.) Henning P. Schmiedehausen          INTERMETA GmbH
[EMAIL PROTECTED]        +49 9131 50 654 0   http://www.intermeta.de/

RedHat Certified Engineer -- Jakarta Turbine Development  -- hero for hire
   Linux, Java, perl, Solaris -- Consulting, Training, Development

"Fighting for one's political stand is an honorable action, but re-
 fusing to acknowledge that there might be weaknesses in one's
 position - in order to identify them so that they can be remedied -
 is a large enough problem with the Open Source movement that it
 deserves to be on this list of the top five problems."
                       -- Michelle Levesque, "Fundamental Issues with
                                    Open Source Software Development"

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to