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;
}