Merge branch 'cassandra-2.1' into cassandra-2.2

Conflicts:
        
src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java


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

Branch: refs/heads/cassandra-2.2
Commit: 46ea0402f760ed99a93fa463688a59e26a1c543a
Parents: 2a9fc0e 66a48e7
Author: Benedict Elliott Smith <bened...@apache.org>
Authored: Wed Jun 3 17:01:59 2015 +0100
Committer: Benedict Elliott Smith <bened...@apache.org>
Committed: Wed Jun 3 17:01:59 2015 +0100

----------------------------------------------------------------------
 CHANGES.txt                                     |  1 +
 .../io/sstable/SSTableSimpleUnsortedWriter.java | 19 +++++++++----
 .../io/sstable/CQLSSTableWriterTest.java        | 29 ++++++++++++++++++++
 3 files changed, 44 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/46ea0402/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index b4364ba,4d38e1e..aeae5e8
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,20 -1,5 +1,21 @@@
 +2.2
 + * Clean up gossiper logic for old versions (CASSANDRA-9370)
 + * Fix custom payload coding/decoding to match the spec (CASSANDRA-9515)
 + * ant test-all results incomplete when parsed (CASSANDRA-9463)
 + * Disallow frozen<> types in function arguments and return types for
 +   clarity (CASSANDRA-9411)
 + * Static Analysis to warn on unsafe use of Autocloseable instances 
(CASSANDRA-9431)
 + * Update commitlog archiving examples now that commitlog segments are
 +   not recycled (CASSANDRA-9350)
 + * Extend Transactional API to sstable lifecycle management (CASSANDRA-8568)
 + * (cqlsh) Add support for native protocol 4 (CASSANDRA-9399)
 + * Ensure that UDF and UDAs are keyspace-isolated (CASSANDRA-9409)
 + * Revert CASSANDRA-7807 (tracing completion client notifications) 
(CASSANDRA-9429)
 + * Add ability to stop compaction by ID (CASSANDRA-7207)
 + * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438)
 +Merged from 2.1:
  2.1.6
+  * Fix empty partition assertion in unsorted sstable writing tools 
(CASSANDRA-9071)
   * Ensure truncate without snapshot cannot produce corrupt responses 
(CASSANDRA-9388) 
   * Consistent error message when a table mixes counter and non-counter
     columns (CASSANDRA-9492)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/46ea0402/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
----------------------------------------------------------------------
diff --cc 
src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
index d6ab940,9ee9ea1..cc47845
--- a/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableSimpleUnsortedWriter.java
@@@ -219,36 -229,29 +230,34 @@@ public class SSTableSimpleUnsortedWrite
              {
                  while (true)
                  {
 -                    Buffer b = writeQueue.take();
 -                    if (b == SENTINEL)
 -                        return;
 +                    try
 +                    {
 +                        Buffer b = writeQueue.take();
 +                        if (b == SENTINEL)
 +                            return;
  
 -                    writer = getWriter();
 -                    for (Map.Entry<DecoratedKey, ColumnFamily> entry : 
b.entrySet())
 +                        try (SSTableWriter writer = getWriter();)
 +                        {
-                             boolean first = true;
 +                            for (Map.Entry<DecoratedKey, ColumnFamily> entry 
: b.entrySet())
 +                            {
 +                                if (entry.getValue().getColumnCount() > 0)
 +                                    writer.append(entry.getKey(), 
entry.getValue());
-                                 else if (!first)
++                                else if 
(!entry.getKey().equals(b.getFirstInsertedKey()))
 +                                    throw new AssertionError("Empty 
partition");
-                                 first = false;
 +                            }
- 
++                            
 +                            writer.finish(false);
 +                        }
 +                    }
 +                    catch (Throwable e)
                      {
 -                        if (entry.getValue().getColumnCount() > 0)
 -                            writer.append(entry.getKey(), entry.getValue());
 -                        else if 
(!entry.getKey().equals(b.getFirstInsertedKey()))
 -                            throw new AssertionError("Empty partition");
 +                        JVMStabilityInspector.inspectThrowable(e);
 +                        // Keep only the first exception
 +                        if (exception == null)
 +                            exception = e;
                      }
 -                    writer.close();
                  }
 -            }
 -            catch (Throwable e)
 -            {
 -                JVMStabilityInspector.inspectThrowable(e);
 -                if (writer != null)
 -                    writer.abort();
 -                exception = e;
 +
              }
          }
      }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/46ea0402/test/unit/org/apache/cassandra/io/sstable/CQLSSTableWriterTest.java
----------------------------------------------------------------------

Reply via email to