[ 
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:49 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 correctly 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 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.

Reply via email to