Uploaded image for project: 'Mule'
  1. Mule
  2. MULE-10246

TransformerWeighting violates transitivity requirement for Comparable

    XMLWordPrintable

Details

    • S3
    • Hide
      Root Exception stack trace:
      java.lang.IllegalArgumentException: Comparison method violates its general contract!
                      at java.util.ComparableTimSort.mergeHi(Unknown Source)
                      at java.util.ComparableTimSort.mergeAt(Unknown Source)
                      at java.util.ComparableTimSort.mergeForceCollapse(Unknown Source)
                      at java.util.ComparableTimSort.sort(Unknown Source)
                      at java.util.Arrays.sort(Unknown Source)
                      at java.util.Arrays.sort(Unknown Source)
                      at java.util.ArrayList.sort(Unknown Source)
                      at java.util.Collections.sort(Unknown Source)
                      at org.mule.registry.TypeBasedTransformerResolver.calculateTransformerWeightings(TypeBasedTransformerResolver.java:197)
      Show
      Root Exception stack trace: java.lang.IllegalArgumentException: Comparison method violates its general contract!                 at java.util.ComparableTimSort.mergeHi(Unknown Source)                 at java.util.ComparableTimSort.mergeAt(Unknown Source)                 at java.util.ComparableTimSort.mergeForceCollapse(Unknown Source)                 at java.util.ComparableTimSort.sort(Unknown Source)                 at java.util.Arrays.sort(Unknown Source)                 at java.util.Arrays.sort(Unknown Source)                 at java.util.ArrayList.sort(Unknown Source)                 at java.util.Collections.sort(Unknown Source)                 at org.mule.registry.TypeBasedTransformerResolver.calculateTransformerWeightings(TypeBasedTransformerResolver.java:197)
    • S3

    Description

      The method TypeBasedTransformerResolver.calculateTransformerWeightings seems to, on occasion, cause an exception when trying to sort a list of TransformerWeighting instances, implying that the TransformerWeighting class violates the requirements for Comparable :

      Exception fragment:

      Root Exception stack trace:
      java.lang.IllegalArgumentException: Comparison method violates its general contract!
      at java.util.ComparableTimSort.mergeHi(Unknown Source)
      at java.util.ComparableTimSort.mergeAt(Unknown Source)
      at java.util.ComparableTimSort.mergeForceCollapse(Unknown Source)
      at java.util.ComparableTimSort.sort(Unknown Source)
      at java.util.Arrays.sort(Unknown Source)
      at java.util.Arrays.sort(Unknown Source)
      at java.util.ArrayList.sort(Unknown Source)
      at java.util.Collections.sort(Unknown Source)
      at org.mule.registry.TypeBasedTransformerResolver.calculateTransformerWeightings(TypeBasedTransformerResolver.java:197)

      Note that this issue appears to be somewhat transient - it has occurred a number of times, and a restart of the server has always resolved the issue.

      Attachments

        Activity

          People

            rodrigo.merino@mulesoft.com Rodrigo Merino
            brad_c brad_c
            Votes:
            2 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: