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

PomModuleDescriptorBuilder. overwriteExtraInfoIfExists keeps on adding ExtraInfo, whether it's in the cache or not

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 2.5.0-rc1
    • None
    • Core
    • None

    Description

      In PomModuleDescriptorBuilder.java

          private void overwriteExtraInfoIfExists(String key, String value) {
              boolean found = false;
              for (ExtraInfoHolder extraInfoHolder : ivyModuleDescriptor.getExtraInfos()) {
                  if (extraInfoHolder.getName().equals(key)) {
                      extraInfoHolder.setContent(value);
                      found = false;
                  }
              }
              if (!found) {
                  ivyModuleDescriptor.getExtraInfos().add(new ExtraInfoHolder(key, value));
              }
          }
      

      The "found = false" inside the for loop should be "found = true".

      As a result of the bug, the list is getting longer and longer, in some cases, the ivy command would run for hours.

      I believe the bug was introduced:

      $ svn log -r 1592624 -v
      ------------------------------------------------------------------------
      r1592624 | jlboudart | 2014-05-05 12:52:53 -0700 (Mon, 05 May 2014) | 1 line
      Changed paths:
         M /ant/ivy/core/trunk/CHANGES.txt
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/DefaultModuleDescriptor.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/core/module/descriptor/ModuleDescriptor.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/core/BundleInfoAdapter.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/osgi/repo/AbstractOSGiResolver.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorBuilder.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParser.java
         M /ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorParser.java
         M /ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/m2/PomModuleDescriptorParserTest.java
         M /ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/XmlModuleDescriptorWriterTest.java
         A /ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/parser/xml/test-write-extrainfo-from-maven.xml
      
      FIX: regression introduced by IVY-1457, dependency management wasn't properly handled introducing lots of resolution failures
      ------------------------------------------------------------------------
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jinfeng Jin Feng
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: