From 85e03b4fe6960e1a848b3e6684eb702860934a72 Mon Sep 17 00:00:00 2001 From: "Maxim.Mossienko" Date: Mon, 19 Aug 2013 11:55:49 +0200 Subject: [PATCH] larger buffer size for iterateData, avoif native available calls --- .../src/com/intellij/util/io/LimitedInputStream.java | 4 ++++ .../src/com/intellij/util/io/PersistentEnumeratorBase.java | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/platform/util-rt/src/com/intellij/util/io/LimitedInputStream.java b/platform/util-rt/src/com/intellij/util/io/LimitedInputStream.java index bc0f868a83a4..607d0d41088e 100644 --- a/platform/util-rt/src/com/intellij/util/io/LimitedInputStream.java +++ b/platform/util-rt/src/com/intellij/util/io/LimitedInputStream.java @@ -72,6 +72,10 @@ public class LimitedInputStream extends FilterInputStream { return Math.min(super.available(), myReadLimit - myBytesRead); } + protected int remainingLimit() { + return myReadLimit - myBytesRead; + } + public synchronized void mark(final int readLimit) { throw new UnsupportedOperationException(); } diff --git a/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java b/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java index 363a75bfd123..172e74a7b81c 100644 --- a/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java +++ b/platform/util/src/com/intellij/util/io/PersistentEnumeratorBase.java @@ -509,7 +509,12 @@ abstract class PersistentEnumeratorBase implements Forceable, Closeable { myKeyStorage.force(); DataInputStream keysStream = new DataInputStream(new BufferedInputStream(new LimitedInputStream(new FileInputStream(keystreamFile()), - myKeyStoreFileLength))); + myKeyStoreFileLength) { + @Override + public int available() throws IOException { + return remainingLimit(); + } + }, 32768)); try { try { while (true) {