Merge pull request #16 from Havret/AMQNET-597

AMQNET-597: Remotely closed session is not removed from AmqpConnection
diff --git a/src/NMS.AMQP/Provider/Amqp/AmqpSession.cs b/src/NMS.AMQP/Provider/Amqp/AmqpSession.cs
index 7862e5b..4f8c9e5 100644
--- a/src/NMS.AMQP/Provider/Amqp/AmqpSession.cs
+++ b/src/NMS.AMQP/Provider/Amqp/AmqpSession.cs
@@ -63,7 +63,10 @@
                 });
             underlyingSession.AddClosedCallback((sender, error) =>
             {
-                tcs.TrySetException(ExceptionSupport.GetException(error));
+                if (!tcs.TrySetException(ExceptionSupport.GetException(error)))
+                {
+                    Connection.RemoveSession(sessionInfo.Id);
+                }
             });
             return tcs.Task;
         }
@@ -123,7 +126,7 @@
         {
             consumers.TryRemove(consumerId, out _);
         }
-        
+
         public void RemoveProducer(Id producerId)
         {
             producers.TryRemove(producerId, out _);