http://bugzilla.qos.ch/show_bug.cgi?id=127

           Summary: LoggerComparator sorts incorrectly
           Product: logback-classic
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: Other
        AssignedTo: [email protected]
        ReportedBy: [EMAIL PROTECTED]


ch.qos.logback.classic.spi.LoggerComparator doesn't work as intended, because
it is violating the symmetric property and contract of
java.util.Comparator.compare(T, T).

While Logger l1 is checked against LoggerContext.ROOT_NAME, Logger l2 also
needs to be checked.

Current implementation:

  public int compare(Logger l1, Logger l2) {
    if (l1.getName().equals(LoggerContext.ROOT_NAME)) {
      return -1;
    }
    return l1.getName().compareTo(l2.getName());
  }

Corrected implementation:

  public int compare(Logger l1, Logger l2) {
    if(l1.getName().equals(LoggerContext.ROOT_NAME)){
      return -1;
    }
    if(l2.getName().equals(LoggerContext.ROOT_NAME)){
      return 1;
    }
    return l1.getName().compareTo(l2.getName());
  }


-- 
Configure bugmail: http://bugzilla.qos.ch/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
_______________________________________________
logback-dev mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-dev

Reply via email to