if(copyfromEntry != null){
if(copyfromEntry != null && copyfromEntry.getPath() != null && copyfromEntry.getRevision() != FSConstants.SVN_INVALID_REVNUM){
    public static void writeChangeEntry(OutputStream changesFile, String path, FSPathChange pathChange, SVNLocationEntry copyfromEntry) throws SVNException, IOException {        FSPathChangeKind changeKind = pathChange.getChangeKind();        if(!(changeKind == FSPathChangeKind.FS_PATH_CHANGE_ADD || changeKind == FSPathChangeKind.FS_PATH_CHANGE_DELETE ||              changeKind == FSPathChangeKind.FS_PATH_CHANGE_MODIFY || changeKind == FSPathChangeKind.FS_PATH_CHANGE_REPLACE || changeKind == FSPathChangeKind.FS_PATH_CHANGE_RESET)){            SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.FS_CORRUPT, "Invalid change type");            SVNErrorManager.error(err);        }        String changeString = changeKind.toString();        String idString = null;        if(pathChange.getRevNodeId() != null){            idString = pathChange.getRevNodeId().toString();        }else{            idString = FSConstants.ACTION_RESET;        }        String output = idString + " " + changeString + " " + SVNProperty.toString(pathChange.isTextModified()) + " " + SVNProperty.toString(pathChange.arePropertiesModified()) + " " + path + "\n";         changesFile.write(output.getBytes());        if(copyfromEntry != null){            String copyfromLine = copyfromEntry.getRevision() + " " + copyfromEntry.getPath();            changesFile.write(copyfromLine.getBytes());        }        changesFile.write("\n".getBytes());    }