public UUIDGenerator(byte[] nodeAddress) { Random random = new SecureRandom(); clockSequence = (short)random.nextInt(16384); updateClockSequence(); if (nodeAddress == null) { try { nodeAddress = getHardwareAddress(); } catch (Throwable ex) { //$FALL-THROUGH$ } if (nodeAddress == null || nodeAddress.length != NODE_ADDRESS_BYTES) { // Generate a 48 bit node identifier; // This is an alternative to the IEEE 802 host address, which is not available in Java. nodeAddress = new byte[NODE_ADDRESS_BYTES]; random.nextBytes(nodeAddress); } } setNodeAddress(nodeAddress); }