diff options
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java')
-rw-r--r-- | bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java index 3fef57d03..2a8a16bf7 100644 --- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java +++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/processors/checksum/MessageDigestProcessingStep.java @@ -11,7 +11,6 @@ package org.eclipse.equinox.internal.p2.artifact.processors.checksum; import java.io.IOException; -import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.security.MessageDigest; import org.eclipse.equinox.internal.p2.repository.helpers.ChecksumHelper; @@ -31,13 +30,12 @@ public abstract class MessageDigestProcessingStep extends ProcessingStep { public void write(int b) throws IOException { getDestination().write(b); - // TODO exceptions are expensive - try { - buffer.put((byte) b); - } catch (BufferOverflowException e) { + boolean isBufferFull = buffer.remaining() == 0; + if (isBufferFull) { processBufferredBytes(); - buffer.put((byte) b); } + + buffer.put((byte) b); } private void processBufferredBytes() { |