Repository: cassandra
Updated Branches:
  refs/heads/trunk c84408109 -> 0d815af68


Fix rare potential NPE in HHOM page size calculation

patch by Aleksey Yeschenko; reviewed by Jonathan Ellis for
CASSANDRA-7354


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

Branch: refs/heads/trunk
Commit: 1e49abaf9cbc0833146f30c32ab574cd892aa0a4
Parents: dc73f21
Author: Aleksey Yeschenko <alek...@apache.org>
Authored: Thu Jun 5 18:50:04 2014 +0300
Committer: Aleksey Yeschenko <alek...@apache.org>
Committed: Fri Jun 6 00:54:49 2014 +0300

----------------------------------------------------------------------
 CHANGES.txt                                      |  1 +
 .../cassandra/db/HintedHandOffManager.java       | 19 +++++++++----------
 2 files changed, 10 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/1e49abaf/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 40eee1b..a6ea188 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2.17
+ * Fix rare potential NPE in HHOM page size calculation (CASSANDRA-7354)
  * Fix handling of empty counter replication mutations (CASSANDRA-7144)
  * Use LOCAL_ONE for non-superuser auth queries (CASSANDRA-7328)
  * Set keepalive on MessagingService connections (CASSANDRA-7170)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/1e49abaf/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java 
b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index a7a3e06..58702df 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -431,20 +431,19 @@ public class HintedHandOffManager implements 
HintedHandOffManagerMBean
         }
     }
 
+    // read less columns (mutations) per page if they are very large
     private int calculatePageSize()
     {
-        // read less columns (mutations) per page if they are very large
         int meanColumnCount = hintStore.getMeanColumns();
-        if (meanColumnCount > 0)
-        {
-            int averageColumnSize = (int) (hintStore.getMeanRowSize() / 
meanColumnCount);
-            // page size of 1 does not allow actual paging b/c of >= behavior 
on startColumn
-            return Math.max(2, Math.min(PAGE_SIZE, 
DatabaseDescriptor.getInMemoryCompactionLimit() / averageColumnSize));
-        }
-        else
-        {
+        if (meanColumnCount <= 0)
             return PAGE_SIZE;
-        }
+
+        int averageColumnSize = (int) (hintStore.getMeanRowSize() / 
meanColumnCount);
+        if (averageColumnSize <= 0)
+            return PAGE_SIZE;
+
+        // page size of 1 does not allow actual paging b/c of >= behavior on 
startColumn
+        return Math.max(2, Math.min(PAGE_SIZE, 
DatabaseDescriptor.getInMemoryCompactionLimit() / averageColumnSize));
     }
 
     /**

Reply via email to