if(switchURL.toString().indexOf(reposRootURL.toString()) == -1){
if(switchURL.toDecodedString().indexOf(reposRootURL.toDecodedString()) == -1){
    private void makeReporterContext(long targetRevision, File reportFile, String target, SVNURL switchURL, boolean recursive, boolean ignoreAncestry, boolean textDeltas, ISVNEditor editor) throws SVNException{        target = target == null ? "" : target;        if (!isValidRevision(targetRevision)) {            targetRevision = FSReader.getYoungestRevision(myReposRootDir);        }        /* If switchURL was provided, validate it and convert it into a         * regular filesystem path.          */        String switchPath = null;        if(switchURL != null){            /* Sanity check:  the switchURL better be in the same repository              * as the original session url!              */            SVNURL reposRootURL = getRepositoryRoot(false);            if(switchURL.toString().indexOf(reposRootURL.toString()) == -1){                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.RA_ILLEGAL_URL, "''{0}''\nis not the same repository as\n''{1}''", new Object[]{switchURL, getRepositoryRoot(false)});                SVNErrorManager.error(err);            }            switchPath = switchURL.toString().substring(reposRootURL.toString().length());        }        String anchor = getRepositoryPath("");        String fullTargetPath = switchPath != null ? switchPath : SVNPathUtil.concatToAbs(anchor, target);        myReporterContext = new FSReporterContext(targetRevision, reportFile, target, fullTargetPath, switchURL == null ? false : true, recursive, ignoreAncestry, textDeltas, editor);    }