You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2014/02/07 03:29:31 UTC
git commit: fix NPE patch by Benedict Elliott Smith;
reviewed by jbellis for CASSANDRA-6671
Updated Branches:
refs/heads/trunk ff2a92c13 -> 5fe060074
fix NPE
patch by Benedict Elliott Smith; reviewed by jbellis for CASSANDRA-6671
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5fe06007
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5fe06007
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5fe06007
Branch: refs/heads/trunk
Commit: 5fe0600744cba01d8e238746c0bd363f2059320c
Parents: ff2a92c
Author: Jonathan Ellis <jb...@apache.org>
Authored: Thu Feb 6 20:28:35 2014 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Thu Feb 6 20:29:09 2014 -0600
----------------------------------------------------------------------
src/java/org/apache/cassandra/db/DataTracker.java | 7 ++++---
src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java | 4 ++--
2 files changed, 6 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5fe06007/src/java/org/apache/cassandra/db/DataTracker.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java
index f2aae50..d90c0ff 100644
--- a/src/java/org/apache/cassandra/db/DataTracker.java
+++ b/src/java/org/apache/cassandra/db/DataTracker.java
@@ -437,11 +437,12 @@ public class DataTracker
public int getMeanColumns()
{
long sum = 0;
- int count = 0;
+ long count = 0;
for (SSTableReader sstable : getSSTables())
{
- sum += sstable.getEstimatedColumnCount().mean();
- count++;
+ long n = sstable.getEstimatedColumnCount().count();
+ sum += sstable.getEstimatedColumnCount().mean() * n;
+ count += n;
}
return count > 0 ? (int) (sum / count) : 0;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/5fe06007/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java b/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java
index 3b4ce5f..4f3747d 100644
--- a/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java
+++ b/src/java/org/apache/cassandra/utils/concurrent/WaitQueue.java
@@ -111,7 +111,8 @@ public final class WaitQueue
*/
public void signalAll()
{
- if (!hasWaiters())
+ RegisteredSignal last = queue.peekLast();
+ if (last == null)
return;
List<Thread> woke = null;
if (logger.isTraceEnabled())
@@ -119,7 +120,6 @@ public final class WaitQueue
long start = System.nanoTime();
// we wake up only a snapshot of the queue, to avoid a race where the condition is not met and the woken thread
// immediately waits on the queue again
- RegisteredSignal last = queue.getLast();
Iterator<RegisteredSignal> iter = queue.iterator();
while (iter.hasNext())
{