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

CacheManager with useOrigin=true crash while parsing local ivy descriptor and fallback without error.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.2.0
    • unspecified
    • Core

    Description

      IVY useOrigin=true setting can corrupt the cache. Modules built locally aren't found.

      If a component B--> depends A and download the A module(using .POM descriptor) from artifactory.
      The module in /cache.dir/ resolved using a .POM is converted to an ivy format.
      The .POM from artifactory is stored in file ivy-1.0.0.0-SNAPSHOT.xml.original

      If the module A is build locally, the module is published using ivy format and the parser crash trying to compare the ivy converted and the local ivy file(remote vs local).

      If I disable useOrigin, the local ivy is converted (copied in cache) and the local build is found.

      I need to use ant -v option to see the following stack trace.

      #commons;21.0.0.0-SNAPSHOT!ivy.xml(ivy.original)
      [ivy:retrieve] problem occurred while resolving dependency: microflex#commons;21.0.0.0-SNAPSHOT {runtime=[runtime], provided=[provided]} with local-check: java.text.ParseException: [unknown tag project in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] , unknown tag modelVersion in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] , unknown tag groupId in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] , unknown tag artifactId in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] , unknown tag packaging in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] , unknown tag version in file:/opt/development/scm.toolkits/cache/0/microflex/commons/ivy-21.0.0.0-SNAPSHOT.xml.original
      [ivy:retrieve] ]
      [ivy:retrieve] 	at org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser$AbstractParser.checkErrors(AbstractModuleDescriptorParser.java:89)
      [ivy:retrieve] 	at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:272)
      [ivy:retrieve] 	at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:112)
      [ivy:retrieve] 	at org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser.parseDescriptor(AbstractModuleDescriptorParser.java:48)
      [ivy:retrieve] 	at org.apache.ivy.core.cache.DefaultRepositoryCacheManager$MyModuleDescriptorProvider.provideModule(DefaultRepositoryCacheManager.java:659)
      [ivy:retrieve] 	at org.apache.ivy.core.cache.ModuleDescriptorMemoryCache.getStale(ModuleDescriptorMemoryCache.java:68)
      [ivy:retrieve] 	at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.getStaledMd(DefaultRepositoryCacheManager.java:676)
      [ivy:retrieve] 	at org.apache.ivy.core.cache.DefaultRepositoryCacheManager.cacheModuleDescriptor(DefaultRepositoryCacheManager.java:993)
      [ivy:retrieve] 	at org.apache.ivy.plugins.resolver.BasicResolver.parse(BasicResolver.java:546)
      [ivy:retrieve] 	at org.apache.ivy.plugins.resolver.BasicResolver.getDependency(BasicResolver.java:266)
      [ivy:retrieve] 	at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
      [ivy:retrieve] 	at org.apache.ivy.plugins.resolver.ChainResolver.getDependency(ChainResolver.java:104)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.IvyNode.loadData(IvyNode.java:169)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.VisitNode.loadData(VisitNode.java:287)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:696)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.doFetchDependencies(ResolveEngine.java:781)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.fetchDependencies(ResolveEngine.java:704)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.getDependencies(ResolveEngine.java:576)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:237)
      [ivy:retrieve] 	at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:195)
      [ivy:retrieve] 	at org.apache.ivy.Ivy.resolve(Ivy.java:502)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyResolve.doExecute(IvyResolve.java:244)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyPostResolveTask.ensureResolved(IvyPostResolveTask.java:217)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyPostResolveTask.prepareAndCheck(IvyPostResolveTask.java:164)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyRetrieve.doExecute(IvyRetrieve.java:57)
      [ivy:retrieve] 	at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
      [ivy:retrieve] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
      [ivy:retrieve] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      [ivy:retrieve] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      [ivy:retrieve] 	at java.lang.reflect.Method.invoke(Method.java:597)
      [ivy:retrieve] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      [ivy:retrieve] 	at org.apache.tools.ant.Task.perform(Task.java:348)
      [ivy:retrieve] 	at org.apache.tools.ant.Target.execute(Target.java:390)
      [ivy:retrieve] 	at org.apache.tools.ant.Target.performTasks(Target.java:411)
      [ivy:retrieve] 	at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
      [ivy:retrieve] 	at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:38)
      [ivy:retrieve] 	at org.eclipse.ant.internal.launching.remote.EclipseSingleCheckExecutor.executeTargets(EclipseSingleCheckExecutor.java:30)
      [ivy:retrieve] 	at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
      [ivy:retrieve] 	at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:442)
      [ivy:retrieve] 	at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:302)
      [ivy:retrieve] 	at org.apache.tools.ant.taskdefs.SubAnt.execute(SubAnt.java:221)
      [ivy:retrieve] 	at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
      [ivy:retrieve] 	at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
      [ivy:retrieve] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      [ivy:retrieve] 	at java.lang.reflect.Method.invoke(Method.java:597)
      [ivy:retrieve] 	at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
      

      Attachments

        1. ivy_bug_config.txt
          2 kB
          devantor

        Activity

          People

            Unassigned Unassigned
            devantor devantor
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: