You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Goran Hacek (JIRA)" <ji...@apache.org> on 2009/10/15 14:28:31 UTC

[jira] Issue Comment Edited: (COLLECTIONS-343) Functor singleton classes do not implement singleton pattern correctly

    [ https://issues.apache.org/jira/browse/COLLECTIONS-343?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12766039#action_12766039 ] 

Goran Hacek edited comment on COLLECTIONS-343 at 10/15/09 5:26 AM:
-------------------------------------------------------------------

Fix for this issue is simple, all of these classes should implement readResolve() in the following way:

{noformat}private Object readResolve() {
    return INSTANCE;
}
{noformat}

This also makes default equals() and hashCode() methods behave appropriately for this classes.

I am providing a patch for this issue with tests, so can someone, please, review it.

      was (Author: ghacek):
    Fix for this issue is simple, all classes of these classes should implement readResolve() in the following way:

{noformat}private Object readResolve() {
    return INSTANCE;
}
{noformat}

This also makes default equals() and hashCode() methods behave appropriately for this classes.

I am providing a patch for this issue with tests, so can someone, please, review it.
  
> Functor singleton classes do not implement singleton pattern correctly
> ----------------------------------------------------------------------
>
>                 Key: COLLECTIONS-343
>                 URL: https://issues.apache.org/jira/browse/COLLECTIONS-343
>             Project: Commons Collections
>          Issue Type: Bug
>          Components: Functor
>            Reporter: Goran Hacek
>             Fix For: 4.0
>
>         Attachments: fix_functor_singletones.patch
>
>
> All classes in package "org.apache.commons.collections.functors" that advertise that they have singleton instance actually cannot guarantee that.  Because of serialization support multiple instances of those classes can exist at runtime.
> Following classes are making this false claim:
> * CloneTransformer
> * ExceptionClosure
> * ExceptionFactory
> * ExceptionPredicate
> * ExceptionTransformer
> * FalsePredicate
> * NOPClosure
> * NOPTransformer
> * NotNullPredicate
> * NullPredicate
> * StringValueTransformer
> * TruePredicate

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