Package org.apache.slide.webdav

Examples of org.apache.slide.webdav.WebdavException


        // check lock-null resources
        try {
            if (isLockNull(resourcePath)) {
                int statusCode = WebdavStatus.SC_NOT_FOUND;
                sendError( statusCode, "lock-null resource", new Object[]{resourcePath} );
                throw new WebdavException( statusCode );
            }
        }
        catch (ServiceAccessException e) {
            int statusCode = getErrorCode((Exception)e);
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }

        Element multistatusElement = new Element(E_MULTISTATUS, DNSP);

        try {
            update(updateSourcePath, updateLabelName, resourcePath, getDepth(), multistatusElement);
        }
        catch (NestedSlideException nestedSlideException) {

            if (!requestHeaders.isDefined(H_DEPTH)) {
                // do not send a 207 multistatus if the depth header is not set
                SlideException exception = (SlideException)nestedSlideException.enumerateExceptions().nextElement();
                resp.setStatus(getErrorCode(exception))// special handling needed
                if (exception instanceof PreconditionViolationException) {
                    try {
                        sendPreconditionViolation((PreconditionViolationException)exception);
                    } catch(IOException e) {
                        // Critical error ... Servlet container is dead or something
                        int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
                        sendError( statusCode, e );
                        throw new WebdavException( statusCode );
                    }
                }
                throw new WebdavException(getErrorCode(exception), false); // abort the TA
            }
        }

        try {
            resp.setStatus(WebdavStatus.SC_MULTI_STATUS);
            resp.setContentType(TEXT_XML_UTF_8);
            new XMLOutputter(XML_REPONSE_INDENT, true).
                output(new Document(multistatusElement), resp.getWriter());
        }
        catch (Exception e) {
            int statusCode = getErrorCode( e );
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }
    }
View Full Code Here


        }
        else {
            Domain.warn(
                "Do not know how to checkout a '"+rRk+"' resource" );
            resp.setStatus(WebdavStatus.SC_CONFLICT);
            throw new WebdavException( WebdavStatus.SC_CONFLICT );
        }
    }
View Full Code Here

        }
        else {
            Domain.warn(
                "Do not know how to checkout a '"+rRk+"' resource" );
            resp.setStatus(WebdavStatus.SC_CONFLICT);
            throw new WebdavException( WebdavStatus.SC_CONFLICT );
        }
    }
View Full Code Here

                    element = (Element)element.getChildren().get(0);
                }
                catch (Exception e) {
                    int statusCode = WebdavStatus.SC_BAD_REQUEST;
                    sendError( statusCode, getClass().getName()+".missingRootElementChildren", new Object[]{"DAV:"+E_PROPFIND} );
                    throw new WebdavException( statusCode );
                }
               
                if (element.getName().equalsIgnoreCase(E_PROPNAME)){
                    propFindType = FIND_PROPERTY_NAMES;
                }
                else if ( element.getName().equalsIgnoreCase(E_PROP) ) {
                    requestedProperties = new RequestedPropertiesImpl(element);
                    propFindType = FIND_BY_PROPERTY;
                }
                else if ( element.getName().equalsIgnoreCase(E_ALLPROP) ) {
                    requestedProperties = new RequestedPropertiesImpl(element);
                    propFindType = FIND_ALL_PROP;
                }
                else {
                    int statusCode = WebdavStatus.SC_BAD_REQUEST;
                    sendError( statusCode, getClass().getName()+".invalidChildOfRootElement", new Object[]{element.getNamespace()+":"+element.getName(),"DAV:"+E_PROPFIND} );
                    throw new WebdavException( statusCode );
                }
               
            }
            catch (JDOMException  e){
                int statusCode = WebdavStatus.SC_BAD_REQUEST;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
            catch (PropertyParseException  e){
                int statusCode = WebdavStatus.SC_BAD_REQUEST;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
            catch (IOException  e){
                int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
        }
    }
View Full Code Here

                revisionDescriptor = new NodeRevisionDescriptor(0);
            }
        } catch (Exception e) {
            int statusCode = getErrorCode( e );
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }
       
        Vector propertiesParser = null;
        PropertyRetrieverImpl propertyRetriever = new PropertyRetrieverImpl(token, lightSToken, getConfig());
       
        switch (propFindType) {
            case FIND_ALL_PROP :
            case FIND_BY_PROPERTY :
                try {
                    List propstatList= propertyRetriever.getPropertiesOfObject(requestedProperties, revisionDescriptors, revisionDescriptor, req.getContextPath(), req.getServletPath(), extendedAllprop);
                    Iterator iterator = propstatList.iterator();
                    while (iterator.hasNext()) {
                        responseElement.addContent((Element)iterator.next());
                    }
                } catch (ServiceAccessException e) {
                    int statusCode = WebdavStatus.SC_FORBIDDEN;
                    sendError( statusCode, e );
                    throw new WebdavException( statusCode );
                } catch (Exception e) {
                    int statusCode = getErrorCode( e );
                    sendError( statusCode, e );
                    throw new WebdavException( statusCode );
                }
                break;
            case FIND_PROPERTY_NAMES :
               
                try {
                    status = new String("HTTP/1.1 " + WebdavStatus.SC_OK
                                            + " " + WebdavStatus.getStatusText
                                            (WebdavStatus.SC_OK));
                   
                    Element propstatElement = new Element(E_PROPSTAT, DNSP);
                    Element propElement = new Element(E_PROP, DNSP);
                    RequestedProperties propnames =
                        propertyRetriever.getAllPropertyNames(object.getUri(), true);
                    Iterator iterator = propnames.getRequestedProperties();
                    while (iterator.hasNext()) {
                        RequestedProperty p = (RequestedProperty)iterator.next();
                        Namespace nsp = DNSP.getURI().equals(p.getNamespace())
                            ? DNSP
                            : Namespace.getNamespace(p.getNamespace());
                        propElement.addContent(new Element(p.getName(), nsp));
                    }
                    Element statusElement = new Element(E_STATUS, DNSP);
                    statusElement.setText(status);
                    propstatElement.addContent(propElement);
                    propstatElement.addContent(statusElement);
                    responseElement.addContent(propstatElement);
                }
                catch (ServiceAccessException e) {
                    int statusCode = WebdavStatus.SC_FORBIDDEN;
                    sendError( statusCode, e );
                    throw new WebdavException( statusCode );
                }
                catch (Exception e) {
                    int statusCode = getErrorCode( e );
                    sendError( statusCode, e );
                    throw new WebdavException( statusCode );
                }
                break;
        }
       
        return responseElement;
