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 2010/07/01 03:32:26 UTC
svn commit: r959485 -
/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
Author: jbellis
Date: Thu Jul 1 01:32:26 2010
New Revision: 959485
URL: http://svn.apache.org/viewvc?rev=959485&view=rev
Log:
use lexical comparison for UTF8Type. patch by Nick Bailey; reviewed by jbellis for CASSANDRA-1232
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java?rev=959485&r1=959484&r2=959485&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/UTF8Type.java Thu Jul 1 01:32:26 2010
@@ -20,36 +20,27 @@ package org.apache.cassandra.db.marshal;
*
*/
+import java.io.IOException;
+import java.nio.charset.CharacterCodingException;
+import java.util.Arrays;
-import java.io.UnsupportedEncodingException;
+import org.apache.cassandra.utils.FBUtilities;
-public class UTF8Type extends AbstractType
+public class UTF8Type extends BytesType
{
public static final UTF8Type instance = new UTF8Type();
UTF8Type() {} // singleton
- public int compare(byte[] o1, byte[] o2)
- {
- try
- {
- return new String(o1, "UTF-8").compareTo(new String(o2, "UTF-8"));
- }
- catch (UnsupportedEncodingException e)
- {
- throw new RuntimeException(e);
- }
- }
-
public String getString(byte[] bytes)
{
try
{
- return new String(bytes, "UTF-8");
+ return FBUtilities.decodeToUTF8(bytes);
}
- catch (UnsupportedEncodingException e)
+ catch (CharacterCodingException e)
{
- throw new RuntimeException(e);
+ throw new MarshalException("invalid UTF8 bytes " + Arrays.toString(bytes));
}
}
}