Return-Path: X-Original-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Delivered-To: apmail-hadoop-common-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 315AFD2E5 for ; Thu, 6 Sep 2012 19:17:09 +0000 (UTC) Received: (qmail 65864 invoked by uid 500); 6 Sep 2012 19:17:08 -0000 Delivered-To: apmail-hadoop-common-issues-archive@hadoop.apache.org Received: (qmail 65807 invoked by uid 500); 6 Sep 2012 19:17:08 -0000 Mailing-List: contact common-issues-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-issues@hadoop.apache.org Delivered-To: mailing list common-issues@hadoop.apache.org Received: (qmail 65711 invoked by uid 99); 6 Sep 2012 19:17:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2012 19:17:08 +0000 Date: Fri, 7 Sep 2012 06:17:08 +1100 (NCT) From: "Hudson (JIRA)" To: common-issues@hadoop.apache.org Message-ID: <176580340.46266.1346959028670.JavaMail.jiratomcat@arcas> In-Reply-To: <324207452.10124.1328646179434.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (HADOOP-8031) Configuration class fails to find embedded .jar resources; should use URL.openStream() MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/HADOOP-8031?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13449956#comment-13449956 ] Hudson commented on HADOOP-8031: -------------------------------- Integrated in Hadoop-Mapreduce-trunk-Commit #2719 (See [https://builds.apache.org/job/Hadoop-Mapreduce-trunk-Commit/2719/]) HADOOP-8749. HADOOP-8031 changed the way in which relative xincludes are handled in Configuration. (ahmed via tucu) (Revision 1381703) Result = FAILURE tucu : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1381703 Files : * /hadoop/common/trunk/hadoop-common-project/hadoop-common/CHANGES.txt * /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java * /hadoop/common/trunk/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/conf/TestConfiguration.java > 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 > Fix For: 2.2.0-alpha > > Attachments: 0001-fix-HADOOP-7982-class-loader.patch, HADOOP-8031-part2.patch, HADOOP-8031.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 For more information on JIRA, see: http://www.atlassian.com/software/jira