Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 b62fde1bb -> 416ba6e8b
Fix IndexOutOfBoundsException when using empty BATCH statements patch by Vovodroid; reviewed by Benjamin Lerer for CASSANDRA-10277 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1a2a1d2c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a2a1d2c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a2a1d2c Branch: refs/heads/cassandra-2.2 Commit: 1a2a1d2c24b777d4c9ea9106e0e7199c7b91fa29 Parents: b62fde1 Author: Vovodroid <[email protected]> Authored: Thu Sep 17 20:57:51 2015 +0200 Committer: blerer <[email protected]> Committed: Thu Sep 17 20:57:51 2015 +0200 ---------------------------------------------------------------------- .../org/apache/cassandra/cql3/statements/BatchStatement.java | 2 +- .../apache/cassandra/cql3/validation/operations/BatchTest.java | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a2a1d2c/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java index 0661b56..46dfda5 100644 --- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java @@ -510,7 +510,7 @@ public class BatchStatement implements CQLStatement // Use the CFMetadata of the first statement for partition key bind indexes. If the statements affect // multiple tables, we won't send partition key bind indexes. - Short[] partitionKeyBindIndexes = haveMultipleCFs ? null + Short[] partitionKeyBindIndexes = (haveMultipleCFs || batchStatement.statements.isEmpty())? null : boundNames.getPartitionKeyBindIndexes(batchStatement.statements.get(0).cfm); return new ParsedStatement.Prepared(batchStatement, boundNames, partitionKeyBindIndexes); http://git-wip-us.apache.org/repos/asf/cassandra/blob/1a2a1d2c/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java ---------------------------------------------------------------------- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java index 1447845..07117fd 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/BatchTest.java @@ -103,4 +103,10 @@ public class BatchTest extends CQLTester row(111, "batchtext", null) ); } + + @Test + public void testBatchEmpty() throws Throwable + { + execute("BEGIN BATCH APPLY BATCH;"); + } }
