You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Rajith Attapattu (JIRA)" <ji...@apache.org> on 2011/04/28 17:31:03 UTC

[jira] [Created] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
---------------------------------------------------------------------------------------------------------------------------------------

                 Key: QPID-3233
                 URL: https://issues.apache.org/jira/browse/QPID-3233
             Project: Qpid
          Issue Type: Bug
          Components: Java Client
    Affects Versions: 0.10
            Reporter: Rajith Attapattu
            Assignee: Rajith Attapattu
             Fix For: 0.11


If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
Therefore the JMS Session remains opened while the underlying AMQP session was closed.
Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.

Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.

We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13027719#comment-13027719 ] 

jiraposter@reviews.apache.org commented on QPID-3233:
-----------------------------------------------------



bq.  On 2011-04-29 14:51:54, Robbie Gemmell wrote:
bq.  > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java, line 580
bq.  > <https://reviews.apache.org/r/676/diff/1/?file=17690#file17690line580>
bq.  >
bq.  >     There are several tabs introduced by the patch here, they should be changed to spaces.
bq.  >     
bq.  >     Should we really replace the IllegalStateException already being thrown previously? The previous behaviour was to chain the additional exception to it.

The previously thrown IllegalStateException just contained an error message that didn't really give much information.
I wanted to include the "Error code" in the message of the main exception which makes it easy for people looking at logs.


bq.  On 2011-04-29 14:51:54, Robbie Gemmell wrote:
bq.  > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java, line 718
bq.  > <https://reviews.apache.org/r/676/diff/1/?file=17690#file17690line718>
bq.  >
bq.  >     If closed() were used for the task instead of this method then it could remain private.

I think "closed" is probably the correct method to use in this case. 
I will change accordingly.


bq.  On 2011-04-29 14:51:54, Robbie Gemmell wrote:
bq.  > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java, line 920
bq.  > <https://reviews.apache.org/r/676/diff/1/?file=17691#file17691line920>
bq.  >
bq.  >     There are several tabs introduced by the patch, they should be changed to spaces.

I will fix this, I have the settings to convert tabs to spaces, not sure what happened.


bq.  On 2011-04-29 14:51:54, Robbie Gemmell wrote:
bq.  > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java, line 924
bq.  > <https://reviews.apache.org/r/676/diff/1/?file=17691#file17691line924>
bq.  >
bq.  >     Should we not be using AMQSession.closed() as the super implementation, rather than the close() method?

Agreed as I mentioned in my previous comment.


bq.  On 2011-04-29 14:51:54, Robbie Gemmell wrote:
bq.  > http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java, line 588
bq.  > <https://reviews.apache.org/r/676/diff/1/?file=17692#file17692line588>
bq.  >
bq.  >     There are several tabs introduced by the patch here, they should be changed to spaces.
bq.  >     
bq.  >     The code would probably look cleaner and potentially be more accurate by calling manager.getLastException() once upfront and using the result for all further processing rather than calling the method up to 3 times.

I thought about it, but decided for the purpose of this patch to leave existing code as it is to better highlight what was added and what was merely re-arranged.
For the final commit I will definitely do what you suggested.


- rajith


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/676/#review616
-----------------------------------------------------------


On 2011-04-29 03:15:23, rajith attapattu wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/676/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-04-29 03:15:23)
bq.  
bq.  
bq.  Review request for qpid.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Any execution exception received will now be notified to AMQSession_0_10 via the SessionListener.
bq.  Also the AMQSession_0_10 will be marked closed.
bq.  
bq.  The Exception thrown when the session is accessed after it was closed, will now contain information about the underlying AMQ Exception that caused the session closure.
bq.  
bq.  
bq.  This addresses bug QPID-3233.
bq.      https://issues.apache.org/jira/browse/QPID-3233
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/TestAMQSession.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java 1097636 
bq.  
bq.  Diff: https://reviews.apache.org/r/676/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  rajith
bq.  
bq.



> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.11
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13026820#comment-13026820 ] 

jiraposter@reviews.apache.org commented on QPID-3233:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/676/
-----------------------------------------------------------

Review request for qpid.


Summary
-------

Any execution exception received will now be notified to AMQSession_0_10 via the SessionListener.
Also the AMQSession_0_10 will be marked closed.

The Exception thrown when the session is accessed after it was closed, will now contain information about the underlying AMQ Exception that caused the session closure.


This addresses bug QPID-3233.
    https://issues.apache.org/jira/browse/QPID-3233


Diffs
-----

  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java 1097636 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1097636 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java 1097636 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/TestAMQSession.java 1097636 
  http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java 1097636 

Diff: https://reviews.apache.org/r/676/diff


Testing
-------


Thanks,

rajith



> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.11
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Reopened] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "Robbie Gemmell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell reopened QPID-3233:
----------------------------------


> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.12
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Resolved] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "Robbie Gemmell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell resolved QPID-3233.
----------------------------------

    Resolution: Fixed

> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.12
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Commented] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "jiraposter@reviews.apache.org (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13027001#comment-13027001 ] 

jiraposter@reviews.apache.org commented on QPID-3233:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/676/#review616
-----------------------------------------------------------



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
<https://reviews.apache.org/r/676/#comment1264>

    There are several tabs introduced by the patch here, they should be changed to spaces.
    
    Should we really replace the IllegalStateException already being thrown previously? The previous behaviour was to chain the additional exception to it.



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
<https://reviews.apache.org/r/676/#comment1263>

    If closed() were used for the task instead of this method then it could remain private.



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
<https://reviews.apache.org/r/676/#comment1262>

    There is a tab introduced by the patch, it should be changed to spaces.



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
<https://reviews.apache.org/r/676/#comment1260>

    There are several tabs introduced by the patch, they should be changed to spaces.



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
<https://reviews.apache.org/r/676/#comment1259>

    Should we not be using AMQSession.closed() as the super implementation, rather than the close() method?



http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
<https://reviews.apache.org/r/676/#comment1261>

    There are several tabs introduced by the patch here, they should be changed to spaces.
    
    The code would probably look cleaner and potentially be more accurate by calling manager.getLastException() once upfront and using the result for all further processing rather than calling the method up to 3 times.


- Robbie


On 2011-04-29 03:15:23, rajith attapattu wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/676/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2011-04-29 03:15:23)
bq.  
bq.  
bq.  Review request for qpid.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  Any execution exception received will now be notified to AMQSession_0_10 via the SessionListener.
bq.  Also the AMQSession_0_10 will be marked closed.
bq.  
bq.  The Exception thrown when the session is accessed after it was closed, will now contain information about the underlying AMQ Exception that caused the session closure.
bq.  
bq.  
bq.  This addresses bug QPID-3233.
bq.      https://issues.apache.org/jira/browse/QPID-3233
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/message/TestAMQSession.java 1097636 
bq.    http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Session.java 1097636 
bq.  
bq.  Diff: https://reviews.apache.org/r/676/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  rajith
bq.  
bq.



> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.11
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


[jira] [Updated] (QPID-3233) In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.

Posted by "Robbie Gemmell (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/QPID-3233?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-3233:
---------------------------------

    Fix Version/s:     (was: JIRA Cleanup)
                   0.12
         Assignee: Rajith Attapattu

Updating this one with 0.12 fix for instead of JIRA cleanup from above comment/actions, looks to have been fixed previously but not resolved.

> In some cases the JMS Session does not get notified of the AMQP session closed, due to an execution exception received from the broker.
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: QPID-3233
>                 URL: https://issues.apache.org/jira/browse/QPID-3233
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: 0.10
>            Reporter: Rajith Attapattu
>            Assignee: Rajith Attapattu
>             Fix For: 0.12
>
>
> If the JMS client receives an execution exception asynchronously it will not notify the JMS Session (AMQSession_0_10.java) object.
> Therefore the JMS Session remains opened while the underlying AMQP session was closed.
> Any subsequent operation that only relies on the check "checkNotClosed()" will not throw an exception.
> Ex. Creating a producer with an already resolved destination or creating messages (ex. session.createTextMessage()).
> The JMS session will only throw an exception if only a call is delegated to the underlying AMQ session class.
> We should also ensure that when the JMS Session gets notified about the underlying session being closed, it should also keep information about the exception that caused it.
> This exception should then be included in the JMS Exception that gets thrown in a subsequent operation due to the JMS Session being closed.
>  

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org