if (props != null && props.get(SVNRevisionProperty.AUTHOR) != null) {
if (known && props != null && props.get(SVNRevisionProperty.AUTHOR) != null) {
    public void handleFileRevision(SVNFileRevision fileRevision) throws SVNException {        Map propDiff = fileRevision.getPropertiesDelta();        String newMimeType = (String) (propDiff != null ? propDiff.get(SVNProperty.MIME_TYPE) : null);        if (SVNProperty.isBinaryMimeType(newMimeType)) {            SVNErrorManager.error("svn: Cannot calculate blame information for binary file '" + myPath + "'");        }        myCurrentRevision = fileRevision.getRevision();        if (myCancelBaton != null) {            SVNEvent event = SVNEventFactory.createAnnotateEvent(myPath, myCurrentRevision);            myCancelBaton.handleEvent(event, ISVNEventHandler.UNKNOWN);            myCancelBaton.checkCancelled();        }        Map props = fileRevision.getProperties();        if (props != null && props.get(SVNRevisionProperty.AUTHOR) != null) {            myCurrentAuthor = props.get(SVNRevisionProperty.AUTHOR).toString();        } else {            myCurrentAuthor = null;        }        if (props != null && props.get(SVNRevisionProperty.DATE) != null) {            myCurrentDate = SVNTimeUtil.parseDate(fileRevision.getProperties().get(SVNRevisionProperty.DATE).toString());        } else {            myCurrentDate = null;        }        if (myPreviousFile == null) {            // create previous file.            myPreviousFile = SVNFileUtil.createUniqueFile(myTmpDirectory, "annotate", ".tmp");            SVNFileUtil.createEmptyFile(myPreviousFile);        }        if (myCurrentFile != null) {            myCurrentFile.delete();        } else {            myCurrentFile = SVNFileUtil.createUniqueFile(myTmpDirectory, "annotate", ".tmp");;        }        myDeltaProcessor.applyTextDelta(myPreviousFile, myCurrentFile, false);    }