axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andreas Veithen (JIRA)" <>
Subject [jira] Reopened: (AXIS2-4527) Axis2 UUIDGenerator does not create Standard (ISO/IEC 11578:1996) conform UUIDs
Date Thu, 20 May 2010 21:11:17 GMT


Andreas Veithen reopened AXIS2-4527:

Several comments here:

1. There is a piece of code in LifecycleManagerImpl saying this:

        // Generate unique id.  The UUID generator is used so that we can limit
        // synchronization with the java random number generator.
        String id = UUIDGenerator.getUUID();

UUID.randomUUID() invokes a synchronized method on a SecureRandom object held in a static
attribute. Assuming that the comment shown above is accurate/relevant, r939925 would introduce
a regression.

2. Unfortunately, UUIDGenerator is used in many places to generate unique IDs, even if there
is no requirement to base them on UUIDs (in the sense of the ISO standard cited by Bastian).

mimeBoundary = "MIMEBoundary" + UUIDGenerator.getUUID().replace(':', '_');

r939925 changes the format of the ID returned by UUIDGenerator.getUUID(), which now contains
dashes. There is a risk that this breaks existing (poorly written) code because '-' may be
a forbidden character in the context where UUIDGenerator.getUUID() is used.

3. UUIDGenerator has a very poorly defined interface: its name suggests that it returns UUIDs,
it attempts to constructs URNs with a uuid NID, but it neither returns one nor the other (before

Therefore, my suggestion is to revert r939925, deprecate the whole UUIDGenerator stuff and
replace it by a new, well defined utility class that is able to produce unique/random identifiers
of various kinds (UUIDs, MIME content IDs, MIME boundaries) that respect the relevant standards
(see also the TODO item in [1]) and makes an appropriate compromise between overhead, uniqueness
and randomness. E.g. the uniqueness requirements for a MIME content ID are much weaker than
for a UUID and can easily be satisfied in a thread safe way without any synchronization.


> Axis2 UUIDGenerator does not create Standard (ISO/IEC 11578:1996) conform UUIDs
> -------------------------------------------------------------------------------
>                 Key: AXIS2-4527
>                 URL:
>             Project: Axis2
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 1.5
>         Environment: Java 1.6.0_13, Windows
>            Reporter: Bastian Ibach
> UUIDs generated with Axis2 Util UUIDGenerator have the form
> urn:uuid:16F37BAAB5ADE4B10F1255435492771
> This is not conform to the Standard (ISO/IEC 11578:1996) and these UUID are rejected
by e.g. Windows Clients etc.
> A Standard conform UUID would look like:
> urn:uuid:fddc7dc5-837b-443c-8ae7-7e715bab8666
> Please fix this bug! Java includes a UUID Class, with produces Standard conform UUID
of the form fddc7dc5-837b-443c-8ae7-7e715bab8666 for Webservice use one must only add urn:uudi:
befor the generated Number

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message