Uploaded image for project: 'Ivy'
  1. Ivy
  2. IVY-1340

NullPointerException from URLResolver (URLRepository

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.2.0
    • 2.3.0-RC1
    • Core
    • None
    • Windows 7, Ant 1.8.1, Ivy 2.2.0, Java 1.6

    Description

      There is an inconsistency in the handling of URLResource "file:" URLs. If the url is "file:d:mydir/", it will discover the artifacts at that address, but the output contains a NullPointerException warning due to URLRepository.list(String) line: 119 (in 2.2.0). Changing it to "file://d:mydir/" gets rid of the NullPointerException. This is because of new URI(parent).getPath() returns null for file: but not file://. new URL(parent).getFile() works with both as an alternative.

      Also repros with 2.2.1.alpha_20120313100444

      Ivy output:
      [ivy:resolve] problem while listing resources in file:o:/build/ivyup/deliverables//com.expedia.cc.container.core with Local:
      [ivy:resolve] java.lang.NullPointerException null

      The full stack at the time of the exception:
      Thread [main] (Suspended (breakpoint at line 36 in NullPointerException))
      NullPointerException.<init>() line: 36 [local variables unavailable]
      File.<init>(String) line: 222
      URLRepository.list(String) line: 119
      ResolverHelper.listTokenValues(Repository, String, String) line: 64
      ResolverHelper.findAll(Repository, ModuleRevisionId, String, Artifact) line: 146
      URLResolver(RepositoryResolver).listResources(Repository, ModuleRevisionId, String, Artifact) line: 185
      URLResolver(RepositoryResolver).findDynamicResourceUsingPattern(ResourceMDParser, ModuleRevisionId, String, Artifact, Date) line: 149
      URLResolver(RepositoryResolver).findResourceUsingPattern(ModuleRevisionId, String, Artifact, ResourceMDParser, Date) line: 132
      URLResolver(AbstractPatternsBasedResolver).findResourceUsingPatterns(ModuleRevisionId, List, Artifact, ResourceMDParser, Date) line: 93
      URLResolver(AbstractPatternsBasedResolver).findArtifactRef(Artifact, Date) line: 81
      URLResolver(BasicResolver).getArtifactRef(Artifact, Date) line: 928
      URLResolver(BasicResolver).findFirstArtifactRef(ModuleDescriptor, DependencyDescriptor, ResolveData) line: 865
      URLResolver(BasicResolver).getDependency(DependencyDescriptor, ResolveData) line: 236
      ChainResolver.getDependency(DependencyDescriptor, ResolveData) line: 104
      IvyNode.loadData(String, IvyNode, String, String, boolean, IvyNodeUsage) line: 169
      VisitNode.loadData(String, boolean) line: 287
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 696
      ResolveEngine.doFetchDependencies(VisitNode, String) line: 781
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 704
      ResolveEngine.doFetchDependencies(VisitNode, String) line: 769
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 704
      ResolveEngine.doFetchDependencies(VisitNode, String) line: 781
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 704
      ResolveEngine.doFetchDependencies(VisitNode, String) line: 769
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 704
      ResolveEngine.doFetchDependencies(VisitNode, String) line: 769
      ResolveEngine.fetchDependencies(VisitNode, String, boolean) line: 704
      ResolveEngine.getDependencies(ModuleDescriptor, ResolveOptions, ResolveReport) line: 576
      ResolveEngine.resolve(ModuleDescriptor, ResolveOptions) line: 237
      ResolveEngine.resolve(URL, ResolveOptions) line: 195
      Ivy.resolve(URL, ResolveOptions) line: 502
      IvyResolve.doExecute() line: 244
      IvyResolve(IvyTask).execute() line: 277
      UnknownElement.execute() line: 291
      GeneratedMethodAccessor4.invoke(Object, Object[]) line: not available
      DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
      Method.invoke(Object, Object...) line: 597
      DispatchUtils.execute(Object) line: 106
      UnknownElement(Task).perform() line: 348
      Target.execute() line: 390
      Target.performTasks() line: 411
      Project.executeSortedTargets(Vector) line: 1397
      Project.executeTarget(String) line: 1366
      DefaultExecutor.executeTargets(Project, String[]) line: 41
      Project.executeTargets(Vector) line: 1249
      Main.runBuild(ClassLoader) line: 801
      Main.startAnt(String[], Properties, ClassLoader) line: 218
      Launcher.run(String[]) line: 280
      Launcher.main(String[]) line: 109

      Attachments

        Activity

          People

            maartenc Maarten Coene
            szetheli Sven Zethelius
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: