[ 
https://issues.apache.org/jira/browse/QPID-3234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13036362#comment-13036362
 ] 

Danushka Menikkumbura commented on QPID-3234:
---------------------------------------------

Rajith,

I think the issue here is how we decide if an error is "hard". Can we have a 
set of severity levels that helps figure out how hard the error is?

Thanks,
Danushka

> Exception handling logic is incorrect in AMQConnection.java
> -----------------------------------------------------------
>
>                 Key: QPID-3234
>                 URL: https://issues.apache.org/jira/browse/QPID-3234
>             Project: Qpid
>          Issue Type: Bug
>            Reporter: Rajith Attapattu
>
> IMO there are two issues here.
> 1. The exception listener gets notified of session level exceptions.
> 2. A session level exception causes the connection to be closed along with 
> the other sessions.
> 1. We shouldn't notify the connection's exception listener when there is a 
> session level error. The JMS API doc clearly states,
> "If a JMS provider detects a serious problem with a Connection object, it 
> informs the Connection object's ExceptionListener, if one has been 
> registered. It does this by calling the listener's onException method, 
> passing it a JMSException argument describing the problem. "
> So certainly execution exceptions which only invalidates the session should 
> not be notified via the exception listener.
> 2. Going further if one looks at the AMQConnection.java exceptionReceived() 
> method,
> It seems that an execution exception can in fact close the underlying 
> connection (and the rest of the sessions) due to the following piece of logic.
> if (hardError(cause))
> {
> closer = (!_closed.getAndSet(true)) || closer;
> { _logger.info("Closing AMQConnection due to :" + cause); }
> }
> Digging further for any AMQException hardError method will return true.
> Therefore we need to rework that piece of code.

--
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-subscr...@qpid.apache.org

Reply via email to