that's how it ended up by default when I entered it. I think the
"assigned to" gets set to the module owner by default if left
blank. So, nobody is "handling" this issue.
On 6/5/2003, I posted the following message to the xmldb-xupdate list.
The message does not appear in the archives, so I presume it
was never sent to the list by moderator:
-------------------------------------------------------------------------------------------------------------------
In the org.xmldb.xupdate.lexus.commands package, especially in the
CommandConstants class, static variables are used as temporaries,
and for parameter passing between methods.
Example (from CommandConstants.java):
/**
* Sets the contextNode which is to be updated and initializes the objects
* for each XUpdate operation.
* @param node the contextNode which is to be updated.
* @throws IllegalArgumentException if node is null.
*/
public void setContextNode( Node node ) throws Exception {
if (node==null) {
throw new IllegalArgumentException( "context node must not be null !" );
}
_contextNode = node;
_command = new CommandObject[COMMAND_COUNT];
_command[0] = new RemoveCommand( _contextNode );
_command[1] = new RenameCommand( _contextNode );
_command[2] = new UpdateCommand( _contextNode );
_command[3] = new VariableCommand( _contextNode );
_command[4] = new AppendCommand( _contextNode );
_command[5] = new InsertBeforeCommand( _contextNode );
_command[6] = new InsertAfterCommand( _contextNode );
}
In the above, _contextNode is a static.
This case can easily be fixed (use the parameter node
instead of _contextNode when instantiating commands).
The code for processing the "variables"
feature uses the static _contextNode:
Example (from InsertVariable.java):
/**
*
*/
protected NodeList selectNewNodes( String query ) throws Exception {
//long start = System.currentTimeMillis();
XPathQuery xpath = CommandObject.getXPath();
xpath.setQString( query );
XObject xResult = xpath.execute( CommandConstants._contextNode );
if (xResult.getType()!=XObject.CLASS_NODESET) {
throw new Exception( "XPath leads not to a Node or NodeList !" );
}
NodeList result = xResult.nodeset();
//long end = System.currentTimeMillis() - start;
//System.err.println("value-of select:"+end);
return result;
}
Therefore, until the XMLDB XUpdate implementation
is fixed or replaced, Xindice cannot be condsidered
thread-safe for XUpdate usage.
The problems except for the "variable" problems
can be fixed fairly easily with simple fixes to
the implementation. The fix for the problem
with "variables" seems more difficult since it
might involve changes to the code architecture.
-------------------------------------------------------------------------------------------------------------------
On 9/19/2002, I posted the following message to that
list which does appear in the archive (forwarded by Tom Bradford).
The message received no replies:
-------------------------------------------------------------------------------------------------------------------
From: Terry Rosenbaum <[EMAIL PROTECTED]>
Date: Thu Sep 19, 2002 9:09:33 PM America/Phoenix
To: xindice-dev <[EMAIL PROTECTED]>, [EMAIL PROTECTED]
Subject: Warning: XUpdate NOT Thread-Safe
Reply-To: [EMAIL PROTECTED]
Hi,
Just a short warning in case anyone is interested. The xmldb reference implementation
of xupdate used by Xindice uses static variables for parameter passing and persistence
of internal state. Therefore, all XUpdate operations should be considered to be not thread-safe.
Even concurrent executions of xupdates against different collections within a single
instance of Xindice could encounter problems. If you use xupdate, you should take steps
to ensure that only a single xupdate operation could ever be underway at any given moment.
-Terry
-------------------------------------------------------------------------------------------------------------------
So, it appears there is little activity.
If you look at some of the lists other than the "General" one,
(e.g. the XMLDB API list or Xupdate list) there are a smattering
of more recent posts.
-Terry
Kevin Ross wrote:
I'm also curious. Who is currently leading the initiative? We have an outstanding bug related to the xmldb implementation regarding threading. Who is handling this? It is assigned to Kimbro...so...-Kevin Ross -----Original Message----- From: Preissler, Z 191, BN [mailto:[EMAIL PROTECTED]] Sent: Wednesday, July 16, 2003 5:30 AM To: 'xindice-users@xml.apache.org' Subject: OT: current state of XMLDB initiative? Could anyone please give a short statement on the current state of the XMLDB initiative? There are some recent news on the website, but the latest posts in the mailinglist archives date from 2002. Mails sent to the lists don't show up in the archives and there is no reply. Is there any other place where information might be found? I'm espcially interested in XUpdate. Sorry for the OT post, but I thought this might be the place that is most likely to provide some information. kind regards Gerald Preissler