Issue Details (XML | Word | Printable)

Key: JMS_SPEC-2
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Nigel Deakin
Reporter: alanf760
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
jms-spec

Fix JavaDocs to reflect missing IllegalStateException from API methods

Created: 11/Apr/11 05:52 AM   Updated: 20/Mar/13 12:28 PM
Component/s: None
Affects Version/s: 1.1
Fix Version/s: None

Time Tracking:
Not Specified

Environment:

N/A


Tags: jms21doc-minor
Participants: alanf760 and Nigel Deakin


 Description  « Hide

IllegalStateException tests

The JavaDocs for the following methods below need to be updated to reflect that IllegalStateException can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than those listed below.

    javax.jms.QueueSession.commit}}  
    javax.jms.QueueSession.getTransacted  
    javax.jms.QueueSession.rollback 
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit  
    javax.jms.TopicSession.rollback 
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)

Tests for IllegalStateException

The JavaDocs should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:

  • 4.3.5 Closing a Connection
  • 4.4.1 Closing a Session
  • 4.11 Method Inheritance across Messaging Domains
  • Table 4-1 Methods That Must Throw an IllegalStateException
  • 7.3 Standard Exceptions
  • 11.2.21 JMS Source Java API documentation Clarifications
  • Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests


Sort Order: Ascending order - Click to sort in descending order
Nigel Deakin made changes - 11/Apr/11 06:47 AM
Field Original Value New Value
Summary Fix JavaDoc's to reflect missing IllegalStateException from API methods Fix JavaDocs to reflect missing IllegalStateException from API methods
Affects Version/s 1.1 [ 14685 ]
Affects Version/s 2.0 [ 14692 ]
Nigel Deakin made changes - 11/Apr/11 06:51 AM
Description ---------------------------
IllegalStateException tests
---------------------------

The JavaDoc's for the following methods below need to be updated to reflect that IllegalStateException can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than what I listed below.

    javax.jms.QueueSession.commit
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)

Tests for IllegalStateException.

The JavaDoc's should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
    4.3.5 Closing a Connection
    4.4.1 Closing a Session
    4.11 Method Inheritance across Messaging Domains
    Table 4-1 Methods That Must Throw an IllegalStateException
    7.3 Standard Exceptions
    11.2.21 JMS Source Java API documentation Clarifications
    Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
---------------------------
IllegalStateException tests
---------------------------

{panel}
The JavaDoc's for the following methods below need to be updated to reflect that IllegalStateException can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than what I listed below.

    javax.jms.QueueSession.commit
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)
{panel}

Tests for IllegalStateException.

The JavaDoc's should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
    4.3.5 Closing a Connection
    4.4.1 Closing a Session
    4.11 Method Inheritance across Messaging Domains
    Table 4-1 Methods That Must Throw an IllegalStateException
    7.3 Standard Exceptions
    11.2.21 JMS Source Java API documentation Clarifications
    Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
Nigel Deakin made changes - 11/Apr/11 06:53 AM
Description ---------------------------
IllegalStateException tests
---------------------------

{panel}
The JavaDoc's for the following methods below need to be updated to reflect that IllegalStateException can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than what I listed below.

    javax.jms.QueueSession.commit
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)
{panel}

Tests for IllegalStateException.

The JavaDoc's should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
    4.3.5 Closing a Connection
    4.4.1 Closing a Session
    4.11 Method Inheritance across Messaging Domains
    Table 4-1 Methods That Must Throw an IllegalStateException
    7.3 Standard Exceptions
    11.2.21 JMS Source Java API documentation Clarifications
    Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
---------------------------
IllegalStateException tests
---------------------------

The JavaDocs for the following methods below need to be updated to reflect that {{IllegalStateException}} can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than what I listed below.

{{
    javax.jms.QueueSession.commit
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)
}}

Tests for IllegalStateException.

The JavaDoc's should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
    4.3.5 Closing a Connection
    4.4.1 Closing a Session
    4.11 Method Inheritance across Messaging Domains
    Table 4-1 Methods That Must Throw an IllegalStateException
    7.3 Standard Exceptions
    11.2.21 JMS Source Java API documentation Clarifications
    Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
Nigel Deakin made changes - 15/Apr/11 02:31 AM
Description ---------------------------
IllegalStateException tests
---------------------------

The JavaDocs for the following methods below need to be updated to reflect that {{IllegalStateException}} can be thrown. In particular IllegalStateException is being thrown in the case of these methods being called on closed connection objects. There could be more methods than what I listed below.

{{
    javax.jms.QueueSession.commit
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)
}}

Tests for IllegalStateException.

The JavaDoc's should be updated for all of the above method calls to specify that an IllegalStateException can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that IllegalStateException must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
    4.3.5 Closing a Connection
    4.4.1 Closing a Session
    4.11 Method Inheritance across Messaging Domains
    Table 4-1 Methods That Must Throw an IllegalStateException
    7.3 Standard Exceptions
    11.2.21 JMS Source Java API documentation Clarifications
    Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for IllegalStateException to be thrown on closed QueueConnection, closed QueueReciever, closed QueueSender, etc. objects are listed below:

    jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
*IllegalStateException tests*

The JavaDocs for the following methods below need to be updated to reflect that {{IllegalStateException}} can be thrown. In particular {{IllegalStateException}} is being thrown in the case of these methods being called on closed connection objects. There could be more methods than those listed below.

