You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2014/05/27 17:58:14 UTC
svn commit: r1597811 - in /jena/trunk/jena-core/src:
main/java/com/hp/hpl/jena/shared/uuid/ test/java/com/hp/hpl/jena/shared/uuid/
Author: andy
Date: Tue May 27 15:58:13 2014
New Revision: 1597811
URL: http://svn.apache.org/r1597811
Log:
Fix for UUID V1 generation - signed bytes leaking bits to high end of the node see number.
Added:
jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_JRE.java
- copied, changed from r1597729, jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_J5.java
Removed:
jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_J5.java
Modified:
jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/JenaUUID.java
jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/UUID_V1_Gen.java
jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/UUIDTestSuite.java
Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/JenaUUID.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/JenaUUID.java?rev=1597811&r1=1597810&r2=1597811&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/JenaUUID.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/JenaUUID.java Tue May 27 15:58:13 2014
@@ -38,10 +38,6 @@ import org.slf4j.LoggerFactory ;
public abstract class JenaUUID
{
-
- // Java6: get MAC address:
- // http://www.kodejava.org/examples/250.html
-
static final int HEX = 16 ;
static final int Var_NCS = 0 ;
static final int Var_Std = 2 ; // Same as DCE
Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/UUID_V1_Gen.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/UUID_V1_Gen.java?rev=1597811&r1=1597810&r2=1597811&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/UUID_V1_Gen.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/shared/uuid/UUID_V1_Gen.java Tue May 27 15:58:13 2014
@@ -193,10 +193,8 @@ public class UUID_V1_Gen implements UUID
// See LibUUID.toString(JenaUUID)
// The code here works on the specific fields and is kept for reference only.
private static String unparse(UUID_V1 uuid) {
- int _variant = uuid.getVariant() ; // (int)((UUID_V1_Gen.maskVariant &
- // uuid.bitsLower)>>>62) ;
- int _version = uuid.getVersion() ; // (int)((UUID_V1_Gen.maskVersion &
- // uuid.bitsUpper)>>>12) ;
+ int _variant = uuid.getVariant() ;
+ int _version = uuid.getVersion() ;
long timeHigh = uuid.getTimeHigh() ;
long timeMid = uuid.getTimeMid() ;
@@ -223,7 +221,7 @@ public class UUID_V1_Gen implements UUID
}
// Testing.
- public static UUID_V1 generate(int version, int variant, long timestamp, long clockSeq, long node) {
+ /*package*/ static UUID_V1 generate(int version, int variant, long timestamp, long clockSeq, long node) {
long timeHigh = timestamp >>> (60 - 12) ; // Top 12 bits of 60 bit number.
long timeMid = (timestamp >>> 32) & 0xFFFFL ; // 16 bits, bits 32-47
long timeLow = timestamp & 0xFFFFFFFFL ; // Low 32 bits
@@ -232,8 +230,8 @@ public class UUID_V1_Gen implements UUID
}
private static UUID_V1 generate(int version, int variant, long timeHigh, long timeMid, long timeLow, long clockSeq, long node) {
- long mostSigBits = (timeLow << 32) | (timeMid << 16) | (versionHere << 12) | timeHigh ;
- long leastSigBits = (long)variantHere << 62 | (clockSeq << 48) | node ;
+ long mostSigBits = (timeLow << 32) | (timeMid << 16) | (version << 12) | timeHigh ;
+ long leastSigBits = (long)variant << 62 | (clockSeq << 48) | node ;
return new UUID_V1(mostSigBits, leastSigBits) ;
}
@@ -296,13 +294,11 @@ public class UUID_V1_Gen implements UUID
if ( hwAddr != null && hwAddr.length > 4 ) { // Length is a sanity check.
node = 0 ;
for ( byte bv : hwAddr ) {
- node = node << 8 | bv ;
+ node = (node << 8) | (bv&0xFF) ;
}
return ;
}
- } catch (Exception ex) {
-
- } // Failed in some way. Fallback.
+ } catch (Exception ex) { } // Failed in some way. Fallback.
Copied: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_JRE.java (from r1597729, jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_J5.java)
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_JRE.java?p2=jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_JRE.java&p1=jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_J5.java&r1=1597729&r2=1597811&rev=1597811&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_J5.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/TestUUID_JRE.java Tue May 27 15:58:13 2014
@@ -22,12 +22,9 @@ import java.util.UUID ;
import junit.framework.TestCase ;
-/** Java5-dependent tests.
- * java.util.UUID only appeared in Java5
- */
+/** Test comparing Java JRE UUID and Jena's for parsing existing UUIDs. */
-
-public class TestUUID_J5 extends TestCase
+public class TestUUID_JRE extends TestCase
{
UUID_V1_Gen factory1 = new UUID_V1_Gen() ;
UUID_V4_Gen factory4 = new UUID_V4_Gen() ;
Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/UUIDTestSuite.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/UUIDTestSuite.java?rev=1597811&r1=1597810&r2=1597811&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/UUIDTestSuite.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/shared/uuid/UUIDTestSuite.java Tue May 27 15:58:13 2014
@@ -28,7 +28,10 @@ public class UUIDTestSuite extends Test
private UUIDTestSuite()
{
+ // The OS kernel can run out of entropy in which case these tests get very slow
+ // These tests may not be in the test suite.
addTestSuite(TestBits.class) ;
addTestSuite(TestUUID.class) ;
+ addTestSuite(TestUUID_JRE.class) ;
}
}