Return empty schema to pre-1.2 nodes' migration requests
diff --git a/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java b/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java
index 97fd641..1992c01 100644
--- a/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java
+++ b/src/java/org/apache/cassandra/db/MigrationRequestVerbHandler.java
@@ -18,6 +18,7 @@
package org.apache.cassandra.db;
import java.util.Collection;
+import java.util.Collections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,8 +40,16 @@
public void doVerb(MessageIn message, String id)
{
logger.debug("Received migration request from {}.", message.from);
+
+ if (message.version < MessagingService.VERSION_12)
+ logger.debug("Returning empty response to the migration request from {} (version < 1.2).", message.from);
+
+ Collection<RowMutation> schema = message.version < MessagingService.VERSION_12
+ ? Collections.EMPTY_SET
+ : SystemTable.serializeSchema();
+
MessageOut<Collection<RowMutation>> response = new MessageOut<Collection<RowMutation>>(MessagingService.Verb.INTERNAL_RESPONSE,
- SystemTable.serializeSchema(),
+ schema,
MigrationManager.MigrationsSerializer.instance);
MessagingService.instance().sendReply(response, id, message.from);
}