View Full Code Here

                parseRequestContent();
            }
            catch (JDOMException  e){
                int statusCode = WebdavStatus.SC_BAD_REQUEST;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
            catch (IOException  e){
                int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
        }
    }
View Full Code Here

        // check lock-null resources
        try {
            if (isLockNull(resourcePath)) {
                int statusCode = WebdavStatus.SC_NOT_FOUND;
                sendError( statusCode, "lock-null resource", new Object[]{resourcePath} );
                throw new WebdavException( statusCode );
            }
        }
        catch (ServiceAccessException e) {
            int statusCode = getErrorCode((Exception)e);
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }

        try {
            VersioningHelper vh = VersioningHelper.getVersioningHelper(
                slideToken, token, req, resp, getConfig() );
            vh.uncheckout(resourcePath);
        }
        catch (PreconditionViolationException e) {
            sendPreconditionViolation(e);
            throw e;
        }
        catch (Exception e) {
            int statusCode = getErrorCode(e);
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }
        finally {
            resp.setHeader(H_CACHE_CONTROL, NO_CACHE);
        }
       
View Full Code Here

            sourceUri = parseUri(MethodUtil.getChildUrl(content, E_HREF));
        }
        catch (IOException e) {  // TODO: merge exception handling into jdom access methods
            int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }
        catch (JDOMException e) {  // TODO: merge exception handling into jdom access methods
            int statusCode = WebdavStatus.SC_BAD_REQUEST;
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }

        collectionUri = requestUri;
        if (collectionUri == null) {
            collectionUri = "/";
View Full Code Here

        // check lock-null resources
        try {
            if (isLockNull(collectionUri)) {
                int statusCode = WebdavStatus.SC_NOT_FOUND;
                sendError( statusCode, "lock-null resource", new Object[]{collectionUri} );
                throw new WebdavException( statusCode );
            }
        }
        catch (ServiceAccessException e) {
            int statusCode = getErrorCode((Exception)e);
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }

        try {
            checkPreconditions();
            structure.addBinding( slideToken, collectionNode, segment, sourceNode );
            structure.removeBinding( slideToken, sourceParentNode, sourceSegment );
        }
        catch (CrossServerBindingException e) {
            sendPreconditionViolation(
                new PreconditionViolationException(
                                         new ViolatedPrecondition(C_CROSS_SERVER_BINDING, WebdavStatus.SC_FORBIDDEN),
                                         collectionNode.getUri()
                                     )
            );
        }
        catch (ObjectLockedException e) {
            ViolatedPrecondition violatedPrecondition;
            if (collectionUri.equals(e.getObjectUri())) {
                violatedPrecondition =
                    new ViolatedPrecondition(C_LOCKED_UPDATE_ALLOWED, WebdavStatus.SC_LOCKED);
            }
            else if (sourceParentUri.equals(e.getObjectUri())) {
                violatedPrecondition =
                    new ViolatedPrecondition(C_LOCKED_SOURCE_COLLECTION_UPDATE_ALLOWED, WebdavStatus.SC_CONFLICT);
            }
            else if (sourceUri.equals(e.getObjectUri())) {
                violatedPrecondition =
                    new ViolatedPrecondition(C_PROTECTED_SOURCE_URL_DELETION_ALLOWED, WebdavStatus.SC_CONFLICT);
            }
            else {
                violatedPrecondition =
                    new ViolatedPrecondition(C_PROTECTED_URL_MODIFICATION_ALLOWED, WebdavStatus.SC_CONFLICT);
            }
            sendPreconditionViolation(
                new PreconditionViolationException(violatedPrecondition, collectionNode.getUri())
            );
        }
        catch (PreconditionViolationException e) {
            sendPreconditionViolation(e);
            throw e;
        }
        catch (Exception e) {
            int statusCode = getErrorCode( e );
            sendError( statusCode, e );
            throw new WebdavException( statusCode );
        }
    }
View Full Code Here

                }
            }
            catch (JDOMException  e){
                int statusCode = WebdavStatus.SC_BAD_REQUEST;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
            catch( IOException e ){
                int statusCode = WebdavStatus.SC_INTERNAL_SERVER_ERROR;
                sendError( statusCode, e );
                throw new WebdavException( statusCode );
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.slide.webdav.WebdavException

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.