diff options
Diffstat (limited to 'java/broker/src')
| -rw-r--r-- | java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 52d39978f3..5a6a9aa8b1 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -106,16 +106,23 @@ public class ServerSessionDelegate extends SessionDelegate @Override public void command(Session session, Method method) { - setThreadSubject(session); - - if(!session.isClosing()) + try { - super.command(session, method); - if (method.isSync()) + setThreadSubject(session); + + if(!session.isClosing()) { - session.flushProcessed(); + super.command(session, method); + if (method.isSync()) + { + session.flushProcessed(); + } } } + catch(RuntimeException e) + { + exception(session, method, ExecutionErrorCode.INTERNAL_ERROR, "Exception processing command: " + e); + } } @Override |
