}
}
private SVNLogEntry fillLogEntry(long revision) throws SVNException {
Map changedPaths = null;
SVNProperties entryRevProps = null;
boolean getRevProps = true;
boolean censorRevProps = false;
if (revision > 0 && myIsDiscoverChangedPaths) {
FSRevisionRoot root = myFSFS.createRevisionRoot(revision);
changedPaths = root.detectChanged();
}
//TODO: add autz check code later
if (getRevProps) {
SVNProperties revisionProps = myFSFS.getRevisionProperties(revision);
if (revisionProps != null) {
String author = revisionProps.getStringValue(SVNRevisionProperty.AUTHOR);
String datestamp = revisionProps.getStringValue(SVNRevisionProperty.DATE);
Date date = datestamp != null ? SVNDate.parseDateString(datestamp) : null;
if (myRevPropNames == null || myRevPropNames.length == 0) {
if (censorRevProps) {
entryRevProps = new SVNProperties();
if (author != null) {
entryRevProps.put(SVNRevisionProperty.AUTHOR, author);
}
if (date != null) {
entryRevProps.put(SVNRevisionProperty.DATE, SVNDate.formatDate(date));
}
} else {
entryRevProps = revisionProps;
if (date != null) {
entryRevProps.put(SVNRevisionProperty.DATE, SVNDate.formatDate(date));
}
}
} else {
for (int i = 0; i < myRevPropNames.length; i++) {
String propName = myRevPropNames[i];
SVNPropertyValue propVal = revisionProps.getSVNPropertyValue(propName);
if (censorRevProps && !SVNRevisionProperty.AUTHOR.equals(propName) &&
!SVNRevisionProperty.DATE.equals(propName)) {
continue;
}
if (entryRevProps == null) {
entryRevProps = new SVNProperties();
}
if (SVNRevisionProperty.DATE.equals(propName) && date != null) {
entryRevProps.put(propName, SVNDate.formatDate(date));
} else if (propVal != null) {
entryRevProps.put(propName, propVal);
}
}
}
}
}
if (changedPaths == null) {
changedPaths = new SVNHashMap();
}
if (entryRevProps == null) {
entryRevProps = new SVNProperties();
}
SVNLogEntry entry = new SVNLogEntry(changedPaths, revision, entryRevProps, false);
return entry;
}