You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sa...@apache.org on 2016/08/26 09:54:51 UTC

[1/9] cassandra git commit: Fix ant eclipse-warnings in 2.2

Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 b9fc6a5e4 -> 5f6a12485
  refs/heads/cassandra-3.0 b89ffe730 -> 0fd07e832
  refs/heads/trunk d34c15b78 -> 05660a5ab


Fix ant eclipse-warnings in 2.2

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-15258


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

Branch: refs/heads/cassandra-2.2
Commit: 5f6a124853e55db9953e4e2fc717f9e9fe76d1d7
Parents: b9fc6a5
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 13:02:44 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:43:55 2016 +0100

----------------------------------------------------------------------
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f6a1248/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0835a28..644d1f5 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -901,7 +901,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
                                                 previousFlushFailure);
             logFlush();
             Flush flush = new Flush(false);
-            ListenableFutureTask<?> flushTask = ListenableFutureTask.create(flush, null);
+            ListenableFutureTask<Void> flushTask = ListenableFutureTask.create(flush, null);
             flushExecutor.submit(flushTask);
             ListenableFutureTask<ReplayPosition> task = ListenableFutureTask.create(flush.postFlush);
             postFlushExecutor.submit(task);
@@ -910,6 +910,9 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
             ListenableFuture<ReplayPosition> future = 
                     // If either of the two tasks errors out, resulting future must also error out.
                     // Combine the two futures and only return post-flush result after both have completed.
