You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by gd...@apache.org on 2011/03/08 23:11:42 UTC

svn commit: r1079569 - in /cassandra/trunk/src/java/org/apache/cassandra/db/marshal: AbstractType.java IntegerType.java LexicalUUIDType.java LongType.java TimeUUIDType.java

Author: gdusbabek
Date: Tue Mar  8 22:11:41 2011
New Revision: 1079569

URL: http://svn.apache.org/viewvc?rev=1079569&view=rev
Log:
AbstractType.fromsString throws MarshalException. patch by eevans, reviewed by gdusbabek. CASSANDRA-2262

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
    cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java?rev=1079569&r1=1079568&r2=1079569&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/AbstractType.java Tue Mar  8 22:11:41 2011
@@ -99,7 +99,7 @@ public abstract class AbstractType<T> im
 
     /** get a byte representation of the given string.
      *  defaults to unsupportedoperation so people deploying custom Types can update at their leisure. */
-    public ByteBuffer fromString(String source)
+    public ByteBuffer fromString(String source) throws MarshalException
     {
         throw new UnsupportedOperationException();
     }

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java?rev=1079569&r1=1079568&r2=1079569&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/IntegerType.java Tue Mar  8 22:11:41 2011
@@ -130,7 +130,7 @@ public final class IntegerType extends A
         return new java.math.BigInteger(TBaseHelper.byteBufferToByteArray(bytes)).toString(10);
     }
 
-    public ByteBuffer fromString(String source)
+    public ByteBuffer fromString(String source) throws MarshalException
     {
         BigInteger integerType;
 
@@ -140,7 +140,7 @@ public final class IntegerType extends A
         }
         catch (Exception e)
         {
-            throw new RuntimeException("'" + source + "' could not be translated into an IntegerType.");
+            throw new MarshalException(String.format("unable to make int from '%s'", source), e);
         }
 
         return ByteBuffer.wrap(integerType.toByteArray());

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=1079569&r1=1079568&r2=1079569&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java Tue Mar  8 22:11:41 2011
@@ -64,9 +64,16 @@ public class LexicalUUIDType extends Abs
         return UUIDGen.getUUID(bytes).toString();
     }
 
-    public ByteBuffer fromString(String source)
+    public ByteBuffer fromString(String source) throws MarshalException
     {
-        return ByteBuffer.wrap(UUIDGen.decompose(UUID.fromString(source)));
+        try
+        {
+            return ByteBuffer.wrap(UUIDGen.decompose(UUID.fromString(source)));
+        }
+        catch (IllegalArgumentException e)
+        {
+            throw new MarshalException(String.format("unable to make UUID from '%s'", source), e);
+        }
     }
 
     public void validate(ByteBuffer bytes) throws MarshalException

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java?rev=1079569&r1=1079568&r2=1079569&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/LongType.java Tue Mar  8 22:11:41 2011
@@ -70,7 +70,7 @@ public class LongType extends AbstractTy
         return String.valueOf(bytes.getLong(bytes.position()));
     }
 
-    public ByteBuffer fromString(String source)
+    public ByteBuffer fromString(String source) throws MarshalException
     {
         long longType;
 
@@ -80,7 +80,7 @@ public class LongType extends AbstractTy
         }
         catch (Exception e)
         {
-            throw new RuntimeException("'" + source + "' could not be translated into a LongType.");
+            throw new MarshalException(String.format("unable to make long from '%s'", source), e);
         }
 
         return ByteBufferUtil.bytes(longType);

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=1079569&r1=1079568&r2=1079569&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java Tue Mar  8 22:11:41 2011
@@ -100,12 +100,20 @@ public class TimeUUIDType extends Abstra
         return uuid.toString();
     }
 
-    public ByteBuffer fromString(String source)
+    public ByteBuffer fromString(String source) throws MarshalException
     {
-        UUID uuid = UUID.fromString(source);
+        UUID uuid = null;
+        try
+        {
+            uuid = UUID.fromString(source);
+        }
+        catch (IllegalArgumentException e)
+        {
+            throw new MarshalException(String.format("unable to make UUID from '%s'", source), e);
+        }
 
         if (uuid.version() != 1)
-            throw new IllegalArgumentException("TimeUUID supports only version 1 UUIDs");
+            throw new MarshalException("TimeUUID supports only version 1 UUIDs");
 
         return ByteBuffer.wrap(UUIDGen.decompose(uuid));
     }