ChangeSummaryImpl.cachedSDOObjectChanges appears to not be thread safe
----------------------------------------------------------------------
Key: TUSCANY-1006
URL: http://issues.apache.org/jira/browse/TUSCANY-1006
Project: Tuscany
Issue Type: Bug
Components: Java SDO Implementation
Affects Versions: Java-M2
Environment: Sun JDK 1.4.2_11, 2-CPU server
Reporter: Ron Gavlin
Priority: Critical
I have an application in which multiple threads access a shared
ChangeSummaryImpl. Each thread invokes ChangeSummaryImpl.getOldValues()
repeatedly. This causes one or more of the threads to enter an infinite "while
(true) -" loop in HashMap.get(Object) with the following stack trace:
HashMap.get(Object) line: 323
ChangeSummaryImpl.getOldValues(DataObject) line: 481
...
I suspect this occurs because the access to HashMap cachedSDOObjectChanges is
not synchronized.
I have been unable as of yet to create a simple test case that demonstrates the
problem. In the meantime, I will try to implement a short-term fix by changing
line 93 of ChangeSummaryImpl
from
protected HashMap cachedSDOObjectChanges = new HashMap();
to
protected Map cachedSDOObjectChanges = Collections.synchronizedMap(new
HashMap());
I will let you know if that fixes the problem. Any insight or assistance you
can offer concerning this problem is appreciated. This is a show-stopper
problem for us.
Regards,
- Ron
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]