1 package com.ibm.webdav.protocol.http; 2 3 17 import java.io.*; 18 import java.util.*; 19 import java.util.logging.*; 20 21 import javax.servlet.http.*; 22 23 import org.w3c.dom.*; 24 25 import com.ibm.webdav.*; 26 import com.ibm.webdav.impl.*; 27 28 31 public class UnlockMethod extends WebDAVMethod { 32 private static Logger m_logger = Logger.getLogger(UnlockMethod.class.getName()); 33 34 35 40 public UnlockMethod(HttpServletRequest request, HttpServletResponse response) throws WebDAVException { 41 super(request, response); 42 methodName = "UNLOCK"; 43 } 44 47 public WebDAVStatus execute() { 48 try { 49 setStatusCode(WebDAVStatus.SC_NO_CONTENT); 50 51 String lockToken = context.getRequestContext().lockToken(); 53 context.setMethodName(methodName); 54 MultiStatus multiStatus = resource.unlock(context, lockToken); 55 Enumeration responses = multiStatus.getResponses(); 56 if (responses.hasMoreElements()) { 57 resource.getResponseContext().contentType("text/xml"); 59 setResponseHeaders(); 60 setStatusCode(WebDAVStatus.SC_MULTI_STATUS); 61 62 Document results = multiStatus.asXML(); 64 if (ResourceImpl.debug) { 66 System.err.println("unlock results:"); 67 PrintWriter pout = new PrintWriter(System.err); 68 pout.print(XMLUtility.printNode(results.getDocumentElement())); 69 } 71 PrintWriter pout = new PrintWriter(response.getWriter(), false); 72 pout.print(XMLUtility.printNode(results.getDocumentElement())); 73 pout.close(); 75 } else { 76 setResponseHeaders(); 77 } 78 } catch (WebDAVException exc) { 79 m_logger.log(Level.INFO, exc.getMessage() + " - " + request.getQueryString()); 80 setStatusCode(exc.getStatusCode()); 81 } catch (Exception exc) { 82 m_logger.log(Level.WARNING, exc.getMessage(), exc); 83 setStatusCode(WebDAVStatus.SC_INTERNAL_SERVER_ERROR); 84 } 85 return context.getStatusCode(); 86 } 87 } 88 | Popular Tags |