Return-Path: Delivered-To: apmail-ant-notifications-archive@locus.apache.org Received: (qmail 54491 invoked from network); 11 Dec 2007 08:38:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 11 Dec 2007 08:38:05 -0000 Received: (qmail 18433 invoked by uid 500); 11 Dec 2007 08:37:53 -0000 Delivered-To: apmail-ant-notifications-archive@ant.apache.org Received: (qmail 18406 invoked by uid 500); 11 Dec 2007 08:37:53 -0000 Mailing-List: contact notifications-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ant.apache.org Delivered-To: mailing list notifications@ant.apache.org Received: (qmail 18394 invoked by uid 99); 11 Dec 2007 08:37:53 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2007 00:37:53 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 11 Dec 2007 08:37:40 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 4BD52714231 for ; Tue, 11 Dec 2007 00:37:43 -0800 (PST) Message-ID: <8114274.1197362263308.JavaMail.jira@brutus> Date: Tue, 11 Dec 2007 00:37:43 -0800 (PST) From: "Andrea Bernardo Ciddio (JIRA)" To: notifications@ant.apache.org Subject: [jira] Closed: (IVY-659) NPE in namespace transformation during the ivy:findrevision and ivy:resolve task execution In-Reply-To: <8682098.1196989543369.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/IVY-659?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrea Bernardo Ciddio closed IVY-659. -------------------------------------- > NPE in namespace transformation during the ivy:findrevision and ivy:resolve task execution > ------------------------------------------------------------------------------------------ > > Key: IVY-659 > URL: https://issues.apache.org/jira/browse/IVY-659 > Project: Ivy > Issue Type: Bug > Components: Core > Affects Versions: 2.0.0-alpha-1, 2.0.0-alpha-2, 2.0.0-beta-1, 2.0 > Reporter: Andrea Bernardo Ciddio > Assignee: Gilles Scokart > Priority: Critical > Fix For: 2.0.0-beta-2 > > > While executing this ant code > {code:xml} > [...] > > > > > [...] > {code} > using this ivy settings file: > {code:xml} > > > > namespace="test-ns" root="${public.root}" pattern="${public.pattern}" /> > > > > > > > > > > > > > > > > > {code} > a NullPointerException is raised: > {code} > java.lang.NullPointerException > at org.apache.ivy.plugins.namespace.MRIDTransformationRule$MridRuleMatcher.match(MRIDTransformationRule.java:38) > at org.apache.ivy.plugins.namespace.MRIDTransformationRule.transform(MRIDTransformationRule.java:133) > at org.apache.ivy.plugins.namespace.Namespace$2.transform(Namespace.java:65) > at org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor.transformInstance(DefaultDependencyDescriptor.java:82) > at org.apache.ivy.plugins.namespace.NameSpaceHelper.transform(NameSpaceHelper.java:42) > at org.apache.ivy.plugins.resolver.AbstractResolver.toSystem(AbstractResolver.java:266) > at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:426) > at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:265) > at org.apache.ivy.plugins.resolver.IBiblioResolver.getDependency(IBiblioResolver.java:206) > at org.apache.ivy.core.resolve.ResolveEngine.findModule(ResolveEngine.java:945) > at org.apache.ivy.Ivy.findModule(Ivy.java:642) > at org.apache.ivy.ant.IvyFindRevision.doExecute(IvyFindRevision.java:98) > at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:275) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:357) > at org.apache.tools.ant.Target.performTasks(Target.java:385) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) > at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38) > at org.apache.tools.ant.Project.executeTargets(Project.java:1181) > at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416) > at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:357) > at org.apache.tools.ant.Target.performTasks(Target.java:385) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329) > at org.apache.tools.ant.Project.executeTarget(Project.java:1298) > at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1181) > at org.apache.tools.ant.Main.runBuild(Main.java:698) > at org.apache.tools.ant.Main.startAnt(Main.java:199) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104) > {code} > The same thing happens when calling ivy:resolve. > It has something to do with the way the ResolveEngine creates the DependencyDescriptor: > {code} > [...] > try { > return r.getDependency(new DefaultDependencyDescriptor(id, true), new ResolveData(this, > options, new ConfigurationResolveReport(this, md, "default", null, options))); > } catch (ParseException e) { > throw new RuntimeException("problem while parsing repository module descriptor for " > + id + ": " + e, e); > } > [...] > {code} > that does not set the parent revision id of the descriptor (leaving it null). After some digging into the code I wrote a simple patch that fixes this issue: > {code} > Index: org/apache/ivy/plugins/namespace/Namespace.java > =================================================================== > --- org/apache/ivy/plugins/namespace/Namespace.java (revision 601926) > +++ org/apache/ivy/plugins/namespace/Namespace.java (working copy) > @@ -37,6 +37,8 @@ > > private NamespaceTransformer fromSystemTransformer = new NamespaceTransformer() { > public ModuleRevisionId transform(ModuleRevisionId mrid) { > + if (mrid == null) > + return null; > for (Iterator iter = rules.iterator(); iter.hasNext();) { > NamespaceRule rule = (NamespaceRule) iter.next(); > ModuleRevisionId nmrid = rule.getFromSystem().transform(mrid); > @@ -56,6 +58,8 @@ > > private NamespaceTransformer toSystemTransformer = new NamespaceTransformer() { > public ModuleRevisionId transform(ModuleRevisionId mrid) { > + if (mrid == null) > + return null; > for (Iterator iter = rules.iterator(); iter.hasNext();) { > NamespaceRule rule = (NamespaceRule) iter.next(); > ModuleRevisionId nmrid = rule.getToSystem().transform(mrid); > {code} > Hope that's useful. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.