You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ty...@apache.org on 2015/12/22 23:26:45 UTC

[1/2] cassandra git commit: Avoid NoSuchElementException on empty batch

Repository: cassandra
Updated Branches:
  refs/heads/trunk cae395026 -> e5b6a9c8b


Avoid NoSuchElementException on empty batch

Patch by Tyler Hobbs; reviewed by Sylvain Lebresne for CASSANDRA-10711


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

Branch: refs/heads/trunk
Commit: 796db6e09c2c5f462df7d75513b3b765ed0404da
Parents: a2088b1
Author: Tyler Hobbs <ty...@gmail.com>
Authored: Tue Dec 22 16:24:11 2015 -0600
Committer: Tyler Hobbs <ty...@gmail.com>
Committed: Tue Dec 22 16:24:11 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                 | 1 +
 .../apache/cassandra/cql3/statements/BatchStatement.java    | 3 +++
 test/unit/org/apache/cassandra/cql3/BatchTests.java         | 9 ++++++---
 3 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/796db6e0/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index be39f29..7794c96 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.3
+ * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
  * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
  * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
  * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/796db6e0/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 1f1d507..dc7ef73 100644
--- a/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
@@ -340,6 +340,9 @@ public class BatchStatement implements CQLStatement
 
     private void executeWithoutConditions(Collection<? extends IMutation> mutations, ConsistencyLevel cl) throws RequestExecutionException, RequestValidationException
     {
+        if (mutations.isEmpty())
+            return;
+
         // Extract each collection of updates from it's IMutation and then lazily concatenate all of them into a single Iterable.
         Iterable<PartitionUpdate> updates = Iterables.concat(Iterables.transform(mutations, new Function<IMutation, Collection<PartitionUpdate>>()
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/796db6e0/test/unit/org/apache/cassandra/cql3/BatchTests.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql3/BatchTests.java b/test/unit/org/apache/cassandra/cql3/BatchTests.java
index 95fe612..73923fb 100644
--- a/test/unit/org/apache/cassandra/cql3/BatchTests.java
+++ b/test/unit/org/apache/cassandra/cql3/BatchTests.java
@@ -37,7 +37,6 @@ public class BatchTests
     private static Cluster cluster;
     private static Session session;
 
-
     private static PreparedStatement counter;
     private static PreparedStatement noncounter;
 
@@ -114,6 +113,12 @@ public class BatchTests
         sendBatch(BatchStatement.Type.UNLOGGED, true, false);
     }
 
+    @Test
+    public void testEmptyBatch()
+    {
+        session.execute("BEGIN BATCH APPLY BATCH");
+        session.execute("BEGIN UNLOGGED BATCH APPLY BATCH");
+    }
 
     @Test(expected = InvalidQueryException.class)
     public void testCounterInLoggedBatch()
@@ -133,8 +138,6 @@ public class BatchTests
         session.execute(b);
     }
 
-
-
     public void sendBatch(BatchStatement.Type type, boolean addCounter, boolean addNonCounter)
     {
 


[2/2] cassandra git commit: Merge branch 'cassandra-3.0' into trunk

Posted by ty...@apache.org.
Merge branch 'cassandra-3.0' into trunk

Conflicts:
	CHANGES.txt


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

Branch: refs/heads/trunk
Commit: e5b6a9c8b289982c78ff9266db28aa21b28f23ef
Parents: cae3950 796db6e
Author: Tyler Hobbs <ty...@gmail.com>
Authored: Tue Dec 22 16:26:24 2015 -0600
Committer: Tyler Hobbs <ty...@gmail.com>
Committed: Tue Dec 22 16:26:24 2015 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                 | 1 +
 .../apache/cassandra/cql3/statements/BatchStatement.java    | 3 +++
 test/unit/org/apache/cassandra/cql3/BatchTests.java         | 9 ++++++---
 3 files changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5b6a9c8/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 9f82731,7794c96..e36e4c2
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,28 -1,5 +1,29 @@@
 -3.0.3
 +3.2
 + * Add forceUserDefinedCleanup to allow more flexible cleanup (CASSANDRA-10708)
 + * (cqlsh) allow setting TTL with COPY (CASSANDRA-9494)
 + * Fix EstimatedHistogram creation in nodetool tablehistograms (CASSANDRA-10859)
 + * Establish bootstrap stream sessions sequentially (CASSANDRA-6992)
 + * Sort compactionhistory output by timestamp (CASSANDRA-10464)
 + * More efficient BTree removal (CASSANDRA-9991)
 + * Make tablehistograms accept the same syntax as tablestats (CASSANDRA-10149)
 + * Group pending compactions based on table (CASSANDRA-10718)
 + * Add compressor name in sstablemetadata output (CASSANDRA-9879)
 + * Fix type casting for counter columns (CASSANDRA-10824)
 + * Prevent running Cassandra as root (CASSANDRA-8142)
 + * bound maximum in-flight commit log replay mutation bytes to 64 megabytes (CASSANDRA-8639)
 + * Normalize all scripts (CASSANDRA-10679)
 + * Make compression ratio much more accurate (CASSANDRA-10225)
 + * Optimize building of Clustering object when only one is created (CASSANDRA-10409)
 + * Make index building pluggable (CASSANDRA-10681)
 + * Add sstable flush observer (CASSANDRA-10678)
 + * Improve NTS endpoints calculation (CASSANDRA-10200)
 + * Improve performance of the folderSize function (CASSANDRA-10677)
 + * Add support for type casting in selection clause (CASSANDRA-10310)
 + * Added graphing option to cassandra-stress (CASSANDRA-7918)
 + * Abort in-progress queries that time out (CASSANDRA-7392)
 + * Add transparent data encryption core classes (CASSANDRA-9945)
 +Merged from 3.0:
+  * Avoid NoSuchElementException when executing empty batch (CASSANDRA-10711)
   * Avoid building PartitionUpdate in toString (CASSANDRA-10897)
   * Reduce heap spent when receiving many SSTables (CASSANDRA-10797)
   * Add back support for 3rd party auth providers to bulk loader (CASSANDRA-10873)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5b6a9c8/src/java/org/apache/cassandra/cql3/statements/BatchStatement.java
----------------------------------------------------------------------