1 17 package com.sslexplorer.vfs.webdav.methods; 18 19 import java.io.IOException ; 20 21 import org.apache.commons.vfs.FileSystemException; 22 23 import com.sslexplorer.vfs.VFSLockManager; 24 import com.sslexplorer.vfs.VFSResource; 25 import com.sslexplorer.vfs.webdav.DAVMethod; 26 import com.sslexplorer.vfs.webdav.DAVMultiStatus; 27 import com.sslexplorer.vfs.webdav.DAVTransaction; 28 import com.sslexplorer.vfs.webdav.LockedException; 29 30 36 public class DELETE implements DAVMethod { 37 38 43 public DELETE() { 44 super(); 45 } 46 47 52 public void process(DAVTransaction transaction, VFSResource resource) throws LockedException, IOException { 53 54 String handle = VFSLockManager.getNewHandle(); 55 VFSLockManager.getInstance().lock(resource, transaction.getSessionInfo(), true, true, handle); 56 57 try { 58 try { 59 resource.delete(); 60 transaction.setStatus(204); 61 resource.getMount().resourceDelete(resource, transaction, null); 62 } catch (FileSystemException ex) { 63 transaction.setStatus(423); 64 DAVMultiStatus s = new DAVMultiStatus(); 65 throw s; 66 } 67 } catch (DAVMultiStatus multistatus) { 68 multistatus.write(transaction); 69 resource.getMount().resourceDelete(resource, transaction, multistatus); 70 } finally { 71 VFSLockManager.getInstance().unlock(transaction.getSessionInfo(), handle); 72 } 73 } 74 } 75 | Popular Tags |