Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-6468

Ivy plugin cannot handle custom latest strategies and conflict managers

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • ivy-plugin
    • None

      My company uses a different versioning notation, e.g. R1A01 instead of 1.0.1-1. This has resulted in a custom latest strategy which I add to each project as follows:

      <dependencies>
      <dependency org="com.bla.bla" name="ftf" rev="R1A01" conf="test-compile->api;test-runtime->runtime"/>
      <conflict org="com.bla.bla.*" manager="latest-product-revision-conflict-manager"/>
      </dependencies>

      This works fine outside Hudson of course but when running the build in Hudson, I get the following exception:

      ERROR: Failed to parse ivy.xml files
      java.io.IOException: Unable to parse ivy descriptors
      at hudson.ivy.IvyModuleSetBuild$RunnerImpl.parseIvyDescriptorFiles(IvyModuleSetBuild.java:532)
      at hudson.ivy.IvyModuleSetBuild$RunnerImpl.doRun(IvyModuleSetBuild.java:368)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:416)
      at hudson.model.Run.run(Run.java:1244)
      at hudson.ivy.IvyModuleSetBuild.run(IvyModuleSetBuild.java:283)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:122)
      Caused by: java.lang.NullPointerException
      at org.apache.ivy.core.sort.CollectionOfModulesToSort.addToModulesByModuleId(CollectionOfModulesToSort.java:71)
      at org.apache.ivy.core.sort.CollectionOfModulesToSort.<init>(CollectionOfModulesToSort.java:66)
      at org.apache.ivy.core.sort.ModuleDescriptorSorter.<init>(ModuleDescriptorSorter.java:51)
      at org.apache.ivy.core.sort.SortEngine.sortModuleDescriptors(SortEngine.java:99)
      at org.apache.ivy.Ivy.sortModuleDescriptors(Ivy.java:639)
      at hudson.ivy.IvyModuleSetBuild$IvyXmlParser.call(IvyModuleSetBuild.java:798)
      at hudson.ivy.IvyModuleSetBuild$IvyXmlParser.call(IvyModuleSetBuild.java:744)
      at hudson.remoting.UserRequest.perform(UserRequest.java:114)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:270)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

      which is understandable as the embedded Ivy has no notion of our custom conflict manager/latest strategy.

      Is there any way to make the plugin to disregard this configuration line as it has no impact on the plugin itself or make it work in some other way? I have seen that Ivy configurations can be defined on main Hudson configuration page but I do not understand how they can be used from a project/job (Ivy project type).

            tbingaman Timothy Bingaman
            bloomper bloomper
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: