https://bz.apache.org/bugzilla/show_bug.cgi?id=58535

            Bug ID: 58535
           Summary: ReverseComparator unsafely negates result
           Product: Tomcat 8
           Version: trunk
          Hardware: PC
                OS: Mac OS X 10.1
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: anth...@whitford.com

Created attachment 33210
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=33210&action=edit
Patch to avoid negation risk

Consider the code:

    @Override
    public int compare(Session o1, Session o2) {
        int returnValue = comparator.compare(o1, o2);
        return (- returnValue);
    }

This code negates the return value of the compare method. This is a
questionable or bad programming practice, since if the return value is
Integer.MIN_VALUE, negating the return value won't negate the sign of the
result. You can achieve the same intended result by reversing the order of the
operands rather than by negating the results.

See
http://findbugs.sourceforge.net/bugDescriptions.html#RV_NEGATING_RESULT_OF_COMPARETO

Recommend the following:

    @Override
    public int compare(Session o1, Session o2) {
        // Note that comparing o2 with o1 to get reverse result...
        return comparator.compare(o2, o1);
    }

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to