« Return to Thread: NPE when using exclude rules

Re: NPE when using exclude rules

by hdockter :: Rate this Message:

Reply to Author | View in Thread


On May 26, 2009, at 8:45 PM, Jason Porter wrote:

> How is this working with Ivy?  AFAIK this is broken in Ivy.

Not that I know off. What exactly do you mean is broken? The whole Ivy  
exclude mechanism?

- Hans

>
>
> Jason Porter
> Real Programmers think better when playing Adventure or Rogue.
>
> PGP key id: 926CCFF5
> PGP fingerprint: 64C2 C078 13A9 5B23 7738 F7E5 1046 C39B 926C CFF5
> PGP key available at: keyserver.net, pgp.mit.edu
>
>
>
> On Tue, May 26, 2009 at 12:38, Hans Dockter <mail@...> wrote:
>> Hi Rafa,
>>
>> I can't reproduce this. The following code works for me (MetaModel  
>> has a
>> dependency on hsqldb):
>>
>> usePlugin 'java'
>>
>> repositories {
>>        mavenCentral()
>> }
>>
>> configurations {
>>  all*.exclude group: "hsqldb"
>> }
>>
>> dependencies {
>>        compile "dk.eobjects.commons:MetaModel:1.0.7"
>> }
>>
>> task myTask << {
>>        configurations.testRuntime.each { file -> println file }
>> }
>>
>> P.S. You don't need to quote the task name any more when creating it.
>>
>> Could you create a test case and file a Jira?
>>
>> - Hans
>>
>> On May 26, 2009, at 8:11 PM, Rafael Serrano wrote:
>>
>>>
>>> Hi all,
>>>
>>> I am currently migrating from 0.5 to 0.6 and have almost succeeded  
>>> (thanks
>>> to the breaking changes doc) except for the exclusion of transitive
>>> dependencies. Actually, I'm getting a NPE when I try to iterate  
>>> over the
>>> files in a configuration.
>>>
>>> Here is a code snippet:
>>> configurations {
>>>  all*.exclude group: "hsqldb"
>>> }
>>> dependencies {
>>>  compile "a-jar-that-depends-on-hsqldb"
>>> }
>>> task "myTask" << {
>>>        configurations.testRuntime.each { file -> println file }
>>> }
>>>
>>> Is this really a bug or am I doing something wrong? In case it is  
>>> a bug,
>>> could you please think of a workaround?
>>>
>>> Thanks in advance. Regards
>>> Rafa
>>>
>>> PS: In case it helps, here is the stacktrace
>>> Execution failed for task ':myTask'.
>>>        at
>>> org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:183)
>>>        at
>>>
>>> org
>>> .gradle
>>> .execution
>>> .DefaultTaskExecuter.executeTask(DefaultTaskExecuter.java:153)
>>>        at
>>>
>>> org
>>> .gradle
>>> .execution.DefaultTaskExecuter.doExecute(DefaultTaskExecuter.java:
>>> 144)
>>>        at
>>>
>>> org
>>> .gradle
>>> .execution.DefaultTaskExecuter.execute(DefaultTaskExecuter.java:67)
>>>        at
>>>
>>> org
>>> .gradle
>>> .execution
>>> .TaskNameResolvingBuildExecuter
>>> .execute(TaskNameResolvingBuildExecuter.java:88)
>>>        at org.gradle.Gradle.runInternal(Gradle.java:121)
>>>        at org.gradle.Gradle.run(Gradle.java:93)
>>>        at org.gradle.Main.execute(Main.java:253)
>>>        at org.gradle.Main.main(Main.java:83)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>>> Method)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .DelegatingMethodAccessorImpl
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at org.gradle.BootstrapMain.main(BootstrapMain.java:53)
>>> Caused by: java.lang.RuntimeException:  
>>> java.lang.NullPointerException
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .ivyservice
>>> .DefaultIvyDependencyResolver
>>> .resolveAsReport(DefaultIvyDependencyResolver.java:72)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .ivyservice
>>> .DefaultIvyService.resolveAsReportInternal(DefaultIvyService.java:
>>> 120)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .ivyservice
>>> .DefaultIvyService.resolveAsReport(DefaultIvyService.java:110)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .configurations
>>> .DefaultConfiguration.resolveAsReport(DefaultConfiguration.java:156)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .configurations
>>> .DefaultConfiguration.resolve(DefaultConfiguration.java:147)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .configurations
>>> .DefaultConfiguration.getFiles(DefaultConfiguration.java:175)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .AbstractFileCollection.iterator(AbstractFileCollection.java:48)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>>> Method)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .DelegatingMethodAccessorImpl
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> org
>>> .codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>>> 86)
>>>        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)
>>>        at  
>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)
>>>        at  
>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHelper.java:
>>> 766)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:754)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.asIterator(InvokerHelper.java:506)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1056)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>>> Method)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .DelegatingMethodAccessorImpl
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime
>>> .metaclass.ReflectionMetaMethod.invoke(ReflectionMetaMethod.java:51)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime
>>> .metaclass.NewInstanceMetaMethod.invoke(NewInstanceMetaMethod.java:
>>> 54)
>>>        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)
>>>        at  
>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:912)
>>>        at  
>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokePojoMethod(InvokerHelper.java:
>>> 766)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:754)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime
>>> .ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:170)
>>>        at build_gradle$_run_closure13.doCall(build_gradle:202)
>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>>> Method)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>        at
>>>
>>> sun
>>> .reflect
>>> .DelegatingMethodAccessorImpl
>>> .invoke(DelegatingMethodAccessorImpl.java:25)
>>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>>        at
>>> org
>>> .codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
>>> 86)
>>>        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:230)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime
>>> .metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:248)
>>>        at  
>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:756)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:
>>> 778)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:758)
>>>        at
>>>
>>> org
>>> .codehaus
>>> .groovy
>>> .runtime
>>> .ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:170)
>>>        at  
>>> org.gradle.api.ClosureTaskAction.execute(DefaultTask.groovy:94)
>>>        at  
>>> org.gradle.api.ClosureTaskAction.execute(DefaultTask.groovy)
>>>        at
>>> org.gradle.api.internal.AbstractTask.doExecute(AbstractTask.java:
>>> 219)
>>>        at
>>> org.gradle.api.internal.AbstractTask.execute(AbstractTask.java:174)
>>>        ... 13 common frames omitted
>>> Caused by: java.lang.NullPointerException
>>>        at
>>>
>>> org.apache.ivy.plugins.matcher.ExactPatternMatcher
>>> $ExactMatcher.matches(ExactPatternMatcher.java:46)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy.plugins.matcher.MatcherHelper.matches(MatcherHelper.java:34)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy.plugins.matcher.MatcherHelper.matches(MatcherHelper.java:38)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy.plugins.matcher.MatcherHelper.matches(MatcherHelper.java:49)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy
>>> .core
>>> .module
>>> .descriptor
>>> .DefaultModuleDescriptor.doesExclude(DefaultModuleDescriptor.java:
>>> 627)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy.core.resolve.IvyNodeCallers.doesExclude(IvyNodeCallers.java:
>>> 288)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy
>>> .core
>>> .resolve.IvyNodeCallers.doesCallersExclude(IvyNodeCallers.java:269)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy
>>> .core
>>> .resolve.IvyNodeCallers.doesCallersExclude(IvyNodeCallers.java:251)
>>>        at
>>> org.apache.ivy.core.resolve.IvyNode.getArtifacts(IvyNode.java:830)
>>>        at
>>> org
>>> .apache.ivy.core.resolve.IvyNode.getSelectedArtifacts(IvyNode.java:
>>> 739)
>>>        at
>>>
>>> org
>>> .apache
>>> .ivy.core.report.ResolveReport.setDependencies(ResolveReport.java:
>>> 235)
>>>        at
>>> org
>>> .apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:
>>> 236)
>>>        at org.apache.ivy.Ivy.resolve(Ivy.java:512)
>>>        at
>>>
>>> org
>>> .gradle
>>> .api
>>> .internal
>>> .artifacts
>>> .ivyservice
>>> .DefaultIvyDependencyResolver
>>> .resolveAsReport(DefaultIvyDependencyResolver.java:68)
>>>        ... 59 common frames omitted
>>> --
>>> View this message in context:
>>> http://www.nabble.com/NPE-when-using-exclude-rules-tp23728395p23728395.html
>>> Sent from the gradle-user mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>   http://xircles.codehaus.org/manage_email
>>>
>>>
>>
>> --
>> Hans Dockter
>> Gradle Project Manager
>> http://www.gradle.org
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe from this list, please visit:
>>
>>   http://xircles.codehaus.org/manage_email
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe from this list, please visit:
>
>    http://xircles.codehaus.org/manage_email
>
>

--
Hans Dockter
Gradle Project Manager
http://www.gradle.org





---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


 « Return to Thread: NPE when using exclude rules