Uploaded image for project: 'Apache Flex'
  1. Apache Flex
  2. FLEX-35096

Correct comparison logic to comply with contract

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: Apache Flex 4.10.0, Apache Flex 4.11.0, Apache Flex 4.12.0, Apache Flex 4.13.0, Apache Flex 4.12.1, Apache Flex 4.14.0, Apache Flex 4.15.0, Apache Flex 4.14.1
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      win7 64 + eclipse4.3 + flash builder 4.7 64 + apache flex 4.10 + java 1.7(25)

      Description

      Since Apache Flex 4.10.x, developers have been required to add a VM argument to Eclipse, instructing the JVM to use legacy sorting logic as a workaround to an exception.

      e.g.:

      -vmargs
      #https://issues.apache.org/jira/browse/FLEX-33667
      -Djava.util.Arrays.useLegacyMergeSort=true

      The workaround is not a permanent solution, and one is long overdue. The Comparable object in question, which does not comply with the comparison contract, should be updated accordingly.

      The exception in question is:

      java.lang.IllegalArgumentException: Comparison method violates its general contract!
      at java.util.TimSort.mergeHi(Unknown Source)
      at java.util.TimSort.mergeAt(Unknown Source)
      at java.util.TimSort.mergeCollapse(Unknown Source)
      at java.util.TimSort.sort(Unknown Source)
      at java.util.TimSort.sort(Unknown Source)
      at java.util.Arrays.sort(Unknown Source)
      at flex2.compiler.swc.SwcGroup.updateMaps(SwcGroup.java:281)
      at flex2.compiler.swc.SwcGroup.<init>(SwcGroup.java:67)
      at flex2.compiler.swc.SwcCache.getSwcGroup(SwcCache.java:109)
      at flex2.compiler.swc.SwcCache.getSwcGroup(SwcCache.java:91)
      at flex2.compiler.CompilerSwcContext.load(CompilerSwcContext.java:96)
      at flex2.tools.oem.Application.recompile(Application.java:1170)
      at flex2.tools.oem.Application.compile(Application.java:894)
      at flex2.tools.flexbuilder.BuilderApplication.compile(BuilderApplication.java:367)
      at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder$MyBuilder.mybuild(ASApplicationBuilder.java:309)
      at com.adobe.flexbuilder.multisdk.compiler.internal.ASApplicationBuilder.build(ASApplicationBuilder.java:128)
      at com.adobe.flexbuilder.multisdk.compiler.internal.ASBuilder.build(ASBuilder.java:203)
      at com.adobe.flexbuilder.multisdk.compiler.internal.ASItemBuilder.build(ASItemBuilder.java:93)
      at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.buildItem(FlexProjectBuilder.java:708)
      at com.adobe.flexbuilder.project.compiler.internal.FlexProjectBuilder.build(FlexProjectBuilder.java:412)
      at com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.build(FlexIncrementalBuilder.java:171)
      at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
      at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239)
      at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292)
      at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
      at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295)
      at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351)
      at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374)
      at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:143)
      at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:241)
      at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                skylar.sutton@gmail.com Skylar Sutton
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: