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]

Reply via email to