You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2011/06/28 09:53:09 UTC
svn commit: r1140470 - in /cassandra/branches/cassandra-0.8: CHANGES.txt
src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
src/java/org/apache/cassandra/service/RowRepairResolver.java
Author: slebresne
Date: Tue Jun 28 07:53:08 2011
New Revision: 1140470
URL: http://svn.apache.org/viewvc?rev=1140470&view=rev
Log:
Fix potential NPE in range slice read repair
patch by slebresne; reviewed by jbellis for CASSANDRA-2823
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1140470&r1=1140469&r2=1140470&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Jun 28 07:53:08 2011
@@ -7,6 +7,8 @@
* add ability to return "endpoints" to nodetool (CASSANDRA-2776)
* Add support for multiple (comma-delimited) coordinator addresses
to ColumnFamilyInputFormat (CASSANDRA-2807)
+ * fix potential NPE while scheduling read repair for range slice
+ (CASSANDRA-2823)
0.8.1
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java?rev=1140470&r1=1140469&r2=1140470&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java Tue Jun 28 07:53:08 2011
@@ -117,7 +117,9 @@ public class RangeSliceResponseResolver
}
}
}
- RowRepairResolver.maybeScheduleRepairs(resolved, table, key, versions, versionSources);
+ // resolved can be null even if versions doesn't have all nulls because of the call to removeDeleted in resolveSuperSet
+ if (resolved != null)
+ RowRepairResolver.maybeScheduleRepairs(resolved, table, key, versions, versionSources);
versions.clear();
versionSources.clear();
return new Row(key, resolved);
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java?rev=1140470&r1=1140469&r2=1140470&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/RowRepairResolver.java Tue Jun 28 07:53:08 2011
@@ -80,7 +80,9 @@ public class RowRepairResolver extends A
resolved = resolveSuperset(versions);
if (logger.isDebugEnabled())
logger.debug("versions merged");
- maybeScheduleRepairs(resolved, table, key, versions, endpoints);
+ // resolved can be null even if versions doesn't have all nulls because of the call to removeDeleted in resolveSuperSet
+ if (resolved != null)
+ maybeScheduleRepairs(resolved, table, key, versions, endpoints);
}
else
{