diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java index 31875a4f3e6c566981a37d253f0e3812a9b339e6..7b7a0a59d8776086031a6754bebd3671a1fc84a5 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java @@ -124,8 +124,6 @@ class MessageInputStream extends InputStream { public boolean canAccept(long messageId, int payloadSize) { if (payloadSize <= 0) return true; - if (messageId < MIN_READY_BUFFERS) - return true; synchronized (_dataLock) { // ready dup check // we always allow sequence numbers less than or equal to highest received @@ -136,6 +134,8 @@ class MessageInputStream extends InputStream { // return true if a not-ready dup, false if not return _notYetReadyBlocks.containsKey(Long.valueOf(messageId)); } + if (messageId < MIN_READY_BUFFERS) + return true; // shortcut test, assuming all ready and not ready blocks are max size, // to avoid iterating through all the ready blocks in getTotalReadySize() if ((_readyDataBlocks.size() + _notYetReadyBlocks.size()) * _maxMessageSize < _maxBufferSize)