Author: jbellis Date: Tue Nov 16 15:37:21 2010 New Revision: 1035659 URL: http://svn.apache.org/viewvc?rev=1035659&view=rev Log: fix LexicalUUID.getUUID use of ByteBuffer, and inline into UUIDGen.getUUID patch by jbellis
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/UUIDGen.java cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/DefsTest.java cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/utils/UUIDTests.java Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/DefinitionsUpdateResponseVerbHandler.java Tue Nov 16 15:37:21 2010 @@ -31,7 +31,6 @@ import org.apache.cassandra.utils.Wrappe import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.ByteArrayInputStream; import java.io.IOError; import java.io.IOException; import java.util.Collection; @@ -51,7 +50,7 @@ public class DefinitionsUpdateResponseVe Collection<Column> cols = MigrationManager.makeColumns(message); for (Column col : cols) { - final UUID version = UUIDGen.makeType1UUID(col.name()); + final UUID version = UUIDGen.getUUID(col.name()); if (version.timestamp() > DatabaseDescriptor.getDefsVersion().timestamp()) { final Migration m = Migration.deserialize(col.value()); Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/LexicalUUIDType.java Tue Nov 16 15:37:21 2010 @@ -21,10 +21,9 @@ package org.apache.cassandra.db.marshal; */ -import java.util.UUID; import java.nio.ByteBuffer; -import org.apache.cassandra.utils.ByteBufferUtil; +import org.apache.cassandra.utils.UUIDGen; public class LexicalUUIDType extends AbstractType { @@ -32,11 +31,6 @@ public class LexicalUUIDType extends Abs LexicalUUIDType() {} // singleton - static UUID getUUID(ByteBuffer bytes) - { - return new UUID(bytes.getLong(bytes.position()+bytes.arrayOffset()), bytes.getLong(bytes.position()+bytes.arrayOffset())); - } - public int compare(ByteBuffer o1, ByteBuffer o2) { if (o1.remaining() == 0) @@ -48,7 +42,7 @@ public class LexicalUUIDType extends Abs return 1; } - return getUUID(o1).compareTo(getUUID(o2)); + return UUIDGen.getUUID(o1).compareTo(UUIDGen.getUUID(o2)); } public String getString(ByteBuffer bytes) @@ -61,6 +55,6 @@ public class LexicalUUIDType extends Abs { throw new MarshalException("UUIDs must be exactly 16 bytes"); } - return getUUID(bytes).toString(); + return UUIDGen.getUUID(bytes).toString(); } } Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/marshal/TimeUUIDType.java Tue Nov 16 15:37:21 2010 @@ -24,7 +24,7 @@ package org.apache.cassandra.db.marshal; import java.nio.ByteBuffer; import java.util.UUID; -import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.UUIDGen; public class TimeUUIDType extends AbstractType { @@ -80,7 +80,7 @@ public class TimeUUIDType extends Abstra { throw new MarshalException("UUIDs must be exactly 16 bytes"); } - UUID uuid = LexicalUUIDType.getUUID(bytes); + UUID uuid = UUIDGen.getUUID(bytes); if (uuid.version() != 1) { throw new MarshalException("TimeUUID only makes sense with version 1 UUIDs"); Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/migration/Migration.java Tue Nov 16 15:37:21 2010 @@ -179,7 +179,7 @@ public abstract class Migration if (cf == null || cf.getColumnNames().size() == 0) return null; else - return UUIDGen.makeType1UUID(cf.getColumn(LAST_MIGRATION_KEY).value()); + return UUIDGen.getUUID(cf.getColumn(LAST_MIGRATION_KEY).value()); } /** keep in mind that applyLive might happen on another machine */ @@ -277,8 +277,8 @@ public abstract class Migration } // super inflate - migration.lastVersion = UUIDGen.makeType1UUID(ByteBuffer.wrap(mi.old_version.bytes())); - migration.newVersion = UUIDGen.makeType1UUID(ByteBuffer.wrap(mi.new_version.bytes())); + migration.lastVersion = UUIDGen.getUUID(ByteBuffer.wrap(mi.old_version.bytes())); + migration.newVersion = UUIDGen.getUUID(ByteBuffer.wrap(mi.new_version.bytes())); try { migration.rm = RowMutation.serializer().deserialize(SerDeUtils.createDataInputStream(mi.row_mutation)); Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/UUIDGen.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/UUIDGen.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/UUIDGen.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/UUIDGen.java Tue Nov 16 15:37:21 2010 @@ -21,8 +21,6 @@ package org.apache.cassandra.utils; */ -import java.io.DataInputStream; -import java.io.IOException; import java.net.InetAddress; import java.nio.ByteBuffer; import java.security.MessageDigest; @@ -47,7 +45,7 @@ public class UUIDGen byte[] md5 = digest.digest(); byte[] fauxMac = new byte[6]; System.arraycopy(md5, 0, fauxMac, 0, Math.min(md5.length, fauxMac.length)); - return makeType1UUID(ByteBuffer.wrap(UUIDGenerator.getInstance().generateTimeBasedUUID(new EthernetAddress(fauxMac)).toByteArray())); + return getUUID(ByteBuffer.wrap(UUIDGenerator.getInstance().generateTimeBasedUUID(new EthernetAddress(fauxMac)).toByteArray())); } catch (NoSuchAlgorithmException ex) { @@ -55,24 +53,10 @@ public class UUIDGen } } - public static UUID makeType1UUID(DataInputStream in) throws IOException - { - byte[] b = new byte[16]; - in.readFully(b); - return makeType1UUID(ByteBuffer.wrap(b)); - } - /** creates a type 1 uuid from raw bytes. */ - public static UUID makeType1UUID(ByteBuffer raw) + public static UUID getUUID(ByteBuffer raw) { - long most = 0; - long least = 0; - assert raw.remaining() == 16; - for (int i = 0; i < 8; i++) - most = (most << 8) | (raw.array()[raw.position()+raw.arrayOffset() + i] & 0xff); - for (int i =8 ; i < 16; i++) - least = (least << 8) | (raw.array()[raw.position()+raw.arrayOffset() + i] & 0xff); - return new UUID(most, least); + return new UUID(raw.getLong(raw.position() + raw.arrayOffset()), raw.getLong(raw.position() + raw.arrayOffset() + 8)); } /** decomposes a uuid into raw bytes. */ Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/DefsTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/DefsTest.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/DefsTest.java (original) +++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/DefsTest.java Tue Nov 16 15:37:21 2010 @@ -24,7 +24,6 @@ import java.io.File; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -159,7 +158,7 @@ public class DefsTest extends CleanupHel int i = 0; for (IColumn col : serializedMigrations) { - UUID version = UUIDGen.makeType1UUID(col.name()); + UUID version = UUIDGen.getUUID(col.name()); reconstituded[i] = Migration.deserialize(col.value()); assert version.equals(reconstituded[i].getVersion()); i++; Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java (original) +++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/db/marshal/TimeUUIDTypeTest.java Tue Nov 16 15:37:21 2010 @@ -25,9 +25,7 @@ import java.util.Random; import org.junit.Test; import static org.junit.Assert.assertEquals; -import org.apache.cassandra.CleanupHelper; -import org.apache.cassandra.db.marshal.TimeUUIDType; - +import org.apache.cassandra.utils.UUIDGen; import org.safehaus.uuid.UUID; import org.safehaus.uuid.UUIDGenerator; @@ -85,8 +83,8 @@ public class TimeUUIDTypeTest Arrays.sort(uuids, timeUUIDType); for (int i = 1; i < uuids.length; i++) { - long i0 = LexicalUUIDType.getUUID(uuids[i - 1]).timestamp(); - long i1 = LexicalUUIDType.getUUID(uuids[i]).timestamp(); + long i0 = UUIDGen.getUUID(uuids[i - 1]).timestamp(); + long i1 = UUIDGen.getUUID(uuids[i]).timestamp(); assert i0 <= i1; } } Modified: cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/utils/UUIDTests.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/utils/UUIDTests.java?rev=1035659&r1=1035658&r2=1035659&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/utils/UUIDTests.java (original) +++ cassandra/branches/cassandra-0.7/test/unit/org/apache/cassandra/utils/UUIDTests.java Tue Nov 16 15:37:21 2010 @@ -55,7 +55,7 @@ public class UUIDTests { UUID a = UUIDGen.makeType1UUIDFromHost(InetAddress.getByName("127.0.0.1")); byte[] decomposed = UUIDGen.decompose(a); - UUID b = UUIDGen.makeType1UUID(ByteBuffer.wrap(decomposed)); + UUID b = UUIDGen.getUUID(ByteBuffer.wrap(decomposed)); assert a.equals(b); } @@ -67,7 +67,7 @@ public class UUIDTests ByteBuffer second = ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUIDFromHost(InetAddress.getByName("127.0.0.1")))); assert comp.compare(first, second) < 0; assert comp.compare(second, first) > 0; - ByteBuffer sameAsFirst = ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.makeType1UUID(first))); + ByteBuffer sameAsFirst = ByteBuffer.wrap(UUIDGen.decompose(UUIDGen.getUUID(first))); assert comp.compare(first, sameAsFirst) == 0; }