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 2012/09/14 18:20:07 UTC
[jira] [Updated] (QPID-3234) Exception handling logic is incorrect
in AMQConnection.java
[ https://issues.apache.org/jira/browse/QPID-3234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rajith Attapattu updated QPID-3234:
-----------------------------------
Fix Version/s: 0.18
> 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
> Components: Java Client
> Reporter: Rajith Attapattu
> Labels: exception-handling
> Fix For: 0.18
>
> Attachments: 0001-Fixing-soft-errors.patch
>
>
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org