Transient registry errors caused by jUDDI race condition
---------------------------------------------------------
Key: JUDDI-103
URL: https://issues.apache.org/jira/browse/JUDDI-103
Project: jUDDI
Issue Type: Bug
Reporter: Kurt Stam
Assignee: Steve Viens
There is a race condition in the jUDDI codebase which causes transient registry
failures.
The symptom of the race condition is the following error message
E_busy (10400) The request cannot be processed at the current time. The
Registry is currently unavailable.
The class containing the race condition is
org.apache.juddi.registry.local.Registry
Every call to Registry.getRegistry() results in the recreation and
initialisation of a global variable (registry). As the assignment of the global
variable is made *before* the initialisation method is called there exists a
window of opportunity whereby a caller can obtain a reference to an
uninitialised registry. The consequence of this is that calls to
RegistryEngine.isAvailable() can return false.
I'm not sure why the RegistryEngine is being recreated on every call but the
current code is unsafe (even if ignoring multiprocessor memory models). There
should not be a global reference to the registry if it is a requirement to
recreate it on every invocation. If it is not a requirement then the
initialisation should really be occurring within a static block.
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]