Examples of DAVIFState


Examples of org.tmatesoft.svn.core.internal.server.dav.DAVIFState

            for (Iterator ifHeadersIter = ifHeaders.iterator(); ifHeadersIter.hasNext();) {
                DAVIFHeader ifHeader = (DAVIFHeader) ifHeadersIter.next();
                List ifStateList = ifHeader.getStateList();
                if (ifStateList != null) {
                    for (Iterator ifStateIter = ifStateList.iterator(); ifStateIter.hasNext();) {
                        DAVIFState ifState = (DAVIFState) ifStateIter.next();
                        if (ifState.getCondition() == DAVIFState.IF_CONDITION_NORMAL && ifState.getType() == DAVIFStateType.IF_OPAQUE_LOCK) {
                            if (lockTokens == null) {
                                lockTokens = new LinkedList();
                            }
                            lockTokens.add(ifState.getLockToken());
                        }
                    }
                }
            }
        }
View Full Code Here

Examples of org.tmatesoft.svn.core.internal.server.dav.DAVIFState

        }
      
        LinkedList ifHeaders = DAVServletUtil.processIfHeader(getRequestHeader(HTTPHeader.IF_HEADER));
       
        if (lockToken != null) {
            DAVIFState ifState = new DAVIFState(DAVIFState.IF_CONDITION_NORMAL, null, lockToken, DAVIFStateType.IF_OPAQUE_LOCK);
            DAVIFHeader ifHeader = new DAVIFHeader(resource.getResourceURI().getRequestURI(), true);
            ifHeader.addIFState(ifState);
            if (ifHeaders == null) {
                ifHeaders = new LinkedList();
            }
View Full Code Here

Examples of org.tmatesoft.svn.core.internal.server.dav.DAVIFState

           
            ++numThatAppy;
            LinkedList stateList = ifHeader.getStateList();
            boolean doContinue = false;
            for (Iterator stateListIter = stateList.iterator(); stateListIter.hasNext();) {
                DAVIFState state = (DAVIFState) stateListIter.next();
                if (state.getType() == DAVIFStateType.IF_ETAG) {
                    String currentETag = null;
                    String givenETag = null;
                    String stateETag = state.getETag();
                    if (stateETag.startsWith("W/")) {
                        givenETag = stateETag.substring(2);
                    } else {
                        givenETag = stateETag;
                    }
                   
                    if (eTag.startsWith("W/")) {
                        currentETag = eTag.substring(2);
                    } else {
                        currentETag = eTag;
                    }
                   
                    boolean eTagsDoNotMatch = !givenETag.equals(currentETag);
                   
                    if (state.getCondition() == DAVIFState.IF_CONDITION_NORMAL && eTagsDoNotMatch) {
                        reason = "an entity-tag was specified, but the resource's actual ETag does not match.";
                        doContinue = true;
                        break;
                    } else if (state.getCondition() == DAVIFState.IF_CONDITION_NOT && !eTagsDoNotMatch) {
                        reason = "an entity-tag was specified using the \"Not\" form, but the resource's actual ETag matches the provided entity-tag.";
                        doContinue = true;
                        break;
                    }
                } else if (state.getType() == DAVIFStateType.IF_OPAQUE_LOCK) {
                    if (provider == null) {
                        if (state.getCondition() == DAVIFState.IF_CONDITION_NOT) {
                            continue;
                        }
                       
                        reason = "a State-token was supplied, but a lock database is not available for to provide the required lock.";
                        doContinue = true;
                        break;
                    }
                   
                    boolean matched = false;
                    if (lock != null) {
                        if (!lock.getLockToken().equals(state.getLockToken())) {
                            continue;
                        }
                       
                        seenLockToken = true;
                       
                        if (state.getCondition() == DAVIFState.IF_CONDITION_NOT) {
                            reason = "a State-token was supplied, which used a \"Not\" condition. The State-token was found in the locks on this resource";
                            doContinue = true;
                            break;
                        }
                       
                        String lockAuthUser = lock.getAuthUser();
                        String requestUser = resource.getUserName();
                        if (lockAuthUser != null && (requestUser == null || !lockAuthUser.equals(requestUser))) {
                            throw new DAVException("User \"{0}\" submitted a locktoken created by user \"{1}\".",
                                    new Object[] { requestUser, lockAuthUser }, HttpServletResponse.SC_FORBIDDEN, 0);
                        }
                       
                        matched = true;
                    }
                   
                    if (!matched && state.getCondition() == DAVIFState.IF_CONDITION_NORMAL) {
                        reason = "a State-token was supplied, but it was not found in the locks on this resource.";
                        doContinue = true;
                        break;
                    }
                } else if (state.getType() == DAVIFStateType.IF_UNKNOWN) {
                    if (state.getCondition() == DAVIFState.IF_CONDITION_NORMAL) {
                        reason = "an unknown state token was supplied";
                        doContinue = true;
                        break;
                    }
                }
View Full Code Here

Examples of org.tmatesoft.svn.core.internal.server.dav.DAVIFState

    private boolean findSubmittedLockToken(LinkedList ifHeaders, DAVLock lock) {
        for (Iterator ifHeadersIter = ifHeaders.iterator(); ifHeadersIter.hasNext();) {
            DAVIFHeader ifHeader = (DAVIFHeader) ifHeadersIter.next();
            LinkedList ifStates = ifHeader.getStateList();
            for (Iterator ifStatesIter = ifStates.iterator(); ifStatesIter.hasNext();) {
                DAVIFState ifState = (DAVIFState) ifStatesIter.next();
                if (ifState.getType() == DAVIFStateType.IF_OPAQUE_LOCK) {
                    String lockToken = lock.getLockToken();
                    String stateLockToken = ifState.getLockToken();
                    if (lockToken.equals(stateLockToken)) {
                        return true;
                    }
                }
            }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.