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 2012/06/09 17:38:15 UTC

[3/3] git commit: fix NPE in compactionstats patch by jbellis; reviewed by xedin for CASSANDRA-4318

fix NPE in compactionstats
patch by jbellis; reviewed by xedin for CASSANDRA-4318


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

Branch: refs/heads/cassandra-1.1
Commit: 6352edb3fe0a3a678e83ba11002e4cdde2cac468
Parents: 8fd3f49
Author: Jonathan Ellis <jb...@apache.org>
Authored: Sat Jun 9 10:31:57 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Sat Jun 9 10:31:57 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/cache/AutoSavingCache.java    |    6 ++++-
 .../db/compaction/AbstractCompactionIterable.java  |    2 +-
 .../db/compaction/CompactionController.java        |    2 +-
 .../cassandra/db/compaction/CompactionInfo.java    |   17 +++++---------
 .../cassandra/db/compaction/CompactionManager.java |    4 +-
 .../cassandra/db/index/SecondaryIndexBuilder.java  |    2 +-
 7 files changed, 17 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 71ab07d..ed9650c 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.1.2
+ * fix NPE in compactionstats (CASSANDRA-4318)
  * enforce 1m min keycache for auto (CASSANDRA-4306)
  * Have DeletedColumn.isMFD always return true (CASSANDRA-4307)
  * ex msg for cql3 order by constraints says primary filter can be an IN clause 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/cache/AutoSavingCache.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cache/AutoSavingCache.java b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
index 659e9ec..7eed2a0 100644
--- a/src/java/org/apache/cassandra/cache/AutoSavingCache.java
+++ b/src/java/org/apache/cassandra/cache/AutoSavingCache.java
@@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.db.compaction.CompactionInfo;
 import org.apache.cassandra.db.compaction.CompactionManager;
@@ -192,7 +193,10 @@ public class AutoSavingCache<K extends CacheKey, V> extends InstrumentingCache<K
             else
                 type = OperationType.UNKNOWN;
 
-            info = new CompactionInfo(type, 0, estimatedTotalBytes);
+            info = new CompactionInfo(new CFMetaData("system", cacheType.toString(), null, null, null),
+                                      type,
+                                      0,
+                                      estimatedTotalBytes);
         }
 
         public CompactionInfo getCompactionInfo()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java
index 1eb4e9b..db3e1b3 100644
--- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java
+++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java
@@ -53,7 +53,7 @@ public abstract class AbstractCompactionIterable extends CompactionInfo.Holder i
 
     public CompactionInfo getCompactionInfo()
     {
-        return new CompactionInfo(this.hashCode(),
+        return new CompactionInfo(controller.cfs.metadata,
                                   type,
                                   bytesRead,
                                   totalBytes);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/db/compaction/CompactionController.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionController.java b/src/java/org/apache/cassandra/db/compaction/CompactionController.java
index 9eaefe7..8ff871e 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionController.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionController.java
@@ -42,7 +42,7 @@ public class CompactionController
 {
     private static Logger logger = LoggerFactory.getLogger(CompactionController.class);
 
-    private final ColumnFamilyStore cfs;
+    public final ColumnFamilyStore cfs;
     private final boolean deserializeRequired;
     private final IntervalTree<SSTableReader> overlappingTree;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java b/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
index 17d098b..fdb363e 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionInfo.java
@@ -34,38 +34,33 @@ public final class CompactionInfo implements Serializable
     private final long bytesComplete;
     private final long totalBytes;
 
-    public CompactionInfo(OperationType tasktype, long bytesComplete, long totalBytes)
-    {
-        this(null, tasktype, bytesComplete, totalBytes);
-    }
-
-    public CompactionInfo(Integer id, OperationType tasktype, long bytesComplete, long totalBytes)
+    public CompactionInfo(CFMetaData cfm, OperationType tasktype, long bytesComplete, long totalBytes)
     {
         this.tasktype = tasktype;
         this.bytesComplete = bytesComplete;
         this.totalBytes = totalBytes;
-        this.cfm = id == null ? null : Schema.instance.getCFMetaData(id);
+        this.cfm = cfm;
     }
 
     /** @return A copy of this CompactionInfo with updated progress. */
     public CompactionInfo forProgress(long bytesComplete, long totalBytes)
     {
-        return new CompactionInfo(cfm == null ? null : cfm.cfId, tasktype, bytesComplete, totalBytes);
+        return new CompactionInfo(cfm, tasktype, bytesComplete, totalBytes);
     }
 
     public Integer getId()
     {
-        return cfm == null ? null : cfm.cfId;
+        return cfm.cfId;
     }
 
     public String getKeyspace()
     {
-        return cfm == null ? null : cfm.ksName;
+        return cfm.ksName;
     }
 
     public String getColumnFamily()
     {
-        return cfm == null ? null : cfm.cfName;
+        return cfm.cfName;
     }
 
     public CFMetaData getCFMetaData()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 38264f5..46aaa7d 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1204,7 +1204,7 @@ public class CompactionManager implements CompactionManagerMBean
         {
             try
             {
-                return new CompactionInfo(this.hashCode(),
+                return new CompactionInfo(sstable.metadata,
                                           OperationType.CLEANUP,
                                           scanner.getCurrentPosition(),
                                           scanner.getLengthInBytes());
@@ -1230,7 +1230,7 @@ public class CompactionManager implements CompactionManagerMBean
         {
             try
             {
-                return new CompactionInfo(this.hashCode(),
+                return new CompactionInfo(sstable.metadata,
                                           OperationType.SCRUB,
                                           dataFile.getFilePointer(),
                                           dataFile.length());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6352edb3/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java
index 39f2c2d..f93be04 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java
@@ -47,7 +47,7 @@ public class SecondaryIndexBuilder extends CompactionInfo.Holder
 
     public CompactionInfo getCompactionInfo()
     {
-        return new CompactionInfo(this.hashCode(),
+        return new CompactionInfo(cfs.metadata,
                                   OperationType.INDEX_BUILD,
                                   iter.getBytesRead(),
                                   iter.getTotalBytes());