[jboss-cvs] JBoss Messaging SVN: r2405 - in trunk/src: etc/server/default/deploy and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 23 18:34:12 EST 2007
Author: timfox
Date: 2007-02-23 18:34:12 -0500 (Fri, 23 Feb 2007)
New Revision: 2405
Modified:
trunk/src/etc/aop-messaging-client.xml
trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml
trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml
trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml
trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml
trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java
trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java
trunk/src/main/org/jboss/jms/server/destination/QueueService.java
trunk/src/main/org/jboss/jms/server/destination/TopicService.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java
Log:
bunch of failover fixes
Modified: trunk/src/etc/aop-messaging-client.xml
===================================================================
--- trunk/src/etc/aop-messaging-client.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/aop-messaging-client.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -47,7 +47,6 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.delegate.ConnectionDelegate}(..))">
<interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
- <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
@@ -90,6 +89,9 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->createSessionDelegate(..))">
<advice name="handleCreateSessionDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
</bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConnectionDelegate->$implementing{org.jboss.jms.server.endpoint.ConnectionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
<!--
Session Stack
@@ -97,7 +99,6 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.delegate.SessionDelegate}(..))">
<interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
- <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
@@ -188,6 +189,9 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->createBrowserDelegate(..))">
<advice name="handleCreateBrowserDelegate" aspect="org.jboss.jms.client.container.StateCreationAspect"/>
</bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientSessionDelegate->$implementing{org.jboss.jms.server.endpoint.SessionEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
<!--
Consumer Stack
@@ -195,7 +199,6 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.delegate.ConsumerDelegate}(..))">
<interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
- <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
@@ -223,6 +226,9 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->getMessageSelector())">
<advice name="handleGetMessageSelector" aspect="org.jboss.jms.client.container.ConsumerAspect"/>
</bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientConsumerDelegate->$implementing{org.jboss.jms.server.endpoint.ConsumerEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
<!--
@@ -230,7 +236,6 @@
-->
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->$implementing{org.jboss.jms.delegate.ProducerDelegate}(..))">
<interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
- <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
@@ -278,14 +283,14 @@
</bind>
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientProducerDelegate->close())">
<advice name="handleClose" aspect="org.jboss.jms.client.container.ProducerAspect"/>
- </bind>
+ </bind>
+ <!-- Producers never go to the server - so no need for a failover interceptor -->
<!--
Browser Stack
-->
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.delegate.BrowserDelegate}(..))">
<interceptor-ref name="org.jboss.jms.client.container.ClientLogInterceptor"/>
- <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ExceptionInterceptor"/>
<interceptor-ref name="org.jboss.jms.client.container.ClosedInterceptor"/>
</bind>
@@ -295,4 +300,7 @@
<bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->hasNextMessage())">
<advice name="handleHasNextMessage" aspect="org.jboss.jms.client.container.BrowserAspect"/>
</bind>
+ <bind pointcut="execution(* org.jboss.jms.client.delegate.ClientBrowserDelegate->$implementing{org.jboss.jms.server.endpoint.BrowserEndpoint}(..))">
+ <interceptor-ref name="org.jboss.jms.client.container.FailoverValveInterceptor"/>
+ </bind>
</aop>
\ No newline at end of file
Modified: trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-mssql-persistence-service.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
<attribute name="StateTimeout">5000</attribute>
<attribute name="CastTimeout">5000</attribute>
<attribute name="StatsSendPeriod">10000</attribute>
- <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
<attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
Modified: trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-mysql-persistence-service.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
<attribute name="StateTimeout">5000</attribute>
<attribute name="CastTimeout">5000</attribute>
<attribute name="StatsSendPeriod">10000</attribute>
- <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
<attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
Modified: trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-oracle-persistence-service.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
<attribute name="StateTimeout">5000</attribute>
<attribute name="CastTimeout">5000</attribute>
<attribute name="StatsSendPeriod">10000</attribute>
- <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
<attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
Modified: trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-postgresql-persistence-service.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -82,7 +82,7 @@
<attribute name="StateTimeout">5000</attribute>
<attribute name="CastTimeout">5000</attribute>
<attribute name="StatsSendPeriod">10000</attribute>
- <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
<attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
Modified: trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml
===================================================================
--- trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/etc/server/default/deploy/clustered-sybase-persistence-service.xml 2007-02-23 23:34:12 UTC (rev 2405)
@@ -83,7 +83,7 @@
<attribute name="StateTimeout">5000</attribute>
<attribute name="CastTimeout">5000</attribute>
<attribute name="StatsSendPeriod">10000</attribute>
- <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultMessagePullPolicy</attribute>
+ <attribute name="MessagePullPolicy">org.jboss.messaging.core.plugin.postoffice.cluster.NullMessagePullPolicy</attribute>
<attribute name="ClusterRouterFactory">org.jboss.messaging.core.plugin.postoffice.cluster.DefaultRouterFactory</attribute>
Modified: trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/client/container/FailoverValveInterceptor.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -68,8 +68,7 @@
}
public Object invoke(Invocation invocation) throws Throwable
- {
-
+ {
// maintain a reference to connectionState, so we can ensure we have already tested for fcc.
// As fcc can be null on non-clustered connections we have to cache connectionState instead
if (connectionState == null)
@@ -121,17 +120,17 @@
catch (MessagingNetworkFailureException e)
{
log.debug(this + " detected network failure, putting " + methodName +
- "() on hold until failover completes");
-
+ "() on hold until failover completes");
+
fcc.failureDetected(e, this, remotingConnection);
log.debug(this + " resuming " + methodName + "()");
-
+
Object target = invocation.getTargetObject();
// Set retry flag as true on send & sendTransaction
// more details at http://jira.jboss.org/jira/browse/JBMESSAGING-809
-
+
if (methodName.equals("send") &&
target instanceof ClientSessionDelegate)
{
@@ -151,7 +150,7 @@
}
return invocation.invokeNext();
- }
+ }
catch (Throwable e)
{
// not failover-triggering, rethrow
@@ -162,7 +161,7 @@
valve.leave();
}
}
-
+
// Public ---------------------------------------------------------------------------------------
public String toString()
Modified: trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/client/delegate/DelegateSupport.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -209,6 +209,15 @@
{
return new MessagingNetworkFailureException((Exception)t);
}
+// else if (t instanceof Exception && t.getMessage().startsWith("Can not make remoting client invocation"))
+// {
+//
+// log.info("********** caught exception ", t);
+//
+// //FIXME Temporary HACK until http://jira.jboss.org/jira/browse/JBMESSAGING-891 is
+// //fixed
+// return new MessagingNetworkFailureException((Exception)t);
+// }
else
{
log.error("Failed", t);
Modified: trunk/src/main/org/jboss/jms/server/destination/QueueService.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/QueueService.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/server/destination/QueueService.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -7,6 +7,8 @@
package org.jboss.jms.server.destination;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import javax.jms.IllegalStateException;
@@ -20,6 +22,7 @@
import org.jboss.messaging.core.local.PagingFilteredQueue;
import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.postoffice.Binding;
+import org.jboss.messaging.core.plugin.postoffice.cluster.FailedOverQueue;
import org.jboss.messaging.core.plugin.postoffice.cluster.LocalClusteredQueue;
/**
@@ -71,26 +74,53 @@
// Binding must be added before destination is registered in JNDI otherwise the user could
// get a reference to the destination and use it while it is still being loaded. Also,
// binding might already exist.
-
- Binding binding = postOffice.getBindingForQueueName(destination.getName());
- PagingFilteredQueue queue;
+ JMSCondition topicCond = new JMSCondition(true, destination.getName());
- if (binding != null)
- {
- queue = (PagingFilteredQueue)binding.getQueue();
-
- queue.setPagingParams(destination.getFullSize(),
- destination.getPageSize(),
- destination.getDownCacheSize());
- queue.load();
+ // There may be many bindings since there maybe failed over queues
+ Collection bindings = postOffice.getBindingsForCondition(topicCond);
+ Iterator iter = bindings.iterator();
+
+ PagingFilteredQueue queue = null;
+
+ while (iter.hasNext())
+ {
+ Binding binding = (Binding)iter.next();
- // Must be done after load
- queue.setMaxSize(destination.getMaxSize());
- queue.activate();
+ PagingFilteredQueue q = (PagingFilteredQueue)binding.getQueue();
+
+ q.setPagingParams(destination.getFullSize(),
+ destination.getPageSize(),
+ destination.getDownCacheSize());
+ q.load();
+
+ if (q instanceof FailedOverQueue && queue.getMessageCount() == 0)
+ {
+ //If there are no refs in the queue we can safely delete it
+ //We don't want empty queues from previous failed nodes clogging up
+ //the database
+
+ //TODO - commented out for now
+
+// ClusteredPostOffice cpo = (ClusteredPostOffice)postOffice;
+//
+// cpo.unbindClusteredQueue(q.getName());
+ }
+ else
+ {
+ // Must be done after load
+ q.setMaxSize(destination.getMaxSize());
+ q.activate();
+
+ if (!(queue instanceof FailedOverQueue))
+ {
+ queue = q;
+ }
+ }
}
- else
- {
+
+ if (queue == null)
+ {
// Create a new queue
JMSCondition queueCond = new JMSCondition(true, destination.getName());
Modified: trunk/src/main/org/jboss/jms/server/destination/TopicService.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/destination/TopicService.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/jms/server/destination/TopicService.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -18,7 +18,9 @@
import org.jboss.jms.util.MessageQueueNameHelper;
import org.jboss.jms.util.XMLUtil;
import org.jboss.messaging.core.local.PagingFilteredQueue;
+import org.jboss.messaging.core.plugin.contract.ClusteredPostOffice;
import org.jboss.messaging.core.plugin.postoffice.Binding;
+import org.jboss.messaging.core.plugin.postoffice.cluster.FailedOverQueue;
/**
* A deployable JBoss Messaging topic.
@@ -86,28 +88,44 @@
queue.setPagingParams(destination.getFullSize(), destination.getPageSize(), destination.getDownCacheSize());
queue.load();
- queue.activate();
- //Must be done after load
- queue.setMaxSize(destination.getMaxSize());
-
- //Create a counter
- String counterName = SUBSCRIPTION_MESSAGECOUNTER_PREFIX + queue.getName();
-
- String subName = MessageQueueNameHelper.createHelper(queue.getName()).getSubName();
-
- int dayLimitToUse = destination.getMessageCounterHistoryDayLimit();
- if (dayLimitToUse == -1)
+ if (queue instanceof FailedOverQueue && queue.getMessageCount() == 0)
{
- //Use override on server peer
- dayLimitToUse = serverPeer.getDefaultMessageCounterHistoryDayLimit();
+ //If there are no refs in the queue we can safely delete it
+ //We don't want empty queues from previous failed nodes clogging up
+ //the database
+
+ //Commented out for now
+
+// ClusteredPostOffice cpo = (ClusteredPostOffice)postOffice;
+//
+// cpo.unbindClusteredQueue(queue.getName());
}
-
- MessageCounter counter =
- new MessageCounter(counterName, subName, queue, true, true,
- dayLimitToUse);
-
- serverPeer.getMessageCounterManager().registerMessageCounter(counterName, counter);
+ else
+ {
+ queue.activate();
+
+ //Must be done after load
+ queue.setMaxSize(destination.getMaxSize());
+
+ //Create a counter
+ String counterName = SUBSCRIPTION_MESSAGECOUNTER_PREFIX + queue.getName();
+
+ String subName = MessageQueueNameHelper.createHelper(queue.getName()).getSubName();
+
+ int dayLimitToUse = destination.getMessageCounterHistoryDayLimit();
+ if (dayLimitToUse == -1)
+ {
+ //Use override on server peer
+ dayLimitToUse = serverPeer.getDefaultMessageCounterHistoryDayLimit();
+ }
+
+ MessageCounter counter =
+ new MessageCounter(counterName, subName, queue, true, true,
+ dayLimitToUse);
+
+ serverPeer.getMessageCounterManager().registerMessageCounter(counterName, counter);
+ }
}
dm.registerDestination(destination);
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/DefaultClusteredPostOffice.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -598,12 +598,13 @@
public void putReplicantLocally(int originatorNodeID, Serializable key, Serializable replicant)
throws Exception
{
-
+ Map m = null;
+
synchronized (replicatedData)
{
log.debug(this + " puts replicant locally: " + key + "->" + replicant);
- Map m = (Map)replicatedData.get(key);
+ m = (Map)replicatedData.get(key);
if (m == null)
{
@@ -614,10 +615,10 @@
m.put(new Integer(originatorNodeID), replicant);
- notifyListeners(key, m, true, originatorNodeID);
-
if (trace) { log.trace(this + " putReplicantLocally completed"); }
}
+
+ notifyListeners(key, m, true, originatorNodeID);
}
/**
@@ -625,11 +626,13 @@
*/
public boolean removeReplicantLocally(int originatorNodeID, Serializable key) throws Exception
{
+ Map m = null;
+
synchronized (replicatedData)
{
if (trace) { log.trace(this + " removes " + originatorNodeID + "'s replicant locally for key " + key); }
- Map m = (Map)replicatedData.get(key);
+ m = (Map)replicatedData.get(key);
if (m == null)
{
@@ -647,10 +650,11 @@
{
replicatedData.remove(key);
}
- notifyListeners(key, m, false, originatorNodeID);
+ }
+
+ notifyListeners(key, m, false, originatorNodeID);
- return true;
- }
+ return true;
}
public void routeFromCluster(org.jboss.messaging.core.message.Message message,
@@ -1740,10 +1744,12 @@
lock.writeLock().release();
}
+ Map toNotify = new HashMap();
+
synchronized (replicatedData)
{
// We need to remove any replicant data for the node. This includes the node-address info.
- for(Iterator i = replicatedData.entrySet().iterator(); i.hasNext(); )
+ for (Iterator i = replicatedData.entrySet().iterator(); i.hasNext(); )
{
Map.Entry entry = (Map.Entry)i.next();
String key = (String)entry.getKey();
@@ -1756,9 +1762,19 @@
i.remove();
}
- notifyListeners(key, replicants, false, nodeToRemove.intValue());
+ toNotify.put(key, replicants);
}
}
+
+ //Notify outside the lock to prevent deadlock
+
+ for (Iterator i = toNotify.entrySet().iterator(); i.hasNext(); )
+ {
+ Map.Entry entry = (Map.Entry)i.next();
+ String key = (String)entry.getKey();
+ Map replicants = (Map)entry.getValue();
+ notifyListeners(key, replicants, false, nodeToRemove.intValue());
+ }
}
/**
@@ -2153,6 +2169,8 @@
}
ClusteredQueue queue = (ClusteredQueue)binding.getQueue();
+
+ log.info("queue is:" + queue.getName());
// Sanity check
if (queue.isLocal())
Modified: trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java 2007-02-23 21:56:01 UTC (rev 2404)
+++ trunk/src/main/org/jboss/messaging/core/plugin/postoffice/cluster/FailoverStatus.java 2007-02-23 23:34:12 UTC (rev 2405)
@@ -70,8 +70,12 @@
throw new IllegalStateException("Already failing over for node " + currentlyFailingOverForNode);
}
+ //Remove from failedOverNodes in case its failed over for the same node before
+ failedOverForNodes.remove(nodeID);
+
currentlyFailingOverForNode = nodeID.intValue();
- failingOver = true;
+
+ failingOver = true;
}
public void finishFailingOver()
More information about the jboss-cvs-commits
mailing list