You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Jim Hurley (JIRA)" <ji...@apache.org> on 2007/07/27 23:40:53 UTC

[jira] Commented: (RIVER-140) JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate

    [ https://issues.apache.org/jira/browse/RIVER-140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12516104 ] 

Jim Hurley commented on RIVER-140:
----------------------------------

Suggested Fix

Just after the class declaration of the JoinManager, is an "Implementation Note". This might be a candidate location for a description of theJoinManager's synchronization strategy.

> JoinManager synchronization strategy should be reviewed, documented, and fixed where appropriate
> ------------------------------------------------------------------------------------------------
>
>                 Key: RIVER-140
>                 URL: https://issues.apache.org/jira/browse/RIVER-140
>             Project: River
>          Issue Type: Improvement
>          Components: net_jini_lookup
>    Affects Versions: jtsk_2.1
>            Reporter: Jim Hurley
>            Priority: Minor
>
> Bugtraq ID [6219134|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6219134]
> To help avoid possible race conditions or even deadlock, the synchronization
> strategy employed by the JoinManager should be reviewed and documented.
> Having some idea of how the threads and tasks interact, and how (and
> why) access to shared data is controlled, should help with future 
> maintenance of JoinManager.
> Synchronization-related bugs discovered while addressing this bug should
> be filed and addressed separately.
> See the comments section for a list of the objects on which the JoinManager
> currently synchronizes.
> Comments
> All objects on which JoinManager synchronizes:
>      Object                        Scope of Object
> ------------------   -----------------------------------------------------
> ProxyReg.taskList    each proxyReg stored in joinSet has its own taskList
> joinSet              JoinManager
> JoinManager (this)   JoinManager
> taskMgr              JoinManager and taskMgr (and wakeupMgr?)
> wakeupMgr            JoinManager and wakeupMgr
> ProxyReg.this        each proxyReg stored in joinSet has its own taskList
> ProxyReg.fail() syncs on 'this'. Not sure if this is right. Should file a
> bug to investigate it.
> Also, may be able to simplify things by syncing on joinSet in the places
> where JoinManager itself is sync'd on (which is done only when trying to
> determine if the JoinManager has been terminated).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.