[ https://issues.apache.org/jira/browse/QPID-3448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robbie Gemmell updated QPID-3448: --------------------------------- Assignee: Alex Rudyy (was: Robbie Gemmell) Status: Open (was: Ready To Review) I think the changes should really be made at the entry points to AMQSession mandated by the JMS interfaces, i.e the places we should already be declaring we throw JMSException. Whilst some of the instnaces may be necessary, there seems to be far too much additional try-catching being added within the general implementation methods in AMQSession_0_10 etc which are used to support the JMS methods. The conversion of SessionExceptions to AMQExceptions in several places also doesnt seem that desirable given they are then going to be wrapped in JMSExceptions anyway. Making the underlying AMQP/transport related exceptions checked exceptions rather than runtime exceptions could be worthwhile, since it would increase their visibility and they are often things you should have to explicitly choose to ignore rather than unexpected exceptions you cant/shouldnt reasonably expect to handle within the mesaging library, making them seem more suited to checked exceptions. > JMS Client throws unchecked SessionExceptions to client application > ------------------------------------------------------------------- > > Key: QPID-3448 > URL: https://issues.apache.org/jira/browse/QPID-3448 > Project: Qpid > Issue Type: Bug > Components: Java Client > Affects Versions: 0.10, 0.11, 0.12 > Reporter: Keith Wall > Assignee: Alex Rudyy > Attachments: QPID-3448-Prevent-throwing-of-SessionExceptions.patch > > > On the 0-10 code path, there are instances where the client application > receives an unchecked Qpid SessionException rather than a JMSException as > mandated by the JMS Specification. The client application should not be > forced to catch 'internal' Qpid exceptions. > For example if a javax.jms.Session#commit takes longer than 60 seconds, the > client receives: > {code} > org.apache.qpid.transport.SessionException: timed out waiting for sync: > complete = 12, point = 15 > at org.apache.qpid.transport.Session.sync(Session.java:798) > at org.apache.qpid.transport.Session.sync(Session.java:772) > at org.apache.qpid.transport.Session.invoke(Session.java:732) > at org.apache.qpid.transport.Session.invoke(Session.java:561) > at > org.apache.qpid.transport.SessionInvoker.txCommit(SessionInvoker.java:148) > at > org.apache.qpid.client.AMQSession_0_10.sendCommit(AMQSession_0_10.java:423) > at > org.apache.qpid.client.AMQSession_0_10.commit(AMQSession_0_10.java:1008) > {code} > For comparison, 0-8..-0-9-1 throws a JMSException with an underlying of > AMQTimeoutException. -- 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