Merge branch 'cassandra-1.2' into trunk

Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/78b0dbeb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/78b0dbeb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/78b0dbeb

Branch: refs/heads/trunk
Commit: 78b0dbeb25f2327fc2c417bb07bebac15f99e785
Parents: 86081fa fc5044f
Author: Jason Brown <[email protected]>
Authored: Wed Jun 19 12:21:52 2013 -0700
Committer: Jason Brown <[email protected]>
Committed: Wed Jun 19 12:21:52 2013 -0700

----------------------------------------------------------------------
 src/java/org/apache/cassandra/gms/Gossiper.java | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/78b0dbeb/src/java/org/apache/cassandra/gms/Gossiper.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/gms/Gossiper.java
index c32cc41,efa9865..d8918f3
--- a/src/java/org/apache/cassandra/gms/Gossiper.java
+++ b/src/java/org/apache/cassandra/gms/Gossiper.java
@@@ -1077,10 -1074,22 +1077,22 @@@ public class Gossiper implements IFailu
              logger.debug("Attempt to add self as saved endpoint");
              return;
          }
-         EndpointState epState = new EndpointState(new HeartBeatState(0));
+ 
+         //preserve any previously known, in-memory data about the endpoint 
(such as DC, RACK, and so on)
+         EndpointState epState = endpointStateMap.get(ep);
+         if (epState != null)
+         {
+             logger.debug("not replacing a previous epState for {}, but 
reusing it: {}", ep, epState);
+             epState.setHeartBeatState(new HeartBeatState(0));
+         }
+         else
+         {
+             epState = new EndpointState(new HeartBeatState(0));
+         }
+ 
          epState.markDead();
          endpointStateMap.put(ep, epState);
 -        unreachableEndpoints.put(ep, System.currentTimeMillis());
 +        unreachableEndpoints.put(ep, System.nanoTime());
          if (logger.isTraceEnabled())
              logger.trace("Adding saved endpoint " + ep + " " + 
epState.getHeartBeatState().getGeneration());
      }

Reply via email to