Merge changes from trunk

git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/0.32.x@1677960 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/LinkEndpoint.java b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/LinkEndpoint.java
index 246d43d..02ea86c 100644
--- a/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/LinkEndpoint.java
+++ b/qpid/java/amqp-1-0-common/src/main/java/org/apache/qpid/amqp_1_0/transport/LinkEndpoint.java
@@ -176,7 +176,7 @@
         return _linkCredit;
     }
 
-    public void remoteDetached(Detach detach)
+    public void remoteDetached(final Detach detach)
     {
         synchronized (getLock())
         {
@@ -187,7 +187,14 @@
                     break;
                 case ATTACHED:
                     _state = State.DETACH_RECVD;
-                    _linkEventListener.remoteDetached(this, detach);
+                    getSession().getConnection().addPostLockAction(new Runnable()
+                    {
+                        @Override
+                        public void run()
+                        {
+                            _linkEventListener.remoteDetached(LinkEndpoint.this, detach);
+                        }
+                    });
                     break;
             }
             getLock().notifyAll();