commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DBCP-317) Findbugs: Class doesn't override equals in superclass
Date Wed, 06 Jan 2010 11:46:54 GMT

    [ https://issues.apache.org/jira/browse/DBCP-317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12797078#action_12797078
] 

Sebb commented on DBCP-317:
---------------------------

I've been looking into this further.

DelegatingPreparedStatement extends DelegatingStatement  and overrides equals() - but defines
no extra fields
DelegatingCallableStatement extends DelegatingPreparedStatement  and overrides equals() -
but defines no extra fields
Yet
PoolableCallableStatement extends DelegatingCallableStatement and has extra fields, but does
not override equals()

This is quite confusing - why do the Delagating...Statement classes override equals when they
don't have any extra state?
Indeed Findbugs warns that these equals methods may not be symmetric.

> Findbugs: Class doesn't override equals in superclass
> -----------------------------------------------------
>
>                 Key: DBCP-317
>                 URL: https://issues.apache.org/jira/browse/DBCP-317
>             Project: Commons Dbcp
>          Issue Type: Bug
>            Reporter: Sebb
>            Priority: Minor
>
> Findbugs: Class doesn't override equals in superclass - 8 instances
> "This class extends a class that defines an equals method and adds fields, but doesn't
define an equals method itself. Thus, equality on instances of this class will ignore the
identity of the subclass and the added fields. Be sure this is what is intended, and that
you don't need to override the equals method. Even if you don't need to override the equals
method, consider overriding it anyway to document the fact that the equals method for the
subclass just return the result of invoking super.equals(o). "
> Classes (superclass) are:
> cpdsadapter.ConnectionImpl doesn't override DelegatingConnection.equals
> datasources.LRUMap doesn't override SequencedHashMap.equals
> managed.ManagedConnection doesn't override DelegatingConnection.equals
> managed.PoolableManagedConnection  doesn't override DelegatingConnection.equals
> PoolableCallableStatement doesn't override DelegatingCallableStatement.equals
> PoolableConnection doesn't override DelegatingConnection.equals
> PoolablePreparedStatement doesn't override DelegatingPreparedStatement.equals
> PoolingConnection doesn't override DelegatingConnection.equals

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message