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.