String pathStr = piecesOfLine[4];
String pathStr = piecesOfChangeLine[4];
    public static FSChange readChange(RandomAccessFile raReader) throws SVNException {        String line = null;        try{            line = FSReader.readNextLine(raReader, 4096);        }catch(SVNException svne){            /* Check for a blank line. */            if(svne.getErrorMessage().getErrorCode() == SVNErrorCode.STREAM_UNEXPECTED_EOF){                return null;            }            throw svne;        }        /* Check for a blank line. */        if(line.length() == 0){            return null;        }                String [] piecesOfLine = line.split(" ");        if(piecesOfLine == null || piecesOfLine.length < 5){            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid changes line in rev-file");            SVNErrorManager.error(err);        }        /* Get the node-id of the change. */        String nodeRevStr = piecesOfLine[0];        FSID nodeRevID = parseID(nodeRevStr);        /* Get the change type. */        String changesKindStr = piecesOfLine[1];        FSPathChangeKind changesKind = (FSPathChangeKind)FSConstants.ACTIONS_TO_CHANGE_KINDS.get(changesKindStr);        if(changesKind == null){            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid change kind in rev file");            SVNErrorManager.error(err);        }        /* Get the text-mod flag. */        String textModeStr = piecesOfLine[2];        boolean textModeBool = false;        if(textModeStr.equals(FSConstants.FLAG_TRUE)){            textModeBool = true;        }else if(textModeStr.equals(FSConstants.FLAG_FALSE)){            textModeBool = false;        }else{            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid text-mod flag in rev-file");            SVNErrorManager.error(err);        }        /* Get the prop-mod flag. */        String propModeStr = piecesOfLine[3];        boolean propModeBool = false;        if(propModeStr.equals(new String(FSConstants.FLAG_TRUE))){            propModeBool = true;        }else if(propModeStr.equals(new String(FSConstants.FLAG_FALSE))){            propModeBool = false;        } else{            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid prop-mod flag in rev-file");            SVNErrorManager.error(err);        }        /* Get the changed path. */        String pathStr = piecesOfLine[4];        /* Read the next line, the copyfrom line. */        String nextLine = FSReader.readNextLine(raReader, 4096);        SVNLocationEntry copyfromEntry = null;        if(nextLine.length() == 0){            copyfromEntry = new SVNLocationEntry(FSConstants.SVN_INVALID_REVNUM, null);        }else{            String [] piecesOfNextLine = nextLine.split(" ");            if(piecesOfNextLine == null || piecesOfNextLine.length < 2){                SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid changes line in rev-file");                SVNErrorManager.error(err);            }            copyfromEntry = new SVNLocationEntry(Long.parseLong(piecesOfNextLine[0]), piecesOfNextLine[1]);        }        return new FSChange(new String(pathStr), new FSID(nodeRevID), changesKind, textModeBool, propModeBool, copyfromEntry);    }