SVNDebugLog.log(th);
SVNDebugLog.logInfo(th);
    private void handleExternals(SVNWCAccess wcAccess) {        setDoNotSleepForTimeStamp(true);        try {            for (Iterator externals = wcAccess.externals(); externals.hasNext();) {                SVNExternalInfo external = (SVNExternalInfo) externals.next();                if (external.getOldURL() == null && external.getNewURL() == null) {                    continue;                }                long revNumber = external.getNewRevision();                SVNRevision revision = revNumber >= 0 ? SVNRevision.create(revNumber) : SVNRevision.HEAD;                setEventPathPrefix(external.getPath());                try {                    if (external.getOldURL() == null) {                        external.getFile().mkdirs();                        dispatchEvent(SVNEventFactory.createUpdateExternalEvent(wcAccess, ""));                        doCheckout(external.getNewURL(), external.getFile(), revision, revision, true);                    } else if (external.getNewURL() == null) {                        if (SVNWCAccess.isVersionedDirectory(external.getFile())) {                            SVNWCAccess externalAccess = createWCAccess(external.getFile());                            externalAccess.open(true, true);                            externalAccess.getAnchor().destroy("", true);                            externalAccess.close(true);                        }                    } else if (external.isModified()) {                        deleteExternal(external);                        external.getFile().mkdirs();                        dispatchEvent(SVNEventFactory.createUpdateExternalEvent(wcAccess, ""));                        doCheckout(external.getNewURL(), external.getFile(), revision, revision, true);                    } else {                        if (!external.getFile().isDirectory()) {                            external.getFile().mkdirs();                            doCheckout(external.getNewURL(), external.getFile(), revision, revision, true);                        } else {                            String url = null;                            if (SVNWCAccess.isVersionedDirectory(external                                    .getFile())) {                                SVNWCAccess externalAccess = createWCAccess(external.getFile());                                url = externalAccess.getTargetEntryProperty(SVNProperty.URL);                            }                            if (!external.getNewURL().toString().equals(url)) {                                deleteExternal(external);                            }                            // update or checkout.                            external.getFile().mkdirs();                            dispatchEvent(SVNEventFactory.createUpdateExternalEvent(wcAccess, ""));                            doCheckout(external.getNewURL(), external.getFile(), revision, revision, true);                        }                    }                } catch (Throwable th) {                    dispatchEvent(new SVNEvent(th.getMessage()));                    SVNDebugLog.log(th);                } finally {                    setEventPathPrefix(null);                }            }        } finally {            setEventPathPrefix(null);            setDoNotSleepForTimeStamp(false);        }    }