[jbossts-issues] [JBoss JIRA] Commented: (JBTM-503) Shutdown the ExpiredEntryMonitor when stopping the RecoveryManager

Mauro Molinari (JIRA) jira-events at lists.jboss.org
Thu Apr 16 06:11:34 EDT 2009


    [ https://jira.jboss.org/jira/browse/JBTM-503?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12462522#action_12462522 ] 

Mauro Molinari commented on JBTM-503:
-------------------------------------

Hi Andrew, any news on this?
Could it be considered for 4.7.0?

> Shutdown the ExpiredEntryMonitor when stopping the RecoveryManager
> ------------------------------------------------------------------
>
>                 Key: JBTM-503
>                 URL: https://jira.jboss.org/jira/browse/JBTM-503
>             Project: JBoss Transaction Manager
>          Issue Type: Feature Request
>      Security Level: Public(Everyone can see) 
>          Components: Recovery
>    Affects Versions: 4.5.0
>         Environment: Tomcat + Spring + DBCP + JBossJTA
>            Reporter: Mauro Molinari
>            Assignee: Andrew Dinn
>         Attachments: JBossTS.patch
>
>
> When the recovery manager is started, the implementation RecoveryManagerImple starts the ExpiredEntryMonitor.
> When you stop the recovery manager, however, the ExpiredEntryMonitor is not shut down.
> On line 250 of com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple there's the line ExpiredEntryMonitor.shutdown() commented out, with a "TODO why?" comment immediately before.
> I don't know exactly what should be the lifecylce of ExpiredEntryMonitor versus that of RecoveryManagerImple, however I think that one of the following should happen:
> - ExpiredEntryMonitor is started when RecoveryManagerImple is started (rather than constructed), so that it is shut down when the RecoveryManagerImple is stopped
> OTHERWISE
> - RecoveryManagerImple provides a way to "dispose" or "disable" it and this includes the shutdown of ExpiredEntryMonitor
> OTHERWISE
> - it is documented that stopping the recovery manager needs the ExpiredEntryMonitor to be stopped too: however, please consider that com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.shutdown() throws a NullPointerException if called while the ExpiredEntryMonitor has not been started before and there is no public method to test if it has been started or not; so if I need to write some code that stops the ExpiredEntryMonitor (without knowing if it has been started or not) I have to write some ugly code like:
> {code:java}
> try
> {
>   ExpiredEntryMonitor.shutdown();
> }
> catch(final NullPointerException e)
> {
>   // ExpiredEntryMonitor had not been started
> }
> {code}

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbossts-issues mailing list