diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDataHolder.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDataHolder.java index dfc6320f6918..547bb248dd48 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDataHolder.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogDataHolder.java @@ -298,12 +298,14 @@ public class VcsLogDataHolder implements Disposable { } private List compactHashes(List commits) { - return ContainerUtil.map(commits, new Function() { + List compactedHashes = ContainerUtil.map(commits, new Function() { @Override public CompactCommit fun(final TimedVcsCommit commit) { return commit instanceof CompactCommit ? (CompactCommit)commit : new CompactCommit(commit); } }); + myHashMap.flush(); + return compactedHashes; } /** @@ -600,12 +602,14 @@ public class VcsLogDataHolder implements Disposable { } private List getCommitsFromDetails(List firstBlockDetails) { - return ContainerUtil.map(firstBlockDetails, new Function() { + List commits = ContainerUtil.map(firstBlockDetails, new Function() { @Override public TimedVcsCommit fun(VcsFullCommitDetails details) { return new CompactCommit(details.getHash(), details.getParents(), details.getTime()); } }); + myHashMap.flush(); + return commits; } private void runInBackground(final ThrowableConsumer task, final String title) { diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogHashMap.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogHashMap.java index 11f7540afd3e..26a26725fd90 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogHashMap.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/data/VcsLogHashMap.java @@ -63,6 +63,10 @@ class VcsLogHashMap implements Disposable { return myPersistentEnumerator.enumerate(hash); } + void flush() { + myPersistentEnumerator.force(); + } + @Override public void dispose() { try {