[jboss-jira] [JBoss JIRA] Closed: (JBAS-4204) Don't allow removal of durable topic subscriptions when there are active subscribers or unacknowledged messages
Adrian Brock (JIRA)
jira-events at lists.jboss.org
Mon Mar 19 13:00:35 EDT 2007
[ http://jira.jboss.com/jira/browse/JBAS-4204?page=all ]
Adrian Brock closed JBAS-4204.
------------------------------
Fix Version/s: JBossAS-5.0.0.Beta2
JBossAS-4.2.0.GA
JBossAS-4.0.5.SP1
Resolution: Done
This has been fixed.
A new test has been added to the testsuite:
org.jboss.test.jbossmq.test.UnsubscribeWhileActiveUnitTestCase
> Don't allow removal of durable topic subscriptions when there are active subscribers or unacknowledged messages
> ---------------------------------------------------------------------------------------------------------------
>
> Key: JBAS-4204
> URL: http://jira.jboss.com/jira/browse/JBAS-4204
> Project: JBoss Application Server
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JMS service
> Affects Versions: JBossAS-4.0.3 SP1, JBossAS-4.0.5.GA, JBossAS-4.0.4.GA
> Reporter: Scott M Stark
> Assigned To: Adrian Brock
> Fix For: JBossAS-5.0.0.Beta2, JBossAS-4.2.0.GA, JBossAS-4.0.5.SP1
>
>
> According to the spec, it is an application error to unsubscribe a Durable Topic Subscription
> when there is an active subscriber or there are unacknowledged messages/uncommitted
> transactions for the subscription.
> We don't currently check for this condition, except that it can lead to an NPE
> if somebody does it which will then might also leave the state manager in an inconsistent state
> (it can only be fixed by rebooting).
> Since this is an application error, the application should receive an error
> (javax.jms.IllegalStateException) if it is tried.
> It should not lead to corrupted server state.
> The code already exists for this (related to disallowing the deletion of temporary queues with
> active subscribers) so it is just a case of:
> 1) Updating the "inUse" check in BasicQueue to also look for unacknowledged messages
> (this also covers uncommitted transactions). This check also applies to temporary queues/topics.
> 2) Adding the code to check "inUse" in JMSTopic.destroyDurableSubscription()
> before doing the removeAllMessages().
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list