luetzkendorf 2004/11/08 01:22:57
Modified: src/share/org/apache/slide/macro MacroImpl.java
Log:
fixed a bug for move where a descendant of the desination is locked. (removed
silly writeLock and using Olivers recursiveLockCheck)
Revision Changes Path
1.50 +10 -44
jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java
Index: MacroImpl.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/src/share/org/apache/slide/macro/MacroImpl.java,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -r1.49 -r1.50
--- MacroImpl.java 30 Oct 2004 12:48:42 -0000 1.49
+++ MacroImpl.java 8 Nov 2004 09:22:56 -0000 1.50
@@ -36,7 +36,6 @@
import org.apache.slide.common.ServiceAccessException;
import org.apache.slide.common.SlideException;
import org.apache.slide.common.SlideToken;
-import org.apache.slide.common.SlideTokenWrapper;
import org.apache.slide.common.Uri;
import org.apache.slide.content.Content;
import org.apache.slide.content.NodeProperty;
@@ -265,15 +264,6 @@
throw e;
}
} else {
- // try to writeLock the complete destination tree
- try {
- writeLock(token, destinationUri, true);
- }
- catch( ServiceAccessException x ) {
- e.addException(x);
- throw e;
- }
- catch (SlideException x) {}; // ignore silently
Map alreadyCopied = new HashMap(); // maps source-UURI ->
destination-URI
parameters.setParameter( ALREADY_COPIED, alreadyCopied );
@@ -325,30 +315,6 @@
}
}
-
- /**
- * WriteLock the specified URI
- *
- * @param token a SlideToken
- * @param uri a String
- * @param recursive a boolean
- * @throws SlideException
- */
- private void writeLock(SlideToken token, String uri, boolean recursive)
throws SlideException {
- if (!token.isForceStoreEnlistment()) {
- token = new SlideTokenWrapper(token);
- token.setForceStoreEnlistment(true);
- }
- ObjectNode onode = structureHelper.retrieve(token, uri);
- if (onode != null && recursive) {
- Iterator i = onode.getChildren().iterator();
- while (i.hasNext()) {
- writeLock( token, (String)i.next(), true );
- }
-
- }
- }
-
// TODO: copyRedirector not used
public void rebind(SlideToken token, String sourceUri,
String destinationUri, MacroParameters parameters,
@@ -365,15 +331,15 @@
throw e;
}
- // try to writeLock the complete destination tree
+ Uri source = namespace.getUri(token, sourceUri);
+ Uri destination = namespace.getUri(token, destinationUri);
try {
- writeLock(token, destinationUri, true);
- }
- catch( ServiceAccessException x ) {
- e.addException(x);
+ recursiveLockCheck(source);
+ recursiveLockCheck(destination);
+ } catch (SlideException ex) {
+ e.addException(ex);
throw e;
}
- catch (SlideException x) {}; // ignore silently
if (parameters.isDeleteCreate()) {
try {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]