Repository: qpid-jms
Updated Branches:
  refs/heads/master 2888373a1 -> 022fb1591


Don't mark the AmqpConnection as opened until its session has also been
opened.  

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/022fb159
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/022fb159
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/022fb159

Branch: refs/heads/master
Commit: 022fb15913bb5d128c5af33086a54a27c23b8670
Parents: 2888373
Author: Timothy Bish <tabish...@gmail.com>
Authored: Wed Feb 25 12:43:18 2015 -0500
Committer: Timothy Bish <tabish...@gmail.com>
Committed: Wed Feb 25 12:43:18 2015 -0500

----------------------------------------------------------------------
 .../qpid/jms/provider/amqp/AmqpConnection.java  | 52 +++++++-------------
 1 file changed, 19 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/022fb159/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
index a17f1d4..7cc4a87 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/AmqpConnection.java
@@ -16,7 +16,6 @@
  */
 package org.apache.qpid.jms.provider.amqp;
 
-import java.io.IOException;
 import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
@@ -48,7 +47,6 @@ public class AmqpConnection extends 
AmqpAbstractResource<JmsConnectionInfo, Conn
     private final Map<JmsSessionId, AmqpSession> sessions = new 
HashMap<JmsSessionId, AmqpSession>();
     private final Map<JmsDestination, AmqpTemporaryDestination> tempDests = 
new HashMap<JmsDestination, AmqpTemporaryDestination>();
     private final AmqpProvider provider;
-    private boolean connected;
     private AmqpSaslAuthenticator authenticator;
     private final AmqpConnectionSession connectionSession;
     private final AmqpConnectionProperties properties;
@@ -114,44 +112,32 @@ public class AmqpConnection extends 
AmqpAbstractResource<JmsConnectionInfo, Conn
         connectionSession.unsubscribe(subscriptionName, request);
     }
 
-    /**
-     * Called on receiving an event from Proton indicating a state change on 
the remote
-     * side of the Connection.
-     */
     @Override
-    public void processStateChange(AmqpProvider provider) throws IOException {
-
-        if (!connected && isOpen()) {
-            connected = true;
-
-            
properties.initialize(getEndpoint().getRemoteOfferedCapabilities(), 
getEndpoint().getRemoteProperties());
-
-            connectionSession.open(new AsyncResult() {
+    protected void doOpenCompletion() {
+        properties.initialize(getEndpoint().getRemoteOfferedCapabilities(), 
getEndpoint().getRemoteProperties());
+        connectionSession.open(new AsyncResult() {
 
-                @Override
-                public boolean isComplete() {
-                    return connected;
-                }
-
-                @Override
-                public void onSuccess() {
-                    LOG.debug("AMQP Connection Session opened.");
-                    opened();
-                }
+            @Override
+            public boolean isComplete() {
+                return connectionSession.isOpen();
+            }
 
-                @Override
-                public void onFailure(Throwable result) {
-                    LOG.debug("AMQP Connection Session failed to open.");
-                    failed(IOExceptionSupport.create(result));
-                }
-            });
-        }
+            @Override
+            public void onSuccess() {
+                LOG.debug("{} is now open: ", AmqpConnection.this);
+                opened();
+            }
 
-        super.processStateChange(provider);
+            @Override
+            public void onFailure(Throwable result) {
+                LOG.debug("AMQP Connection Session failed to open.");
+                failed(IOExceptionSupport.create(result));
+            }
+        });
     }
 
     public void processSaslAuthentication() {
-        if (connected || authenticator == null) {
+        if (authenticator == null) {
             return;
         }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to