[
http://jira.jboss.com/jira/browse/JGRP-643?page=comments#action_12391326 ]
Michael Newcomb commented on JGRP-643:
--------------------------------------
ClassConfigurator.getInstance(true) is called indirectly from the JChannel constructor. If
you create 2 or more JChannels in seperate threads this method can be called in an unsafe
manner.
This does indeed occur because I got a "magic key x (...) is already in map..."
exception which indicates 2 init calls got through. Interestingly enough, it occurs only
on my dual core computer ;).
Could you make the creation and assignment of 'instance' a class-level static
initializer block? That way there would be no need for synchronization and no chance of
multiple calls?
ClassConfigurator.getInstance() not thread safe
-----------------------------------------------
Key: JGRP-643
URL:
http://jira.jboss.com/jira/browse/JGRP-643
Project: JGroups
Issue Type: Bug
Reporter: Michael Newcomb
Assigned To: Bela Ban
Priority: Minor
Fix For: 2.7
Creating 2 or more JChannels simultaneously could result in multiple ClassConfigurators
being created and inited at once or a ClassConfigurator being used before it has been
inited.
Recommend synchronizing the getInstance() method.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira