[jboss-cvs] JBossAS SVN: r109756 - trunk/cluster/src/main/java/org/jboss/ha/singleton.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 7 12:01:19 EST 2010
Author: pferraro
Date: 2010-12-07 12:01:17 -0500 (Tue, 07 Dec 2010)
New Revision: 109756
Modified:
trunk/cluster/src/main/java/org/jboss/ha/singleton/PreferredMasterElectionPolicy.java
Log:
JBAS-8710 Revert drunken commit...
Modified: trunk/cluster/src/main/java/org/jboss/ha/singleton/PreferredMasterElectionPolicy.java
===================================================================
--- trunk/cluster/src/main/java/org/jboss/ha/singleton/PreferredMasterElectionPolicy.java 2010-12-07 15:47:16 UTC (rev 109755)
+++ trunk/cluster/src/main/java/org/jboss/ha/singleton/PreferredMasterElectionPolicy.java 2010-12-07 17:01:17 UTC (rev 109756)
@@ -29,6 +29,7 @@
import java.util.List;
import org.jboss.ha.framework.interfaces.ClusterNode;
+import org.jboss.logging.Logger;
/**
* Election policy that chooses the node where the singleton should run based on
@@ -44,6 +45,8 @@
extends HASingletonElectionPolicySimple
implements PreferredMasterElectionPolicyMBean
{
+ private Logger log = Logger.getLogger(this.getClass());
+
private volatile InetSocketAddress preferredMaster;
// ------------------------------------------------------------- Properties
@@ -51,7 +54,6 @@
/**
* @see PreferredMasterElectionPolicyMBean#setPreferredMaster(String)
*/
- @Override
public void setPreferredMaster(String value)
{
String node = (value != null) ? value.trim() : "";
@@ -89,7 +91,6 @@
/**
* @see PreferredMasterElectionPolicyMBean#getPreferredMaster()
*/
- @Override
public String getPreferredMaster()
{
InetSocketAddress address = this.preferredMaster;
@@ -109,16 +110,36 @@
// If preferred master is defined and contained in cluster, return it
if (sockAddress != null)
{
- for (ClusterNode candidate: candidates)
+ InetAddress address = sockAddress.getAddress();
+ int port = sockAddress.getPort();
+
+ // First find by address
+ master = this.find(candidates, address.getHostAddress(), port);
+
+ if (master == null)
{
- if ((candidate.getPort() == sockAddress.getPort()) && candidate.getIpAddress().equals(sockAddress.getAddress()))
- {
- master = candidate;
- break;
- }
+ // Then try by hostname
+ master = this.find(candidates, address.getHostName(), port);
}
}
return (master != null) ? master : super.elect(candidates);
}
+
+ private ClusterNode find(List<ClusterNode> candidates, String host, int port)
+ {
+ String node = host + ":" + port;
+
+ this.log.debug("Checking if " + node + " is in candidate list: " + candidates);
+
+ for (ClusterNode candidate: candidates)
+ {
+ if (candidate.getName().equals(node))
+ {
+ return candidate;
+ }
+ }
+
+ return null;
+ }
}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list