SourceForge.net
2005-02-16 13:20:47 UTC
Bugs item #1040960, was opened at 2004-10-06 06:15
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1040960&group_id=54559
Category: None
Group: v0.7.6.1
Status: Open
Resolution: None
Priority: 5
Submitted By: kungfucode (kungfucode)
Assigned to: Nobody/Anonymous (nobody)
Summary: Singleton pattern not implemented properly in ConsumerManage
Initial Comment:
The _instance member is declared static, however,
multiple calls to createInstance will continually
create new ConsumerManager objects and assign their
references to _instance. With createInstance being
callable from anywhere, it is public after all, this
leaves the door open for potentially difficult to
diagnose concurrency issues down the road.
Recommend checking for null value in createInstance and
only creating a new object if the Singleton reference
_instance has yet to be initialized.
Also recommend synchronizing the method createInstance
to protect against problems stemming from calls to the
method by multiple threads.
Finally, _instance does not need to be declared static
since the null check as suggested above will take care
of maintaining only a single reference.
----------------------------------------------------------------------
Message:
Logged In: YES
user_id=557161
This is a known issue. For the next major release, the plan is
to remove all singleton instances.
----------------------------------------------------------------------
Comment By: kungfucode (kungfucode)
Date: 2004-10-06 06:20
Message:
Logged In: YES
user_id=1133617
Actually I spoke too soon, _instance will in fact need to
remain static so it's accesible from the static method call.
All other recommendations stand.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1040960&group_id=54559
Message generated for change (Comment added) made by tanderson
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1040960&group_id=54559
Category: None
Group: v0.7.6.1
Status: Open
Resolution: None
Priority: 5
Submitted By: kungfucode (kungfucode)
Assigned to: Nobody/Anonymous (nobody)
Summary: Singleton pattern not implemented properly in ConsumerManage
Initial Comment:
The _instance member is declared static, however,
multiple calls to createInstance will continually
create new ConsumerManager objects and assign their
references to _instance. With createInstance being
callable from anywhere, it is public after all, this
leaves the door open for potentially difficult to
diagnose concurrency issues down the road.
Recommend checking for null value in createInstance and
only creating a new object if the Singleton reference
_instance has yet to be initialized.
Also recommend synchronizing the method createInstance
to protect against problems stemming from calls to the
method by multiple threads.
Finally, _instance does not need to be declared static
since the null check as suggested above will take care
of maintaining only a single reference.
----------------------------------------------------------------------
Comment By: Tim Anderson (tanderson)
Date: 2005-02-17 00:20Message:
Logged In: YES
user_id=557161
This is a known issue. For the next major release, the plan is
to remove all singleton instances.
----------------------------------------------------------------------
Comment By: kungfucode (kungfucode)
Date: 2004-10-06 06:20
Message:
Logged In: YES
user_id=1133617
Actually I spoke too soon, _instance will in fact need to
remain static so it's accesible from the static method call.
All other recommendations stand.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=474136&aid=1040960&group_id=54559