QPID-8057: [JMS AMQP 0-x][AMQP 0-10] Fix race on handling of execution exception
diff --git a/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index 486178f..695a695 100644
--- a/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
@@ -1050,6 +1050,7 @@
 
     public void setCurrentException(SessionException se)
     {
+        QpidException amqe;
         synchronized (_currentExceptionLock)
         {
             ExecutionException ee = se.getException();
@@ -1058,7 +1059,7 @@
             {
                 code = ee.getErrorCode().getValue();
             }
-            QpidException amqe = new AMQException(code, _isHardError, se.getMessage(), se.getCause());
+            amqe = new AMQException(code, _isHardError, se.getMessage(), se.getCause());
             _currentException = amqe;
         }
         if (!_isHardError)
@@ -1067,17 +1068,17 @@
             stopDispatcherThread();
             try
             {
-                closed(_currentException);
+                closed(amqe);
             }
             catch(Exception e)
             {
                 _logger.warn("Error closing session", e);
             }
-            getAMQConnection().exceptionReceived(_currentException);
+            getAMQConnection().exceptionReceived(amqe);
         }
         else
         {
-            getAMQConnection().closed(_currentException);
+            getAMQConnection().closed(amqe);
         }
     }