Author: jbellis
Date: Thu Oct 28 10:50:46 2010
New Revision: 1028256

URL: http://svn.apache.org/viewvc?rev=1028256&view=rev
Log:
fix post-ByteBuffer hint delivery.  patch by Sylvain Lebresne; reviewed by 
jbellis for CASSANDRA-1672

Modified:
    
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java

Modified: 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java?rev=1028256&r1=1028255&r2=1028256&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 (original)
+++ 
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/HintedHandOffManager.java
 Thu Oct 28 10:50:46 2010
@@ -175,9 +175,9 @@ public class HintedHandOffManager
     private static String[] getTableAndCFNames(ByteBuffer joined)
     {
         int index;
-        index = ArrayUtils.lastIndexOf(joined.array(), 
SEPARATOR.getBytes()[0],joined.position()+joined.arrayOffset());
-        if (index < 1)
-            throw new RuntimeException("Corrupted hint name " + 
joined.toString());
+        index = ArrayUtils.lastIndexOf(joined.array(), 
SEPARATOR.getBytes()[0],joined.limit()+joined.arrayOffset());
+        if (index == -1 || index < (joined.position() + joined.arrayOffset() + 
1))
+            throw new RuntimeException("Corrupted hint name " + new 
String(joined.array(), joined.arrayOffset() + joined.position(), 
joined.remaining()));
         String[] parts = new String[2];
         parts[0] = new String(ArrayUtils.subarray(joined.array(), 
joined.position()+joined.arrayOffset(), index));
         parts[1] = new String(ArrayUtils.subarray(joined.array(), index+1, 
joined.limit()+joined.arrayOffset()));


Reply via email to