You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by "Sal Campana (JIRA)" <ji...@apache.org> on 2005/06/16 20:12:47 UTC

[jira] Created: (APOLLO-40) Deadlock in AbstractResourceHome.find()

Deadlock in AbstractResourceHome.find()
---------------------------------------

         Key: APOLLO-40
         URL: http://issues.apache.org/jira/browse/APOLLO-40
     Project: Apollo
        Type: Bug
  Components: Other  
    Reporter: Sal Campana


We need to build a unit test around this and expose the issue...

Basically when we call createInstance in the implemented home it calls to find()...This method is locking up...I haven't looked closely yet but I suspect we may be using a Hashmap instead of a Hashtable (synchronized) for the lookup table....

My resolution was to create a lock object in the the implemented home and wrapped the call to find() in a synchronized block....This seems to fix the issue...

//concrete home impl...createInstance(..) method

private static Object m_lock = new Object(); //class variable..not local!

....

synchronized(m_lock)
{
   find(resourceKey);
}

-- 
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: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org


[jira] Commented: (APOLLO-40) Deadlock in AbstractResourceHome.find()

Posted by "Sal Campana (JIRA)" <ji...@apache.org>.
    [ http://issues.apache.org/jira/browse/APOLLO-40?page=comments#action_12313849 ] 

Sal Campana commented on APOLLO-40:
-----------------------------------

I also had added "synchronize" to the getLock(..) method in AbstractResourceHome....I have checked it in for now, however I suspect it had nothing to do with the fix....We tested with just it in place the problem still occurred, however I do not want to remove until we are sure we've fixed the issue...just in case

> Deadlock in AbstractResourceHome.find()
> ---------------------------------------
>
>          Key: APOLLO-40
>          URL: http://issues.apache.org/jira/browse/APOLLO-40
>      Project: Apollo
>         Type: Bug
>   Components: Other
>     Reporter: Sal Campana

>
> We need to build a unit test around this and expose the issue...
> Basically when we call createInstance in the implemented home it calls to find()...This method is locking up...I haven't looked closely yet but I suspect we may be using a Hashmap instead of a Hashtable (synchronized) for the lookup table....
> My resolution was to create a lock object in the the implemented home and wrapped the call to find() in a synchronized block....This seems to fix the issue...
> //concrete home impl...createInstance(..) method
> private static Object m_lock = new Object(); //class variable..not local!
> ....
> synchronized(m_lock)
> {
>    find(resourceKey);
> }

-- 
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: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org