commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anthony Whitford (JIRA)" <j...@apache.org>
Subject [jira] [Created] (POOL-306) BaseGenericObjectPool IdentityWrapper equals violates Java spec
Date Sun, 25 Oct 2015 19:36:27 GMT
Anthony Whitford created POOL-306:
-------------------------------------

             Summary: BaseGenericObjectPool IdentityWrapper equals violates Java spec
                 Key: POOL-306
                 URL: https://issues.apache.org/jira/browse/POOL-306
             Project: Commons Pool
          Issue Type: Bug
    Affects Versions: 2.4.2
            Reporter: Anthony Whitford
            Priority: Minor


Noticed that the {{equals}} implementation assumes the {{other}} parameter can be successfully
cast to {{IdentityWrapper}}:
{code}
        @Override
        @SuppressWarnings("rawtypes")
        public boolean equals(Object other) {
            return ((IdentityWrapper) other).instance == instance;
        }
{code}

(There is a chance that this could throw a {{ClassCastException}}.)

See [BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS|http://findbugs.sourceforge.net/bugDescriptions.html#BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS].

I recommend:
{code}
        @Override
        @SuppressWarnings("rawtypes")
        public boolean equals(Object other) {
            return other instanceof IdentityWrapper && ((IdentityWrapper) other).instance
== instance;
        }
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message