Index: server/org/apache/slide/webdav/method/AbstractWebdavMethod.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/AbstractWebdavMethod.java,v
retrieving revision 1.17
diff -u -b -r1.17 AbstractWebdavMethod.java
--- server/org/apache/slide/webdav/method/AbstractWebdavMethod.java	5 Nov 2003 14:24:35 -0000	1.17
+++ server/org/apache/slide/webdav/method/AbstractWebdavMethod.java	14 Nov 2003 23:52:02 -0000
@@ -90,6 +90,7 @@
 import org.apache.slide.lock.Lock;
 import org.apache.slide.lock.ObjectLockedException;
 import org.apache.slide.lock.UnlockListener;
+import org.apache.slide.lock.NodeLock;
 import org.apache.slide.macro.ConflictException;
 import org.apache.slide.macro.ForbiddenException;
 import org.apache.slide.macro.Macro;
@@ -952,6 +953,28 @@
             destinationExists = false;
         }
         return destinationExists;
+    }
+
+    protected boolean isLocked( String uriStr ) throws ServiceAccessException {
+        // use a non-blocking slide token.
+        SlideToken stoken = readonlySlideToken();
+
+        boolean isLocked = false;
+        try {
+            Enumeration locks = lock.enumerateLocks (stoken, uriStr, false);
+            while (locks.hasMoreElements()) {
+                if (lock.isLocked(stoken,(NodeLock) locks.nextElement(),false)) {
+                    isLocked = true;
+                }
+            }
+        }
+        catch (ServiceAccessException x) {
+            throw x;
+        }
+        catch (SlideException x) {
+            // ignore silently
+        }
+        return isLocked;
     }
 
     protected boolean isLockNull( String uriStr ) throws ServiceAccessException {
Index: server/org/apache/slide/webdav/method/MoveMethod.java
===================================================================
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/method/MoveMethod.java,v
retrieving revision 1.64
diff -u -b -r1.64 MoveMethod.java
--- server/org/apache/slide/webdav/method/MoveMethod.java	5 Nov 2003 14:24:34 -0000	1.64
+++ server/org/apache/slide/webdav/method/MoveMethod.java	14 Nov 2003 23:52:02 -0000
@@ -194,6 +194,10 @@
                 int statusCode = WebdavStatus.SC_NOT_FOUND;
                 sendError( statusCode, "lock-null resource", new Object[]{sourceUri} );
                 throw new WebdavException( statusCode );
+            } else if (isLocked(sourceUri)) {
+                int statusCode = WebdavStatus.SC_LOCKED;
+                sendError( statusCode, getClass().getName()+".noLocked", new Object[]{sourceUri} );
+                throw new WebdavException( statusCode );
             }
         }
         catch (ServiceAccessException e) {