[jbossts-issues] [JBoss JIRA] Closed: (JBTM-503) Shutdown the ExpiredEntryMonitor when stopping the RecoveryManager
Andrew Dinn (JIRA)
jira-events at lists.jboss.org
Wed Jul 1 11:39:51 EDT 2009
[ https://jira.jboss.org/jira/browse/JBTM-503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Dinn closed JBTM-503.
----------------------------
Resolution: Done
Fixed by JBTM-569
> 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
> Fix For: 4.8.0
>
> 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