SVNEntry entry = adminArea.getEntry(fileName, true);
SVNEntry2 entry = adminArea.getEntry(fileName, true);
    public void runCommand(SVNAdminArea adminArea, String name, Map attributes, int count) throws SVNException {        String fileName = (String) attributes.get(ISVNLog.NAME_ATTR);        if (ISVNLog.DELETE_ENTRY.equals(name)) {            SVNEntry entry = adminArea.getEntry(fileName, false);            if (entry == null) {                return;            } else if (entry.isDirectory()) {                SVNWCAccess2 access = adminArea.getWCAccess();                SVNAdminArea childArea = null;                try {                    childArea = access.retrieve(adminArea.getFile(fileName));                } catch (SVNException svne) {                    if (svne.getErrorMessage().getErrorCode() == SVNErrorCode.WC_NOT_LOCKED) {                        if (!entry.isScheduledForAddition()) {                            adminArea.deleteEntry(fileName);                        }                        return;                    }                    throw svne;                }                childArea.removeFromRevisionControl(childArea.getThisDirName(), true, false);            } else if (entry.isFile()) {                adminArea.removeFromRevisionControl(fileName, true, false);            }        } else if (ISVNLog.MODIFY_ENTRY.equals(name)) {            if (attributes.containsKey(SVNProperty.shortPropertyName(SVNProperty.SCHEDULE))) {                String schedule = (String) attributes.get(SVNProperty.shortPropertyName(SVNProperty.SCHEDULE));                adminArea.foldScheduling(fileName, schedule);                attributes.remove(SVNProperty.shortPropertyName(SVNProperty.SCHEDULE));            }                        SVNEntry entry = adminArea.getEntry(fileName, true);            if (entry == null) {                entry = adminArea.addEntry(fileName);            }                        Map entryAttrs = entry.asMap();            for (Iterator atts = attributes.keySet().iterator(); atts.hasNext();) {                String attName = (String) atts.next();                if ("".equals(attName) || ISVNLog.NAME_ATTR.equals(attName)) {                    continue;                }                String value = (String) attributes.get(attName);                if (SVNProperty.CACHABLE_PROPS.equals(attName) || SVNProperty.PRESENT_PROPS.equals(attName)) {                    String[] propsArray = SVNAdminArea.fromString(value, " ");                    entryAttrs.put(attName, propsArray);                    continue;                } else if (!(SVNProperty.HAS_PROPS.equals(attName) || SVNProperty.HAS_PROP_MODS.equals(attName))) {                    attName = SVNProperty.SVN_ENTRY_PREFIX + attName;                }                                if (ISVNLog.WC_TIMESTAMP.equals(value)) {                    if (SVNProperty.PROP_TIME.equals(attName)) {                        String path = adminArea.getThisDirName().equals(fileName) ? "dir-props" : "props/" + fileName + ".svn-work";                        File file = adminArea.getAdminFile(path);                        value = SVNTimeUtil.formatDate(new Date(file.lastModified()));                    } else if (SVNProperty.TEXT_TIME.equals(attName)) {                        String path = adminArea.getThisDirName().equals(fileName) ? adminArea.getThisDirName() : fileName;                        File file = new File(adminArea.getRoot(), path);                        value = SVNTimeUtil.formatDate(new Date(file.lastModified()));                    }                }                if (value != null) {                    entryAttrs.put(attName, value);                } else {                    entryAttrs.remove(attName);                }            }            setEntriesChanged(true);        } else if (ISVNLog.MODIFY_WC_PROPERTY.equals(name)) {            ISVNProperties wcprops = adminArea.getWCProperties(fileName);            if (wcprops != null) {                String propName = (String) attributes .get(ISVNLog.PROPERTY_NAME_ATTR);                String propValue = (String) attributes.get(ISVNLog.PROPERTY_VALUE_ATTR);                wcprops.setPropertyValue(propName, propValue);                setWCPropertiesChanged(true);            }        } else if (ISVNLog.DELETE_LOCK.equals(name)) {            try {                SVNEntry entry = adminArea.getEntry(fileName, true);                if (entry != null) {                    entry.setLockToken(null);                    entry.setLockOwner(null);                    entry.setLockCreationDate(null);                    entry.setLockComment(null);                    setEntriesChanged(true);                }            } catch (SVNException svne) {                SVNErrorCode code = count <= 1 ? SVNErrorCode.WC_BAD_ADM_LOG_START : SVNErrorCode.WC_BAD_ADM_LOG;                SVNErrorMessage err = SVNErrorMessage.create(code, "Error removing lock from entry for ''{0}''", fileName);                SVNErrorManager.error(err, svne);            }        } else if (ISVNLog.DELETE.equals(name)) {            File file = adminArea.getFile(fileName);            file.delete();        } else if (ISVNLog.READONLY.equals(name)) {            File file = adminArea.getFile(fileName);            SVNFileUtil.setReadonly(file, true);        } else if (ISVNLog.MOVE.equals(name)) {            File src = adminArea.getFile(fileName);            File dst = adminArea.getFile((String) attributes.get(ISVNLog.DEST_ATTR));            SVNFileUtil.rename(src, dst);        } else if (ISVNLog.APPEND.equals(name)) {            File src = adminArea.getFile(fileName);            File dst = adminArea.getFile((String) attributes.get(ISVNLog.DEST_ATTR));            OutputStream os = null;            InputStream is = null;            try {                os = SVNFileUtil.openFileForWriting(dst, true);                is = SVNFileUtil.openFileForReading(src);                while (true) {                    int r = is.read();                    if (r < 0) {                        break;                    }                    os.write(r);                }            } catch (IOException e) {                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.IO_ERROR, "Cannot write to ''{0}'': {1}", new Object[] {dst, e.getLocalizedMessage()});                SVNErrorManager.error(err, e);            } finally {                SVNFileUtil.closeFile(os);                SVNFileUtil.closeFile(is);            }        } else if (ISVNLog.SET_TIMESTAMP.equals(name)) {            File file = adminArea.getFile(fileName);            String timestamp = (String) attributes.get(ISVNLog.TIMESTAMP_ATTR);            if (timestamp == null) {                            }            Date time = SVNTimeUtil.parseDate(timestamp);            file.setLastModified(time.getTime());        } else if (ISVNLog.MAYBE_READONLY.equals(name)) {        } else if (ISVNLog.COPY_AND_TRANSLATE.equals(name)) {        } else if (ISVNLog.COPY_AND_DETRANSLATE.equals(name)) {        } else if (ISVNLog.COPY.equals(name)) {                    } else if (ISVNLog.MERGE.equals(name)) {        } else if (ISVNLog.COMMIT.equals(name)) {        }    }