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