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()));