String path = attrs.getValue(PATH_ATTR);
String path = attrs.getValue(NAME_ATTR);
    protected void startElement(DAVElement parent, DAVElement element, Attributes attrs) throws SVNException {        if (element == TARGET_REVISION) {            String rev = attrs.getValue(REVISION_ATTR);            if (rev == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing revision attr in target-revision element");                SVNErrorManager.error(err);            } else {                myEditor.targetRevision(Long.parseLong(rev));            }        } else if (element == OPEN_ROOT) {            String rev = attrs.getValue(REVISION_ATTR);            if (rev == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing revision attr in open-root element");                SVNErrorManager.error(err);            } else {                myEditor.openRoot(Long.parseLong(rev));                myPath = "";                myIsDirectory = true;            }                    } else if (element == DELETE_ENTRY) {            String path = attrs.getValue(NAME_ATTR);            String rev = attrs.getValue(REVISION_ATTR);            if (path == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing name attr in delete-entry element");                SVNErrorManager.error(err);            } else if (rev == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing rev attr in delete-entry element");                SVNErrorManager.error(err);            } else {                myEditor.deleteEntry(path, Long.parseLong(rev));            }        } else if (element == OPEN_DIRECTORY || element == ADD_DIRECTORY) {            String path = attrs.getValue(PATH_ATTR);            String rev = attrs.getValue(REVISION_ATTR);                        if (path == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing name attr in " + (element == OPEN_DIRECTORY ? "open-directory" : "add-directory") + " element");                SVNErrorManager.error(err);            } else {                long revision = rev != null ? Long.parseLong(rev) : -1;                if (element == OPEN_DIRECTORY) {                    myEditor.openDir(path, revision);                } else {                    String copyFromPath = attrs.getValue(COPYFROM_PATH_ATTR);                    String cfRevision = attrs.getValue(COPYFROM_REV_ATTR);                    long copyFromRevision = cfRevision != null ? Long.parseLong(cfRevision) : -1;                    myEditor.addDir(path, copyFromPath, copyFromRevision);                }            }            myPath = path;            myIsDirectory = true;        } else if (element == OPEN_FILE || element == ADD_FILE) {            String path = attrs.getValue(NAME_ATTR);            if (path == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing name attr in " + (element == OPEN_FILE ? "open-file" : "add-file") + " element");                SVNErrorManager.error(err);            }                        if (element == ADD_FILE) {                String copyFromPath = attrs.getValue(COPYFROM_PATH_ATTR);                String cfRevision = attrs.getValue(COPYFROM_REV_ATTR);                long copyFromRevision = cfRevision != null ? Long.parseLong(cfRevision) : -1;                myEditor.addFile(path, copyFromPath, copyFromRevision);            } else {                String rev = attrs.getValue(REVISION_ATTR);                long revision = rev != null ? Long.parseLong(rev) : -1;                myEditor.openFile(path, revision);            }            myIsDirectory = false;            myPath = path;        } else if (element == APPLY_TEXT_DELTA) {            if (myIsDirectory) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Got apply-textdelta element without preceding add-file or open-file");                SVNErrorManager.error(err);            }                        String checksum = attrs.getValue(CHECKSUM_ATTR);            try {                myEditor.applyTextDelta(myPath, checksum);                setDeltaProcessing(true);            } catch (SVNException svne) {                //            }        } else if (element == CLOSE_FILE) {            if (myIsDirectory) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Got close-file element without preceding add-file or open-file");                SVNErrorManager.error(err);            } else {                myEditor.closeFile(myPath, null);                myIsDirectory = true;            }        } else if (element == CLOSE_DIRECTORY) {            if (!myIsDirectory) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Got close-directory element without ever opening a directory");                SVNErrorManager.error(err);            } else {                myEditor.closeDir();            }        } else if (element == CHANGE_FILE_PROPERTY || element == CHANGE_DIR_PROPERTY) {            String name = attrs.getValue(NAME_ATTR);            if (name == null) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_DAV_MALFORMED_DATA, "Missing name attr in " + (element == CHANGE_FILE_PROPERTY ? "change-file-prop" : "change-dir-prop") + " element");                SVNErrorManager.error(err);            } else {                if (attrs.getValue(DEL_ATTR) != null) {                    if (element == CHANGE_FILE_PROPERTY) {                        myEditor.changeFileProperty(myPath, myPropertyName, null);                    } else {                        myEditor.changeDirProperty(myPropertyName, null);                    }                    myPropertyName = null;                } else {                    myPropertyName = name;                }            }        }    }