Details

    • Type: Sub-task
    • Status: Closed
    • Priority: Minor
    • Resolution: Implemented
    • Affects Version/s: Trunk
    • Fix Version/s: Upcoming Release
    • Component/s: base
    • Labels:
      None

      Description

      ExecutionPool.java:122, EQ_COMPARETO_USE_OBJECT_EQUALS
      Eq: org.apache.ofbiz.base.concurrent.ExecutionPool$Pulse defines compareTo(Object) and uses Object.equals()

      This class defines a compareTo(...) method but inherits its equals() method from java.lang.Object. Generally, the value of compareTo should return zero if and only if equals returns true. If this is violated, weird and unpredictable failures will occur in classes such as PriorityQueue. In Java 5 the PriorityQueue.remove method uses the compareTo method, while in Java 6 it uses the equals method.

      From the JavaDoc for the compareTo method in the Comparable interface:

      It is strongly recommended, but not strictly required that (a.compareTo(b)==0) == (a.equals(b)). Generally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact. The recommended language is "Note: this class has a natural ordering that is inconsistent with equals."

        Activity

        Hide
        jacques.le.roux Jacques Le Roux added a comment -

        Thanks Dennis,

        Your patch is in trunk at revision: 1804634

        Show
        jacques.le.roux Jacques Le Roux added a comment - Thanks Dennis, Your patch is in trunk at revision: 1804634
        Hide
        Dennis Balkir Dennis Balkir added a comment -
        • implemented equals method to fix potential problems
        • implemented hashCode method because I implemented equals method
        • implemented timeDiff method to keep the code DRY
        Show
        Dennis Balkir Dennis Balkir added a comment - implemented equals method to fix potential problems implemented hashCode method because I implemented equals method implemented timeDiff method to keep the code DRY

          People

          • Assignee:
            jacques.le.roux Jacques Le Roux
            Reporter:
            Dennis Balkir Dennis Balkir
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development