+                    // Note that flushTask will always yield null, but Futures.allAsList is
+                    // order preserving, which is why the transform function returns the result
+                    // from item 1 in it's input list (i.e. what was yielded by task).
                     Futures.transform(Futures.allAsList(flushTask, task),
                                       new Function<List<Object>, ReplayPosition>()
                                       {


[4/9] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by sa...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/cassandra-3.0
Commit: 4dbc4f585619129884a62b57aada281925e402ef
Parents: b89ffe7 5f6a124
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Fri Aug 26 10:45:59 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:45:59 2016 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[5/9] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

Posted by sa...@apache.org.
Merge branch 'cassandra-2.2' into cassandra-3.0


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

Branch: refs/heads/trunk
Commit: 4dbc4f585619129884a62b57aada281925e402ef
Parents: b89ffe7 5f6a124
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Fri Aug 26 10:45:59 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:45:59 2016 +0100

----------------------------------------------------------------------

----------------------------------------------------------------------



[7/9] cassandra git commit: Fix ant eclipse-warnings in 3.0

Posted by sa...@apache.org.
Fix ant eclipse-warnings in 3.0

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-12528


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

Branch: refs/heads/cassandra-3.0
Commit: 0fd07e832be6e9c97ca968977ba2abdf9d5cd809
Parents: 4dbc4f5
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 13:32:30 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:48:42 2016 +0100

----------------------------------------------------------------------
 .../db/compaction/TimeWindowCompactionStrategy.java      |  3 +++
 src/java/org/apache/cassandra/tools/SSTableExport.java   | 11 +++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0fd07e83/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
index e2ab7dc..1aae633 100644
--- a/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
@@ -71,6 +71,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public AbstractCompactionTask getNextBackgroundTask(int gcBefore)
     {
         while (true)
@@ -323,6 +324,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public synchronized Collection<AbstractCompactionTask> getMaximalTask(int gcBefore, boolean splitOutput)
     {
         Iterable<SSTableReader> filteredSSTables = filterSuspectSSTables(sstables);
@@ -335,6 +337,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public synchronized AbstractCompactionTask getUserDefinedTask(Collection<SSTableReader> sstables, int gcBefore)
     {
         assert !sstables.isEmpty(); // checked for by CM.submitUserDefined

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0fd07e83/src/java/org/apache/cassandra/tools/SSTableExport.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableExport.java b/src/java/org/apache/cassandra/tools/SSTableExport.java
index cc6b84b..cff1516 100644
--- a/src/java/org/apache/cassandra/tools/SSTableExport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableExport.java
@@ -180,10 +180,13 @@ public class SSTableExport
             CFMetaData metadata = metadataFromSSTable(desc);
             if (cmd.hasOption(ENUMERATE_KEYS_OPTION))
             {
-                JsonTransformer.keysToJson(null, iterToStream(new KeyIterator(desc, metadata)),
-                                                              cmd.hasOption(RAW_TIMESTAMPS),
-                                                              metadata,
-                                                              System.out);
+                try (KeyIterator iter = new KeyIterator(desc, metadata))
+                {
+                    JsonTransformer.keysToJson(null, iterToStream(iter),
+                                               cmd.hasOption(RAW_TIMESTAMPS),
+                                               metadata,
+                                               System.out);
+                }
             }
             else
             {


[6/9] cassandra git commit: Fix ant eclipse-warnings in 3.0

Posted by sa...@apache.org.
Fix ant eclipse-warnings in 3.0

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-12528


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

Branch: refs/heads/trunk
Commit: 0fd07e832be6e9c97ca968977ba2abdf9d5cd809
Parents: 4dbc4f5
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 13:32:30 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:48:42 2016 +0100

----------------------------------------------------------------------
 .../db/compaction/TimeWindowCompactionStrategy.java      |  3 +++
 src/java/org/apache/cassandra/tools/SSTableExport.java   | 11 +++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0fd07e83/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
index e2ab7dc..1aae633 100644
--- a/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
@@ -71,6 +71,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public AbstractCompactionTask getNextBackgroundTask(int gcBefore)
     {
         while (true)
@@ -323,6 +324,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public synchronized Collection<AbstractCompactionTask> getMaximalTask(int gcBefore, boolean splitOutput)
     {
         Iterable<SSTableReader> filteredSSTables = filterSuspectSSTables(sstables);
@@ -335,6 +337,7 @@ public class TimeWindowCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public synchronized AbstractCompactionTask getUserDefinedTask(Collection<SSTableReader> sstables, int gcBefore)
     {
         assert !sstables.isEmpty(); // checked for by CM.submitUserDefined

http://git-wip-us.apache.org/repos/asf/cassandra/blob/0fd07e83/src/java/org/apache/cassandra/tools/SSTableExport.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/SSTableExport.java b/src/java/org/apache/cassandra/tools/SSTableExport.java
index cc6b84b..cff1516 100644
--- a/src/java/org/apache/cassandra/tools/SSTableExport.java
+++ b/src/java/org/apache/cassandra/tools/SSTableExport.java
@@ -180,10 +180,13 @@ public class SSTableExport
             CFMetaData metadata = metadataFromSSTable(desc);
             if (cmd.hasOption(ENUMERATE_KEYS_OPTION))
             {
-                JsonTransformer.keysToJson(null, iterToStream(new KeyIterator(desc, metadata)),
-                                                              cmd.hasOption(RAW_TIMESTAMPS),
-                                                              metadata,
-                                                              System.out);
+                try (KeyIterator iter = new KeyIterator(desc, metadata))
+                {
+                    JsonTransformer.keysToJson(null, iterToStream(iter),
+                                               cmd.hasOption(RAW_TIMESTAMPS),
+                                               metadata,
+                                               System.out);
+                }
             }
             else
             {


[2/9] cassandra git commit: Fix ant eclipse-warnings in 2.2

Posted by sa...@apache.org.
Fix ant eclipse-warnings in 2.2

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-15258


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

Branch: refs/heads/cassandra-3.0
Commit: 5f6a124853e55db9953e4e2fc717f9e9fe76d1d7
Parents: b9fc6a5
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 13:02:44 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:43:55 2016 +0100

----------------------------------------------------------------------
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f6a1248/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0835a28..644d1f5 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -901,7 +901,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
                                                 previousFlushFailure);
             logFlush();
             Flush flush = new Flush(false);
-            ListenableFutureTask<?> flushTask = ListenableFutureTask.create(flush, null);
+            ListenableFutureTask<Void> flushTask = ListenableFutureTask.create(flush, null);
             flushExecutor.submit(flushTask);
             ListenableFutureTask<ReplayPosition> task = ListenableFutureTask.create(flush.postFlush);
             postFlushExecutor.submit(task);
@@ -910,6 +910,9 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
             ListenableFuture<ReplayPosition> future = 
                     // If either of the two tasks errors out, resulting future must also error out.
                     // Combine the two futures and only return post-flush result after both have completed.
+                    // Note that flushTask will always yield null, but Futures.allAsList is
+                    // order preserving, which is why the transform function returns the result
+                    // from item 1 in it's input list (i.e. what was yielded by task).
                     Futures.transform(Futures.allAsList(flushTask, task),
                                       new Function<List<Object>, ReplayPosition>()
                                       {


[3/9] cassandra git commit: Fix ant eclipse-warnings in 2.2

Posted by sa...@apache.org.
Fix ant eclipse-warnings in 2.2

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-15258


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

Branch: refs/heads/trunk
Commit: 5f6a124853e55db9953e4e2fc717f9e9fe76d1d7
Parents: b9fc6a5
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 13:02:44 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:43:55 2016 +0100

----------------------------------------------------------------------
 src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f6a1248/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0835a28..644d1f5 100644
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@ -901,7 +901,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
                                                 previousFlushFailure);
             logFlush();
             Flush flush = new Flush(false);
-            ListenableFutureTask<?> flushTask = ListenableFutureTask.create(flush, null);
+            ListenableFutureTask<Void> flushTask = ListenableFutureTask.create(flush, null);
             flushExecutor.submit(flushTask);
             ListenableFutureTask<ReplayPosition> task = ListenableFutureTask.create(flush.postFlush);
             postFlushExecutor.submit(task);
@@ -910,6 +910,9 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean
             ListenableFuture<ReplayPosition> future = 
                     // If either of the two tasks errors out, resulting future must also error out.
                     // Combine the two futures and only return post-flush result after both have completed.
+                    // Note that flushTask will always yield null, but Futures.allAsList is
+                    // order preserving, which is why the transform function returns the result
+                    // from item 1 in it's input list (i.e. what was yielded by task).
                     Futures.transform(Futures.allAsList(flushTask, task),
                                       new Function<List<Object>, ReplayPosition>()
                                       {


[9/9] cassandra git commit: Fix ant eclipse-warnings in trunk

Posted by sa...@apache.org.
Fix ant eclipse-warnings in trunk

Patch by Sam Tunnicliffe; reviewed by Tyler Hobbs for CASSANDRA-12528


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

Branch: refs/heads/trunk
Commit: 05660a5ababc766ffe87cc748dbfc8640b2023cd
Parents: b834aed
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Wed Aug 24 17:54:23 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:51:53 2016 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/db/SystemKeyspace.java |  7 +----
 .../cassandra/db/commitlog/CommitLog.java       |  7 +----
 .../db/commitlog/CommitLogSegmentReader.java    |  2 ++
 .../compaction/LeveledCompactionStrategy.java   |  5 ++--
 .../cassandra/db/rows/UnfilteredSerializer.java |  7 +----
 .../org/apache/cassandra/hints/HintsWriter.java |  7 +----
 .../index/sasi/disk/PerSSTableIndexWriter.java  |  2 ++
 .../index/sasi/disk/StaticTokenTreeBuilder.java |  1 +
 .../index/sasi/plan/QueryController.java        |  1 +
 .../io/sstable/IndexSummaryBuilder.java         |  2 +-
 .../cassandra/io/sstable/SSTableTxnWriter.java  |  5 ++--
 .../io/util/ChecksummedRandomAccessReader.java  |  2 +-
 .../io/util/ChecksummedRebufferer.java          |  1 +
 .../cassandra/io/util/DataOutputBuffer.java     | 27 ++++++++++----------
 .../apache/cassandra/metrics/TableMetrics.java  | 12 ++++-----
 .../org/apache/cassandra/net/MessageOut.java    |  7 +----
 .../cassandra/security/EncryptionUtils.java     |  2 ++
 17 files changed, 42 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/db/SystemKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java
index b23729e..598914a 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -665,8 +665,7 @@ public final class SystemKeyspace
 
     private static Map<UUID, ByteBuffer> truncationAsMapEntry(ColumnFamilyStore cfs, long truncatedAt, CommitLogPosition position)
     {
-        DataOutputBuffer out = null;
-        try (DataOutputBuffer ignored = out = DataOutputBuffer.scratchBuffer.get())
+        try (DataOutputBuffer out = DataOutputBuffer.scratchBuffer.get())
         {
             CommitLogPosition.serializer.serialize(position, out);
             out.writeLong(truncatedAt);
@@ -676,10 +675,6 @@ public final class SystemKeyspace
         {
             throw new RuntimeException(e);
         }
-        finally
-        {
-            out.recycle();
-        }
     }
 
     public static CommitLogPosition getTruncatedPosition(UUID cfId)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
index cf0368b..750fabc 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
@@ -244,8 +244,7 @@ public class CommitLog implements CommitLogMBean
     {
         assert mutation != null;
 
-        DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get();
-        try
+        try (DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get())
         {
             Mutation.serializer.serialize(mutation, dob, MessagingService.current_version);
             int size = dob.getLength();
@@ -290,10 +289,6 @@ public class CommitLog implements CommitLogMBean
         {
             throw new FSWriteError(e, segmentManager.allocatingFrom().getPath());
         }
-        finally
-        {
-            dob.recycle();
-        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java
index b547131..e23a915 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegmentReader.java
@@ -273,6 +273,7 @@ public class CommitLogSegmentReader implements Iterable<CommitLogSegmentReader.S
             nextLogicalStart = reader.getFilePointer();
         }
 
+        @SuppressWarnings("resource")
         public SyncSegment nextSegment(final int startPosition, final int nextSectionStartPosition) throws IOException
         {
             reader.seek(startPosition);
@@ -352,6 +353,7 @@ public class CommitLogSegmentReader implements Iterable<CommitLogSegmentReader.S
             };
         }
 
+        @SuppressWarnings("resource")
         public SyncSegment nextSegment(int startPosition, int nextSectionStartPosition) throws IOException
         {
             int totalPlainTextLength = reader.readInt();

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
index 96d89c2..88f9b37 100644
--- a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
+++ b/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java
@@ -98,7 +98,7 @@ public class LeveledCompactionStrategy extends AbstractCompactionStrategy
      * the only difference between background and maximal in LCS is that maximal is still allowed
      * (by explicit user request) even when compaction is disabled.
      */
-    @SuppressWarnings("resource")
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public AbstractCompactionTask getNextBackgroundTask(int gcBefore)
     {
         while (true)
@@ -134,7 +134,7 @@ public class LeveledCompactionStrategy extends AbstractCompactionStrategy
         }
     }
 
-    @SuppressWarnings("resource")
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public synchronized Collection<AbstractCompactionTask> getMaximalTask(int gcBefore, boolean splitOutput)
     {
         Iterable<SSTableReader> sstables = manifest.getAllSSTables();
@@ -150,6 +150,7 @@ public class LeveledCompactionStrategy extends AbstractCompactionStrategy
     }
 
     @Override
+    @SuppressWarnings("resource") // transaction is closed by AbstractCompactionTask::execute
     public AbstractCompactionTask getUserDefinedTask(Collection<SSTableReader> sstables, int gcBefore)
     {
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java b/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java
index db18859..c79cc8c 100644
--- a/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java
+++ b/src/java/org/apache/cassandra/db/rows/UnfilteredSerializer.java
@@ -184,8 +184,7 @@ public class UnfilteredSerializer
 
         if (header.isForSSTable())
         {
-            DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get();
-            try
+            try (DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get())
             {
                 serializeRowBody(row, flags, header, dob);
 
@@ -195,10 +194,6 @@ public class UnfilteredSerializer
                 out.writeUnsignedVInt(previousUnfilteredSize);
                 out.write(dob.getData(), 0, dob.getLength());
             }
-            finally
-            {
-                dob.recycle();
-            }
         }
         else
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/hints/HintsWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/hints/HintsWriter.java b/src/java/org/apache/cassandra/hints/HintsWriter.java
index a081451..dca915a 100644
--- a/src/java/org/apache/cassandra/hints/HintsWriter.java
+++ b/src/java/org/apache/cassandra/hints/HintsWriter.java
@@ -74,8 +74,7 @@ class HintsWriter implements AutoCloseable
 
         CRC32 crc = new CRC32();
 
-        DataOutputBuffer dob = null;
-        try (DataOutputBuffer ignored = dob = DataOutputBuffer.scratchBuffer.get())
+        try (DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get())
         {
             // write the descriptor
             descriptor.serialize(dob);
@@ -88,10 +87,6 @@ class HintsWriter implements AutoCloseable
             channel.close();
             throw e;
         }
-        finally
-        {
-            dob.recycle();
-        }
 
         if (descriptor.isEncrypted())
             return new EncryptedHintsWriter(directory, descriptor, file, channel, fd, crc);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java b/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
index 6a46338..9fa4e87 100644
--- a/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
+++ b/src/java/org/apache/cassandra/index/sasi/disk/PerSSTableIndexWriter.java
@@ -305,6 +305,7 @@ public class PerSSTableIndexWriter implements SSTableFlushObserver
 
                     for (Future<OnDiskIndex> f : segments)
                     {
+                        @SuppressWarnings("resource")
                         OnDiskIndex part = f.get();
                         if (part == null)
                             continue;
@@ -330,6 +331,7 @@ public class PerSSTableIndexWriter implements SSTableFlushObserver
 
                     for (int segment = 0; segment < segmentNumber; segment++)
                     {
+                        @SuppressWarnings("resource")
                         OnDiskIndex part = parts[segment];
 
                         if (part != null)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java b/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java
index 7a41b38..6e64c56 100644
--- a/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java
+++ b/src/java/org/apache/cassandra/index/sasi/disk/StaticTokenTreeBuilder.java
@@ -53,6 +53,7 @@ import com.google.common.collect.Iterators;
  *
  * See https://issues.apache.org/jira/browse/CASSANDRA-11383 for more details.
  */
+@SuppressWarnings("resource")
 public class StaticTokenTreeBuilder extends AbstractTokenTreeBuilder
 {
     private final CombinedTerm combinedTerm;

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java b/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
index c8ae0d8..fa1181f 100644
--- a/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
+++ b/src/java/org/apache/cassandra/index/sasi/plan/QueryController.java
@@ -141,6 +141,7 @@ public class QueryController
 
         for (Map.Entry<Expression, Set<SSTableIndex>> e : getView(op, expressions).entrySet())
         {
+            @SuppressWarnings("resource") // RangeIterators are closed by releaseIndexes
             RangeIterator<Long, Token> index = TermIterator.build(e.getKey(), e.getValue());
 
             if (index == null)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java b/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java
index 1f4fdc2..6110afe 100644
--- a/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java
+++ b/src/java/org/apache/cassandra/io/sstable/IndexSummaryBuilder.java
@@ -85,7 +85,6 @@ public class IndexSummaryBuilder implements AutoCloseable
         }
     }
 
-    @SuppressWarnings("resource")
     public IndexSummaryBuilder(long expectedKeys, int minIndexInterval, int samplingLevel)
     {
         this.samplingLevel = samplingLevel;
@@ -282,6 +281,7 @@ public class IndexSummaryBuilder implements AutoCloseable
      * @param partitioner the partitioner used for the index summary
      * @return a new IndexSummary
      */
+    @SuppressWarnings("resource")
     public static IndexSummary downsample(IndexSummary existing, int newSamplingLevel, int minIndexInterval, IPartitioner partitioner)
     {
         // To downsample the old index summary, we'll go through (potentially) several rounds of downsampling.

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java
index 5ffde15..28ca4c4 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableTxnWriter.java
@@ -96,7 +96,7 @@ public class SSTableTxnWriter extends Transactional.AbstractTransactional implem
         return writer.finished();
     }
 
-    @SuppressWarnings("resource") // log and writer closed during postCleanup
+    @SuppressWarnings("resource") // log and writer closed during doPostCleanup
     public static SSTableTxnWriter create(ColumnFamilyStore cfs, Descriptor descriptor, long keyCount, long repairedAt, int sstableLevel, SerializationHeader header)
     {
         LifecycleTransaction txn = LifecycleTransaction.offline(OperationType.WRITE);
@@ -105,6 +105,7 @@ public class SSTableTxnWriter extends Transactional.AbstractTransactional implem
     }
 
 
+    @SuppressWarnings("resource") // log and writer closed during doPostCleanup
     public static SSTableTxnWriter createRangeAware(ColumnFamilyStore cfs, long keyCount, long repairedAt, SSTableFormat.Type type, int sstableLevel, SerializationHeader header)
     {
         LifecycleTransaction txn = LifecycleTransaction.offline(OperationType.WRITE);
@@ -123,7 +124,7 @@ public class SSTableTxnWriter extends Transactional.AbstractTransactional implem
         return new SSTableTxnWriter(txn, writer);
     }
 
-    @SuppressWarnings("resource") // log and writer closed during postCleanup
+    @SuppressWarnings("resource") // log and writer closed during doPostCleanup
     public static SSTableTxnWriter create(CFMetaData cfm,
                                           Descriptor descriptor,
                                           long keyCount,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
index e1f795a..2e59e3b 100644
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRandomAccessReader.java
@@ -24,6 +24,7 @@ import org.apache.cassandra.utils.ChecksumType;
 
 public final class ChecksummedRandomAccessReader
 {
+    @SuppressWarnings("resource") // The Rebufferer owns both the channel and the validator and handles closing both.
     public static RandomAccessReader open(File file, File crcFile) throws IOException
     {
         ChannelProxy channel = new ChannelProxy(file);
@@ -33,7 +34,6 @@ public final class ChecksummedRandomAccessReader
                                                                                                             RandomAccessReader.open(crcFile),
                                                                                                             file.getPath());
             Rebufferer rebufferer = new ChecksummedRebufferer(channel, validator);
-            // Always own and close the channel.
             return new RandomAccessReader.RandomAccessReaderWithOwnChannel(rebufferer);
         }
         catch (Throwable t)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/io/util/ChecksummedRebufferer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/ChecksummedRebufferer.java b/src/java/org/apache/cassandra/io/util/ChecksummedRebufferer.java
index bc8695f..99091d9 100644
--- a/src/java/org/apache/cassandra/io/util/ChecksummedRebufferer.java
+++ b/src/java/org/apache/cassandra/io/util/ChecksummedRebufferer.java
@@ -27,6 +27,7 @@ class ChecksummedRebufferer extends BufferManagingRebufferer
 {
     private final DataIntegrityMetadata.ChecksumValidator validator;
 
+    @SuppressWarnings("resource") // chunk reader is closed by super::close()
     ChecksummedRebufferer(ChannelProxy channel, DataIntegrityMetadata.ChecksumValidator validator)
     {
         super(new SimpleChunkReader(channel, channel.size(), BufferType.ON_HEAP, validator.chunkSize));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
index 0d2423c..63f87ea 100644
--- a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
+++ b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java
@@ -55,7 +55,20 @@ public class DataOutputBuffer extends BufferedDataOutputStreamPlus
     {
         protected DataOutputBuffer initialValue() throws Exception
         {
-            return new DataOutputBuffer();
+            return new DataOutputBuffer()
+            {
+                public void close()
+                {
+                    if (buffer.capacity() <= MAX_RECYCLE_BUFFER_SIZE)
+                    {
+                        buffer.clear();
+                    }
+                    else
+                    {
+                        buffer = ByteBuffer.allocate(DEFAULT_INITIAL_BUFFER_SIZE);
+                    }
+                }
+            };
         }
     };
 
@@ -74,18 +87,6 @@ public class DataOutputBuffer extends BufferedDataOutputStreamPlus
         super(buffer);
     }
 
-    public void recycle()
-    {
-        if (buffer.capacity() <= MAX_RECYCLE_BUFFER_SIZE)
-        {
-            buffer.clear();
-        }
-        else
-        {
-            buffer = ByteBuffer.allocate(DEFAULT_INITIAL_BUFFER_SIZE);
-        }
-    }
-
     @Override
     public void flush() throws IOException
     {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/metrics/TableMetrics.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/metrics/TableMetrics.java b/src/java/org/apache/cassandra/metrics/TableMetrics.java
index f811873..c57f240 100644
--- a/src/java/org/apache/cassandra/metrics/TableMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/TableMetrics.java
@@ -19,15 +19,14 @@ package org.apache.cassandra.metrics;
 
 import java.nio.ByteBuffer;
 import java.util.*;
-import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.TimeUnit;
 
-import com.codahale.metrics.*;
-import com.codahale.metrics.Timer;
-import com.google.common.collect.Iterables;
 import com.google.common.collect.Maps;
 
+import com.codahale.metrics.*;
+import com.codahale.metrics.Timer;
 import org.apache.cassandra.config.Schema;
 import org.apache.cassandra.config.SchemaConstants;
 import org.apache.cassandra.db.ColumnFamilyStore;
@@ -381,8 +380,9 @@ public class TableMetrics
         {
             public Double getValue()
             {
-                return computeCompressionRatio(Iterables.concat(Iterables.transform(Keyspace.all(),
-                                                                                    p -> p.getAllSSTables(SSTableSet.CANONICAL))));
+                List<SSTableReader> sstables = new ArrayList<>();
+                Keyspace.all().forEach(ks -> sstables.addAll(ks.getAllSSTables(SSTableSet.CANONICAL)));
+                return computeCompressionRatio(sstables);
             }
         });
         percentRepaired = createTableGauge("PercentRepaired", new Gauge<Double>()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/net/MessageOut.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/net/MessageOut.java b/src/java/org/apache/cassandra/net/MessageOut.java
index a088335..4f41ee5 100644
--- a/src/java/org/apache/cassandra/net/MessageOut.java
+++ b/src/java/org/apache/cassandra/net/MessageOut.java
@@ -115,8 +115,7 @@ public class MessageOut<T>
 
         if (payload != null)
         {
-            DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get();
-            try
+            try(DataOutputBuffer dob = DataOutputBuffer.scratchBuffer.get())
             {
                 serializer.serialize(payload, dob, version);
 
@@ -124,10 +123,6 @@ public class MessageOut<T>
                 out.writeInt(size);
                 out.write(dob.getData(), 0, size);
             }
-            finally
-            {
-                dob.recycle();
-            }
         }
         else
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/05660a5a/src/java/org/apache/cassandra/security/EncryptionUtils.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/security/EncryptionUtils.java b/src/java/org/apache/cassandra/security/EncryptionUtils.java
index b262259..bb61260 100644
--- a/src/java/org/apache/cassandra/security/EncryptionUtils.java
+++ b/src/java/org/apache/cassandra/security/EncryptionUtils.java
@@ -114,6 +114,7 @@ public class EncryptionUtils
         return outputBuffer;
     }
 
+    @SuppressWarnings("resource")
     public static ByteBuffer encrypt(ByteBuffer inputBuffer, ByteBuffer outputBuffer, boolean allowBufferResize, Cipher cipher) throws IOException
     {
         Preconditions.checkNotNull(outputBuffer, "output buffer may not be null");
@@ -165,6 +166,7 @@ public class EncryptionUtils
     }
 
     // path used when decrypting commit log files
+    @SuppressWarnings("resource")
     public static ByteBuffer decrypt(FileDataInput fileDataInput, ByteBuffer outputBuffer, boolean allowBufferResize, Cipher cipher) throws IOException
     {
         return decrypt(new DataInputReadChannel(fileDataInput), outputBuffer, allowBufferResize, cipher);


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

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


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

Branch: refs/heads/trunk
Commit: b834aed5c09a1e06094c15382f3bc00dface4ab0
Parents: d34c15b 0fd07e8
Author: Sam Tunnicliffe <sa...@beobal.com>
Authored: Fri Aug 26 10:51:15 2016 +0100
Committer: Sam Tunnicliffe <sa...@beobal.com>
Committed: Fri Aug 26 10:51:15 2016 +0100

----------------------------------------------------------------------
 .../db/compaction/TimeWindowCompactionStrategy.java      |  3 +++
 src/java/org/apache/cassandra/tools/SSTableExport.java   | 11 +++++++----
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b834aed5/src/java/org/apache/cassandra/db/compaction/TimeWindowCompactionStrategy.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b834aed5/src/java/org/apache/cassandra/tools/SSTableExport.java
----------------------------------------------------------------------