[ 
http://nagoya.apache.org/jira/browse/JSIEVE-10?page=comments#action_55326 ]
     
Steve Brewin commented on JSIEVE-10:
------------------------------------

In truth all the Singletons should be synchronized learning from Double-checked 
locking and the Singleton pattern 
(http://www-106.ibm.com/developerworks/java/library/j-dcl.html?dwzone=java).

That they aren't is because by and large the Singletons represent an alpha 
level harness to access the core code. In the future I was thinking of using 
IOC (probably Hivemind) to assemble things in a much cleaner manner.

Still, I would be happy if someone wants to submit a patch to make the 
singletons thread safe.

-- Steve

> Race condition in CommandStateManager
> -------------------------------------
>
>          Key: JSIEVE-10
>          URL: http://nagoya.apache.org/jira/browse/JSIEVE-10
>      Project: jSieve
>         Type: Bug
>     Reporter: Kirk Chen

>
> The resetInstance method in CommandStateManager should be synchronized. In 
> multithreaded environment, I encountered the following exception:
> java.lang.NullPointerException
>         at 
> org.apache.jsieve.commands.CommandStateManager.setInstance(CommandStateManager.java:122)
>         at 
> org.apache.jsieve.commands.CommandStateManager.updateInstance(CommandStateManager.java:140)
>         at 
> org.apache.jsieve.commands.CommandStateManager.getInstance(CommandStateManager.java:95)
>         at org.apache.jsieve.SieveFactory.evaluate(SieveFactory.java:145)
>         at RuleManager.applyRules(RuleManager.java:87)
> ...
> which should have been caused by the lack of it. I am yet to verify this 
> theory, however. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to