summaryrefslogtreecommitdiff
path: root/qpid/java/client/src
diff options
context:
space:
mode:
authorAndrew Donald Kennedy <grkvlt@apache.org>2011-02-17 14:50:28 +0000
committerAndrew Donald Kennedy <grkvlt@apache.org>2011-02-17 14:50:28 +0000
commit4a6d824f6344a4978f3be22264614e0fc34ab6dd (patch)
tree6d0656c6850441e3da3bdf9903eee08a6dc23728 /qpid/java/client/src
parent2fd65c97562f0947cbd649b1f2874dbe9f39653b (diff)
downloadqpid-python-4a6d824f6344a4978f3be22264614e0fc34ab6dd.tar.gz
QPID-3008: Fix failover behaviour in 0-10 for QueueBrowserAutoAckTest
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1071631 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client/src')
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java14
-rw-r--r--qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java8
2 files changed, 10 insertions, 12 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
index 4b4417b6ef..b0bd8f8e97 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.CountDownLatch;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
@@ -211,15 +212,13 @@ public class AMQConnectionDelegate_0_10 implements AMQConnectionDelegate, Connec
public void resubscribeSessions() throws JMSException, AMQException, FailoverException
{
List<AMQSession> sessions = new ArrayList<AMQSession>(_conn.getSessions().values());
- _logger.info(String.format("Resubscribing sessions = %s sessions.size=%s", sessions, sessions.size()));
+ _logger.info(String.format("Resubscribing sessions = %s sessions.size=%d", sessions, sessions.size()));
for (AMQSession s : sessions)
{
- ((AMQSession_0_10) s)._qpidConnection = _qpidConnection;
s.resubscribe();
}
}
-
public void closeConnection(long timeout) throws JMSException, AMQException
{
try
@@ -257,12 +256,14 @@ public class AMQConnectionDelegate_0_10 implements AMQConnectionDelegate, Connec
ConnectionClose close = exc.getClose();
if (close == null)
{
+ _conn.getProtocolHandler().setFailoverLatch(new CountDownLatch(1));
+
try
{
if (_conn.firePreFailover(false) && _conn.attemptReconnection())
{
_conn.failoverPrep();
- _qpidConnection.resume();
+ _conn.resubscribeSessions();
_conn.fireFailoverComplete();
return;
}
@@ -271,6 +272,11 @@ public class AMQConnectionDelegate_0_10 implements AMQConnectionDelegate, Connec
{
_logger.error("error during failover", e);
}
+ finally
+ {
+ _conn.getProtocolHandler().getFailoverLatch().countDown();
+ _conn.getProtocolHandler().setFailoverLatch(null);
+ }
}
ExceptionListener listener = _conn._exceptionListener;
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
index 6fa22b7971..517a7a5ce8 100644
--- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
+++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java
@@ -892,14 +892,6 @@ public class AMQSession_0_10 extends AMQSession<BasicMessageConsumer_0_10, Basic
public void resumed(Session ssn)
{
_qpidConnection = ssn.getConnection();
- try
- {
- resubscribe();
- }
- catch (AMQException e)
- {
- throw new RuntimeException(e);
- }
}
public void message(Session ssn, MessageTransfer xfr)