You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2012/01/29 17:43:27 UTC

git commit: fix #3665 breakage (1.0 classes can't decompose())

Updated Branches:
  refs/heads/cassandra-1.0 119fa0503 -> 43003f06a


fix #3665 breakage (1.0 classes can't decompose())

(which I knew how this happened)

Patch by eevans for CASSANDRA-3665


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/43003f06
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/43003f06
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/43003f06

Branch: refs/heads/cassandra-1.0
Commit: 43003f06a37c93ab8fdc44f9b31decafa039972d
Parents: 119fa05
Author: Eric Evans <ee...@apache.org>
Authored: Sun Jan 29 10:12:34 2012 -0600
Committer: Eric Evans <ee...@apache.org>
Committed: Sun Jan 29 10:42:48 2012 -0600

----------------------------------------------------------------------
 .../apache/cassandra/cql/jdbc/ClientUtilsTest.java |   53 ++++++++++----
 1 files changed, 38 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/43003f06/test/unit/org/apache/cassandra/cql/jdbc/ClientUtilsTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cql/jdbc/ClientUtilsTest.java b/test/unit/org/apache/cassandra/cql/jdbc/ClientUtilsTest.java
index c98b1d9..7224029 100644
--- a/test/unit/org/apache/cassandra/cql/jdbc/ClientUtilsTest.java
+++ b/test/unit/org/apache/cassandra/cql/jdbc/ClientUtilsTest.java
@@ -5,9 +5,10 @@ import java.math.BigInteger;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
-import java.sql.Date;
+import java.util.Date;
 import java.util.UUID;
 
+import org.apache.cassandra.utils.ByteBufferUtil;
 import org.apache.cassandra.utils.UUIDGen;
 import org.junit.Test;
 
@@ -17,23 +18,23 @@ public class ClientUtilsTest
     @Test
     public void test() throws UnknownHostException
     {
-        JdbcAscii.instance.compose(JdbcAscii.instance.decompose("string"));
-        JdbcBoolean.instance.compose(JdbcBoolean.instance.decompose(true));
-        JdbcBytes.instance.compose(JdbcBytes.instance.decompose(ByteBuffer.wrap("string".getBytes())));
-        JdbcDate.instance.compose(JdbcDate.instance.decompose(new Date(System.currentTimeMillis())));
-        JdbcDecimal.instance.compose(JdbcDecimal.instance.decompose(new BigDecimal(1)));
-        JdbcDouble.instance.compose(JdbcDouble.instance.decompose(new Double(1.0d)));
-        JdbcFloat.instance.compose(JdbcFloat.instance.decompose(new Float(1.0f)));
-        JdbcInt32.instance.compose(JdbcInt32.instance.decompose(1));
-        JdbcInteger.instance.compose(JdbcInteger.instance.decompose(new BigInteger("1")));
-        JdbcLong.instance.compose(JdbcLong.instance.decompose(1L));
-        JdbcUTF8.instance.compose(JdbcUTF8.instance.decompose("string"));
+        JdbcAscii.instance.compose(wr("string"));
+        JdbcBoolean.instance.compose(wr("false"));
+        JdbcBytes.instance.compose(wr("string"));
+        JdbcDate.instance.compose(ByteBufferUtil.bytes((new Date(System.currentTimeMillis())).getTime()));
+        JdbcDecimal.instance.compose(decomposeBigDecimal(new BigDecimal(1)));
+        JdbcDouble.instance.compose(ByteBufferUtil.bytes(1.0d));
+        JdbcFloat.instance.compose(ByteBufferUtil.bytes(1.0f));
+        JdbcInt32.instance.compose(ByteBufferUtil.bytes(1));
+        JdbcInteger.instance.compose(ByteBuffer.wrap((new BigInteger("1")).toByteArray()));
+        JdbcLong.instance.compose(ByteBufferUtil.bytes(1L));
+        JdbcUTF8.instance.compose(wr("string"));
 
         // UUIDGen
         UUID uuid = UUIDGen.makeType1UUIDFromHost(InetAddress.getLocalHost());
-        JdbcTimeUUID.instance.compose(JdbcTimeUUID.instance.decompose(uuid));
-        JdbcUUID.instance.compose(JdbcUUID.instance.decompose(uuid));
-        JdbcLexicalUUID.instance.compose(JdbcLexicalUUID.instance.decompose(uuid));
+        JdbcUUID.instance.compose(ByteBuffer.wrap(UUIDGen.decompose(uuid)));
+        JdbcTimeUUID.instance.compose(ByteBuffer.wrap(UUIDGen.decompose(uuid)));
+        JdbcLexicalUUID.instance.compose(ByteBuffer.wrap(UUIDGen.decompose(uuid)));
 
         // Raise a MarshalException
         try
@@ -45,4 +46,26 @@ public class ClientUtilsTest
             // Success
         }
     }
+
+    /* Copypasta from DecimalType */
+    private static ByteBuffer decomposeBigDecimal(BigDecimal value)
+    {
+        if (value == null) return ByteBufferUtil.EMPTY_BYTE_BUFFER;
+
+        BigInteger bi = value.unscaledValue();
+        Integer scale = value.scale();
+        byte[] bibytes = bi.toByteArray();
+        byte[] sbytes = ByteBufferUtil.bytes(scale).array();
+        byte[] bytes = new byte[bi.toByteArray().length+4];
+
+        for (int i = 0 ; i < 4 ; i++) bytes[i] = sbytes[i];
+        for (int i = 4 ; i < bibytes.length+4 ; i++) bytes[i] = bibytes[i-4];
+
+        return ByteBuffer.wrap(bytes);
+    }
+
+    private static ByteBuffer wr(String value)
+    {
+        return ByteBuffer.wrap(value.getBytes());
+    }
 }