United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4173528 : Add a method to generate a UUID (Universal Unique Identifier)

Details
Type:
Enhancement
Submit Date:
1998-09-14
Status:
Resolved
Updated Date:
2004-11-02
Project Name:
JDK
Resolved Date:
2003-08-15
Component:
core-libs
OS:
windows_nt,generic,windows_2000
Sub-Component:
java.util
CPU:
x86,generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
1.2.0,1.2.1,1.4.0,1.4.1
Fixed Versions:
5.0 (tiger)

Related Reports
Duplicate:
Duplicate:
Duplicate:

Sub Tasks

Description
Name: tb29552			Date: 09/14/98

This feature is to add UUID functionality to the J2SE platform by the addition of a UUID class for manipulating Leach-Salz variants.

The uuid (Universal Unique Identifier) is an XOPEN standard
for creating a globally unique id.

Quoting below from:
http://www.opengroup.org/onlinepubs/9629399/apdxa.htm

"A UUID is an identifier that is unique across both space and
time[note 1], with respect to the space of all UUIDs.  A UUID
can be used for multiple purposes, from tagging objects with
an extremely short lifetime, to reliably identifying very
persistent objects across a network.

The generation of UUIDs does not require a registration
authority for each single identifier.  Instead, it requires a
unique value over space for each UUID generator.  This
spatially unique value is specified as an IEEE 802 address,
which is usually already applied to network-connected
systems.  This 48-bit address can be assigned based on
an address block obtained through the IEEE registration
authority.  This UUID specification assumes the availability
of an IEEE 802 address. "(end quote)

Note 1:
http://www.opengroup.org/onlinepubs/9629399/apdxa.htm#tag_foot_1


We use a UUID as an object id for each business object.  These
objects could be created in different countries (i.e different web
servers ) and are replicated to many databases.  The best solution
to this is the uuid.   We are writing an all Java likeness to the uuid,
but since there is no 100% pure Java way to access the 48-bit IEEE
802 address (network card id) then we cannot faithfully reproduce
a true uuid.


(Review ID: 38793)
======================================================================

On some systems, generating a time-space based UUID requires privileged user credentials and is not currently implemented, time, random,name and DCE are available
###@###.### 11/2/04 23:19 GMT

                                    

Comments
EVALUATION

In some environments, an IEEE802 address may not be available.
However, the UUID concept is a useful one, and there should be some way
to generate them when possible.   Rather than putting UUID support into
the language, it might be better simply to allow access to the network
card address, if available.  In any case, this is the sort of thing that
should be confined to java.lang.System if it is to go in java.lang at all.

william.maddox@Eng 1998-09-21


On systems that have networking cards it generally only requires a small amount
of native code to access the MAC address.  We should consider defining an API
for generating UUIDs that uses the MAC address when available and falls back
to some other mechanism (or simply fails gracefully) otherwise.

Under consideration for Tiger.  -- ###@###.### 2002/2/20


Making time based UUIDs requires synchronization and management of a persistent information store across all programs generating UUIDs running on the machine. This requires root/administrator privileges on the machine which is not something that Java can rely upon having. Therefore we may be forced to only offer the pure random type UUIDs based upon a high quality source of random bytes.

Delegating the generation of UUIDs to the operating system does not solve this problem. For instance on Solaris you cannot get high quality time&space based UUIDs without being root for the same reason-- you need to be able to lock a global file containing the time information mentioned in the standard.

###@###.### 2002-08-23
                                     
2002-08-23
PUBLIC COMMENTS

.
                                     
2004-06-10
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger

FIXED IN:
tiger

INTEGRATED IN:
tiger
tiger-b16


                                     
2004-06-14



Hardware and Software, Engineered to Work Together