java.lang.IllegalArgumentException: Comparison method violates its general contract!

Apache's JIRA Issue Tracker | Andy Belsky | 2 years ago
  1. 0

    The smallest sample I could create is the following. We've got two Groovy classes, one of which is a trait and another implements that trait. {code:title=TestTrait.groovy} package test trait TestTrait { Object userRepository Object respondentRepository Object surveyStatsRepository Object surveyRepository Object questionRepository Object questionOptionRepository Object answerRepository Object surveyInvitationRepository Object invitationDeliveryRepository Object surveyPatternRepository Object accessNumberRepository Object deliverySubscriberRepository } {code} {code:title=TestClass.groovy} package test class TestClass implements TestTrait { } {code} Then let's compile those using the command line: {code} $ JAVA_HOME/bin/java -cp ../lib/groovy-all-2.4.3.jar org.codehaus.groovy.tools.FileSystemCompiler -cp ../lib/groovy-all-2.4.3.jar test/* {code} This results in the following compiler error: {code} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during canonicalization: Comparison method violates its general contract! java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at org.codehaus.groovy.transform.trait.TraitComposer.applyTrait(TraitComposer.java:202) at org.codehaus.groovy.transform.trait.TraitComposer.doExtendTraits(TraitComposer.java:111) at org.codehaus.groovy.control.CompilationUnit$4.call(CompilationUnit.java:188) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1052) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:588) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:566) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:543) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:522) at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:59) at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:215) at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:148) at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:178) at org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:162) 1 error {code}

    Apache's JIRA Issue Tracker | 2 years ago | Andy Belsky
    java.lang.IllegalArgumentException: Comparison method violates its general contract!
  2. 0

    The smallest sample I could create is the following. We've got two Groovy classes, one of which is a trait and another implements that trait. {code:title=TestTrait.groovy} package test trait TestTrait { Object userRepository Object respondentRepository Object surveyStatsRepository Object surveyRepository Object questionRepository Object questionOptionRepository Object answerRepository Object surveyInvitationRepository Object invitationDeliveryRepository Object surveyPatternRepository Object accessNumberRepository Object deliverySubscriberRepository } {code} {code:title=TestClass.groovy} package test class TestClass implements TestTrait { } {code} Then let's compile those using the command line: {code} $ JAVA_HOME/bin/java -cp ../lib/groovy-all-2.4.3.jar org.codehaus.groovy.tools.FileSystemCompiler -cp ../lib/groovy-all-2.4.3.jar test/* {code} This results in the following compiler error: {code} org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during canonicalization: Comparison method violates its general contract! java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.TimSort.mergeLo(TimSort.java:747) at java.util.TimSort.mergeAt(TimSort.java:483) at java.util.TimSort.mergeCollapse(TimSort.java:410) at java.util.TimSort.sort(TimSort.java:214) at java.util.TimSort.sort(TimSort.java:173) at java.util.Arrays.sort(Arrays.java:659) at java.util.Collections.sort(Collections.java:217) at org.codehaus.groovy.transform.trait.TraitComposer.applyTrait(TraitComposer.java:202) at org.codehaus.groovy.transform.trait.TraitComposer.doExtendTraits(TraitComposer.java:111) at org.codehaus.groovy.control.CompilationUnit$4.call(CompilationUnit.java:188) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1052) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:588) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:566) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:543) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:522) at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:59) at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:215) at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompile(FileSystemCompiler.java:148) at org.codehaus.groovy.tools.FileSystemCompiler.commandLineCompileWithErrorHandling(FileSystemCompiler.java:178) at org.codehaus.groovy.tools.FileSystemCompiler.main(FileSystemCompiler.java:162) 1 error {code}

    Apache's JIRA Issue Tracker | 2 years ago | Andy Belsky
    java.lang.IllegalArgumentException: Comparison method violates its general contract!
  3. Speed up your debug routine!

    Automated exception search integrated into your IDE

  4. 0

    Requesting from behind an iron pipe throws an exception and kicks the client

    GitHub | 1 month ago | firelizzard18
    java.lang.IllegalArgumentException: Comparison method violates its general contract!
  5. 0

    java.lang.IllegalArgumentException: Comparison method violates its general contract! [Archive] - Pentaho Community Forums

    pentaho.com | 9 months ago
    java.lang.IllegalArgumentException: Comparison method violates its general contract!

    15 unregistered visitors
    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.lang.IllegalArgumentException

      Comparison method violates its general contract!

      at java.util.TimSort.mergeLo()
    2. Java RT
      Collections.sort
      1. java.util.TimSort.mergeLo(TimSort.java:777)
      2. java.util.TimSort.mergeAt(TimSort.java:514)
      3. java.util.TimSort.mergeCollapse(TimSort.java:441)
      4. java.util.TimSort.sort(TimSort.java:245)
      5. java.util.Arrays.sort(Arrays.java:1512)
      6. java.util.ArrayList.sort(ArrayList.java:1454)
      7. java.util.Collections.sort(Collections.java:175)
      7 frames
    3. Groovy
      Groovyc.runCompiler
      1. org.codehaus.groovy.transform.trait.TraitComposer.applyTrait(TraitComposer.java:205)
      2. org.codehaus.groovy.transform.trait.TraitComposer.doExtendTraits(TraitComposer.java:114)
      3. org.codehaus.groovy.control.CompilationUnit$4.call(CompilationUnit.java:191)
      4. org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1055)
      5. org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:591)
      6. org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:569)
      7. org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:546)
      8. org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:525)
      9. org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:61)
      10. org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:217)
      11. org.codehaus.groovy.ant.Groovyc.runCompiler(Groovyc.java:1165)
      11 frames