Hi,

Thanks Ramkumar for looking into these concurrent issues.

Before we jump into a solution/fix, I suggest that we step back and agree on whether the Tuscany core and extensions should be bootstrapped sequentially or concurrently. A few use cases would be helpful. Can some of the JIRA reporters describe their needs to make these extension points thread-safe?

Raymond
--------------------------------------------------
From: "Ramkumar R" <[EMAIL PROTECTED]>
Sent: Thursday, April 10, 2008 3:59 AM
To: <[email protected]>
Subject: A solution to avoid ConcurrentModificationException

Hi All,
Looking at the history of JIRA's (2170, 2085, 2092) raised due to
ConcurrentModificationException, its evident that our runtime would throw
more such exceptions in the coming days, such problem occurs if two threads
try to add a contribution simultaneously. Also the above mentioned JIRA's
gives us a clue that mostly these issues are noticed for the ExtensionPoint
implementation classes.

Current Implementation of ExtensionPoint classes use either ArrayList OR
HashMap to maintain the list of processors, listeners, factories and
providers. Basically the Implementation of ArrayList & HashMap are not
synchronized, hence If multiple threads try to access an ArrayList/HashMap
instance concurrently, and at least one of the threads modifies the list/map
structurally, it must be synchronized externally. Hence a fix is required
for these classes, *please have a look at JIRA-2170 comments for more
details on the implemented solution*.

As a precautionary measure, I like to raise a JIRA for all the
ExtensionPoint classes to provide this fix for the above said issue, before we encounter them one by one. Before I go ahead, I like to hear from people
about their thought on this regard. Thanks.

--
Thanks & Regards,
Ramkumar Ramalingam


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

Reply via email to