[ 
https://issues.apache.org/jira/browse/TUSCANY-1006?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12518185
 ] 

Kelvin Goodson commented on TUSCANY-1006:
-----------------------------------------

My inclination would be
1) to make a soft dependency on the backport library,  such that if the java 
1.5 ConcurrentHashMap was available then use that,  otherwise use the backport 
version.  This would mean that there would be no need to deploy the backport 
jar to a 1.5 environment.  (I have taken a look at the javadoc for the backport 
code,  but the web server that holds the license is not working properly at the 
moment,  so I am getting a server timeout on looking at the license.)
and in parallel 2) to fix TUSCANY-1182 so that we have the GroboUtils test 
environment in place and that we adopt the test case that you are running 
locally into the test suite. 


> ChangeSummaryImpl.cachedSDOObjectChanges appears to not be thread safe
> ----------------------------------------------------------------------
>
>                 Key: TUSCANY-1006
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1006
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Implementation
>    Affects Versions: Java-SDO-beta1
>         Environment: Sun JDK 1.4.2_11, 2-CPU server
>            Reporter: Ron Gavlin
>            Priority: Critical
>             Fix For: Java-SDO-beta1
>
>
> 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.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to