ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik-Berndt Scheper (JIRA)" <j...@apache.org>
Subject [jira] Commented: (IVY-831) NPE in AbstractResolver.exists() if a resource cannot be found
Date Tue, 10 Jun 2008 13:26:46 GMT

    [ https://issues.apache.org/jira/browse/IVY-831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603867#action_12603867
] 

Erik-Berndt Scheper commented on IVY-831:
-----------------------------------------

Positive. 

If I run "ant coverage-report" when building ivy, I get 26 errors in org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParserTest
(all except testAccept), with the following output:

{noformat}
null download report returned by null when trying to download org.apache#test;1.0!test.jar(source)

java.lang.IllegalStateException: null download report returned by null when trying to download
org.apache#test;1.0!test.jar(source)
at org.apache.ivy.plugins.resolver.AbstractResolver.exists(AbstractResolver.java:201)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.addSourcesAndJavadocArtifactsIfPresent(PomModuleDescriptorParser.java:267)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:246)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:104)
at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParserTest.testSimple(PomModuleDescriptorParserTest.java:89)
{noformat}


Maybe the root cause is in this unit test. It uses the following resolver:
{code:title=PomModuleDescriptorParserTest.java|borderStyle=solid}
    private IvySettings settings = new IvySettings();
    
    private class MockedDependencyResolver extends MockResolver {        
        public ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data)

                throws ParseException {
            //TODO make it a real mock and check that dd and data are the one that are expected
            DefaultModuleDescriptor moduleDesc = DefaultModuleDescriptor.newDefaultInstance(
                                                                    dd.getDependencyRevisionId());
            ResolvedModuleRevision r = new ResolvedModuleRevision(this,this,moduleDesc,null);
            return r;
        }
    }
{code}

> NPE in AbstractResolver.exists() if a resource cannot be found
> --------------------------------------------------------------
>
>                 Key: IVY-831
>                 URL: https://issues.apache.org/jira/browse/IVY-831
>             Project: Ivy
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-RC1
>            Reporter: Erik-Berndt Scheper
>            Assignee: Xavier Hanin
>             Fix For: 2.0-RC1
>
>
> A NullPointerException occurs inAbstractResolver.exists(AbstractResolver.java:196) if
a host cannot be found
> Reproducible with "ant coverage-report" behind a firewall with proxy install disabled.
> Resulting stack trace:
> {noformat}
> java.lang.NullPointerException
> at org.apache.ivy.plugins.resolver.AbstractResolver.exists(AbstractResolver.java:196)
> at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.addSourcesAndJavadocArtifactsIfPresent(PomModuleDescriptorParser.java:267)
> at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:246)
> at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParser.parseDescriptor(PomModuleDescriptorParser.java:104)
> at org.apache.ivy.plugins.parser.m2.PomModuleDescriptorParserTest.testSimple(PomModuleDescriptorParserTest.java:89)
> {noformat}
> Offending code:
> {noformat}
>     /**
>      * Default implementation actually download the artifact Subclasses should overwrite
this to
>      * avoid the download
>      */
>     public boolean exists(Artifact artifact) {
>         DownloadReport dr = download(new Artifact[] {artifact}, new DownloadOptions());
>         ArtifactDownloadReport adr = dr.getArtifactReport(artifact);
>         return adr.getDownloadStatus() != DownloadStatus.FAILED;
>     }
> {noformat}
> If the DownloadReport instance is null, a NPE occurs

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message