Author: jbellis
Date: Thu Nov 26 14:58:10 2009
New Revision: 884571

URL: http://svn.apache.org/viewvc?rev=884571&view=rev
Log:
avoid adding CFs w/ no data to RowMutation on HH
patch by jbellis; tested by Dan Di Spaltro for CASSANDRA-585

Modified:
    incubator/cassandra/trunk/CHANGES.txt
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
    incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java

Modified: incubator/cassandra/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/CHANGES.txt?rev=884571&r1=884570&r2=884571&view=diff
==============================================================================
--- incubator/cassandra/trunk/CHANGES.txt (original)
+++ incubator/cassandra/trunk/CHANGES.txt Thu Nov 26 14:58:10 2009
@@ -3,6 +3,7 @@
  * fix possibility of partition when many nodes restart at once
    in clusters with multiple seeds (CASSANDRA-150)
  * fix NPE in get_range_slice when no data is found (CASSANDRA-578)
+ * fix potential NPE in hinted handoff (CASSANDRA-585)
 
 
 0.5.0 beta

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=884571&r1=884570&r2=884571&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 Thu Nov 26 14:58:10 2009
@@ -112,7 +112,9 @@
         RowMutation rm = new RowMutation(tableName, key);
         for (ColumnFamilyStore cfstore : 
table.getColumnFamilyStores().values())
         {
-            rm.add(cfstore.getColumnFamily(new IdentityQueryFilter(key, new 
QueryPath(cfstore.getColumnFamilyName()))));
+            ColumnFamily cf = cfstore.getColumnFamily(new 
IdentityQueryFilter(key, new QueryPath(cfstore.getColumnFamilyName())));
+            if (cf != null)
+                rm.add(cf);
         }
         Message message = rm.makeRowMutationMessage();
         WriteResponseHandler responseHandler = new WriteResponseHandler(1);

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java?rev=884571&r1=884570&r2=884571&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java 
(original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java 
Thu Nov 26 14:58:10 2009
@@ -116,6 +116,7 @@
     */
     public void add(ColumnFamily columnFamily)
     {
+        assert columnFamily != null;
         if (modifications_.containsKey(columnFamily.name()))
         {
             throw new IllegalArgumentException("ColumnFamily " + 
columnFamily.name() + " is already being modified");


Reply via email to