[ 
https://issues.apache.org/jira/browse/HADOOP-8031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13283897#comment-13283897
 ] 

Elias Ross commented on HADOOP-8031:
------------------------------------

Eli,

Thanks for your response. I would like to reproduce the problem but I'd have to 
somehow embed the .xml file inside a .jar and adjust the test classpath to 
match. I'd likely have to isolate the test from the rest of the existing 
classpath as well. Maybe you could guide me through this?

Thanks.
                
> Configuration class fails to find embedded .jar resources; should use 
> URL.openStream()
> --------------------------------------------------------------------------------------
>
>                 Key: HADOOP-8031
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8031
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: conf
>    Affects Versions: 2.0.0-alpha
>            Reporter: Elias Ross
>            Assignee: Elias Ross
>         Attachments: 0001-fix-HADOOP-7982-class-loader.patch, hadoop-8031.txt
>
>
> While running a hadoop client within RHQ (monitoring software) using its 
> classloader, I see this:
> 2012-02-07 09:15:25,313 INFO  [ResourceContainer.invoker.daemon-2] 
> (org.apache.hadoop.conf.Configuration)- parsing 
> jar:file:/usr/local/rhq-agent/data/tmp/rhq-hadoop-plugin-4.3.0-SNAPSHOT.jar6856622641102893436.classloader/hadoop-core-0.20.2+737+1.jar7204287718482036191.tmp!/core-default.xml
> 2012-02-07 09:15:25,318 ERROR [InventoryManager.discovery-1] 
> (rhq.core.pc.inventory.InventoryManager)- Failed to start component for 
> Resource[id=16290, type=NameNode, key=NameNode:/usr/lib/hadoop-0.20, 
> name=NameNode, parent=vg61l01ad-hadoop002.apple.com] from synchronized merge.
> org.rhq.core.clientapi.agent.PluginContainerException: Failed to start 
> component for resource Resource[id=16290, type=NameNode, 
> key=NameNode:/usr/lib/hadoop-0.20, name=NameNode, 
> parent=vg61l01ad-hadoop002.apple.com].
> Caused by: java.lang.RuntimeException: core-site.xml not found
>       at 
> org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:1308)
>       at 
> org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:1228)
>       at 
> org.apache.hadoop.conf.Configuration.getProps(Configuration.java:1169)
>       at org.apache.hadoop.conf.Configuration.set(Configuration.java:438)
> This is because the URL
> jar:file:/usr/local/rhq-agent/data/tmp/rhq-hadoop-plugin-4.3.0-SNAPSHOT.jar6856622641102893436.classloader/hadoop-core-0.20.2+737+1.jar7204287718482036191.tmp!/core-default.xml
> cannot be found by DocumentBuilder (doesn't understand it). (Note: the logs 
> are for an old version of Configuration class, but the new version has the 
> same code.)
> The solution is to obtain the resource stream directly from the URL object 
> itself.
> That is to say:
> {code}
>          URL url = getResource((String)name);
> -        if (url != null) {
> -          if (!quiet) {
> -            LOG.info("parsing " + url);
> -          }
> -          doc = builder.parse(url.toString());
> -        }
> +        doc = builder.parse(url.openStream());
> {code}
> Note: I have a full patch pending approval at Apple for this change, 
> including some cleanup.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to