Galkin Alexey created ARTEMIS-4738:
--------------------------------------
Summary: OVERRIDING EQUALS NOT SYMMETRIC in ActiveMQQueue.java
Key: ARTEMIS-4738
URL: https://issues.apache.org/jira/browse/ARTEMIS-4738
Project: ActiveMQ Artemis
Issue Type: Bug
Reporter: Galkin Alexey
The equals method is overridden in the ActiveMQQueue class and this method uses
the instanceof operator to check the type of the object. However, this does not
take into account the symmetry of the equals method. The equals method must be
symmetric, that is, if a.equals(b) returns true, then b.equals(a) must return
true.
In this case, if the object "o" is not an instance of the ActiveMQQueue class,
the equals method immediately returns false([line
83|https://github.com/apache/activemq-artemis/blob/main/artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQQueue.java]),
without giving the opportunity to check, on the contrary, whether the current
object is an instance of the object "o". Therefore, the equals method in this
case does not satisfy the symmetry requirement and can lead to incorrect
results when comparing objects.
Found by Linux Verification Center (portal.linuxtesting.ru) with SVACE.
Author Alexey Galkin.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)