DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=39170>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=39170

           Summary: ConfigurationUtils.locate throws NullPointerException if
                    the context ClassLoader is null
           Product: Commons
           Version: 1.2 Final
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Configuration
        AssignedTo: commons-dev@jakarta.apache.org
        ReportedBy: [EMAIL PROTECTED]


Hello,

When the locate method attempts to find resource location from the context 
classpath 
(lines 375-384 in ConfigurationUtils.java) it fails (on line 378) if the 
context 
ClassLoader cannot be retrieved for the current thread.
I suppose this bug is quite difficult to reproduce. I came accross it when I 
and a 
colleague of mine were testing a Java API (kept in one jar) that is called from 
C++ 
application. In the static initializer of a Java class I used the next line to 
load 
settings:
config = new 
PropertiesConfiguration(ConfigurationUtils.locate("properties/routing.
properties"));
It worked fine if the class was used from another Java class that was normally 
loaded 
by JVM (for example my tests passed). But when my Java classes were executed by 
JVM 
started from C++ application it resulted in the next exception:
java.lang.NullPointerException
        at org.apache.commons.configuration.ConfigurationUtils.
locate(ConfigurationUtils.java:378)
        at org.apache.commons.configuration.ConfigurationUtils.
locate(ConfigurationUtils.java:255)
...
It is obvious from the ConfigurationUtils code that loader variable got null 
value 
(line 377) for some reason so the next step threw the exception.
I suppose this bug can be easily fixed (just to add an additional check if 
loader is 
not null).
As a workaround I will try to call locate method with a given base parameter 
(but it 
needs to determine location of my jar so it is a kind of overheads though it 
would 
work I hope).

Sorry for my English.

Hope it is useful,
Denis

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

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

Reply via email to