{noformat} javax.jms.QueueSession.commit}}
    javax.jms.QueueSession.getTransacted
    javax.jms.QueueSession.rollback
    javax.jms.QueueSession.recover
    javax.jms.QueueConnection.getClientID
    javax.jms.QueueConnection.getMetaDataTest
    javax.jms.QueueConnection.createQueueSession
    javax.jms.QueueConnection.start
    javax.jms.QueueSession.createBrowser(*)
    javax.jms.QueueSession.createQueue
    javax.jms.QueueSession.createSender()
    javax.jms.QueueSession.createTemporaryQueue()
    javax.jms.QueueSession.createMessage()
    javax.jms.QueueSession.createBytesMessage()
    javax.jms.QueueSession.createMapMessage()
    javax.jms.QueueSession.createObjectMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueSession.createTextMessage(*)
    javax.jms.QueueSession.createStreamMessage()
    javax.jms.QueueReceiver.getMessageSelector()
    javax.jms.QueueReceiver.receive(*)
    javax.jms.QueueReceiver.receiveTimeout()
    javax.jms.QueueReceiver.receiveNoWait()
    javax.jms.QueueReceiver.getQueue()
    javax.jms.QueueSender.getDeliveryMode()
    javax.jms.QueueSender.getDisabledMessageID()
    javax.jms.QueueSender.getDisabledMessageTimeStamp()
    javax.jms.QueueSender.getPriority()
    javax.jms.QueueSender.getTimeToLive()
    javax.jms.QueueSender.setDeliveryMode()
    javax.jms.QueueSender.setDisabledMessageID()
    javax.jms.QueueSender.setDisabledMessageTimeStamp()
    javax.jms.QueueSender.setPriority()
    javax.jms.QueueSender.setTimeToLive()
    javax.jms.QueueSender.getQueue()
    javax.jms.QueueSender.send(*)
    javax.jms.TopicSession.commit
    javax.jms.TopicSession.rollback
    javax.jms.TopicSession.recover
    javax.jms.TopicSession.createTopic
    javax.jms.TopicSession.createSubscriber(*)
    javax.jms.TopicSession.createDurableSubscriber(*)
    javax.jms.TopicSession.createPublisher()
    javax.jms.TopicSession.createTemporaryTopic()
    javax.jms.TopicSession.unsubscribe()
    javax.jms.TopicSession.createMessage
    javax.jms.TopicSession.createBytesMessage
    javax.jms.TopicSession.createMapMessage
    javax.jms.TopicSession.createObjectMessage
    javax.jms.TopicSession.createStreamMessage
    javax.jms.TopicSession.createTextMessage
    javax.jms.TopicSession.getTransacted
    javax.jms.TopicSubscriber.getMessageSelector
    javax.jms.TopicSubscriber.receive(*)
    javax.jms.TopicSubscriber.receiveNoWait()
    javax.jms.TopicSubscriber.getNoLocal()
    javax.jms.TopicSubscriber.getTopic()
    javax.jms.TopicConnection.getClientID
    javax.jms.TopicConnection.getMetaDataTest
    javax.jms.TopicConnection.start
    javax.jms.TopicConnection.createTopicSession
    javax.jms.TopicPublisher.getDeliveryMode()
    javax.jms.TopicPublisher.getDisabledMessageID()
    javax.jms.TopicPublisher.getDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.getPriority()
    javax.jms.TopicPublisher.getTimeToLive()
    javax.jms.TopicPublisher.setDeliveryMode()
    javax.jms.TopicPublisher.setDisabledMessageID()
    javax.jms.TopicPublisher.setDisabledMessageTimeStamp()
    javax.jms.TopicPublisher.setPriority()
    javax.jms.TopicPublisher.setTimeToLive()
    javax.jms.TopicPublisher.getTopic()
    javax.jms.TopicPublisher.publish(*)
{noformat}

*Tests for {{IllegalStateException}}*

The JavaDocs should be updated for all of the above method calls to specify that an {{IllegalStateException}} can be thrown on closed connection objects. Currently it doesn't. Only the JMS spec specifies that {{IllegalStateException}} must be thrown. The JavaDoc should be in sync with the spec and should mention it as well.

The JMS spec references for this is in the following sections:
* 4.3.5 Closing a Connection
* 4.4.1 Closing a Session
* 4.11 Method Inheritance across Messaging Domains
* Table 4-1 Methods That Must Throw an IllegalStateException
* 7.3 Standard Exceptions
* 11.2.21 JMS Source Java API documentation Clarifications
* Table 11-2 Domain Dependent Interfaces

The CTS JMS test directories which are testing for {{IllegalStateException}} to be thrown on closed {{QueueConnection}}, closed {{QueueReciever}}, closed {{QueueSender}}, etc. objects are listed below:

{noformat} jms/ee/all/closedQueueConnection
    jms/ee/all/closedQueueReceiver
    jms/ee/all/closedQueueSender
    jms/ee/all/closedQueueSession
    jms/ee/all/closedTopicConnection
    jms/ee/all/closedpublisher
    jms/ee/all/closedsubscriber
    jms/ee/all/closedtopicsessiontests
{noformat}
Nigel Deakin made changes - 28/Feb/12 11:56 AM
Tags pd20-forreview
Nigel Deakin made changes - 28/Mar/12 10:29 AM
Tags pd20-forreview
Nigel Deakin made changes - 28/Mar/12 10:29 AM
Tags pd20-minor
Nigel Deakin made changes - 28/Mar/12 10:40 AM
Tags pd20-minor
Nigel Deakin made changes - 28/Mar/12 10:40 AM
Tags pd20-veryminor
Nigel Deakin made changes - 07/Dec/12 06:37 PM
Tags pd20-veryminor
Nigel Deakin made changes - 07/Dec/12 06:37 PM
Tags jms20-pd20-doc
Nigel Deakin made changes - 20/Mar/13 12:28 PM
Tags jms20-pd20-doc
Nigel Deakin made changes - 20/Mar/13 12:28 PM
Tags jms21doc-minor