diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-26 00:00:39 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-26 00:00:39 +0200 |
commit | 46f4a1ab39a6a2c5748624a213e4656633784813 (patch) | |
tree | 3c13703809c0991d89646268682bbf4c8df00530 /vespa_feed_perf | |
parent | 5292bf9c9ed850768d42bea5db374dffe844ce14 (diff) |
Wait for all bytes to arrive.
Diffstat (limited to 'vespa_feed_perf')
-rw-r--r-- | vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java index 37b7a85949e..dbb109aab0a 100644 --- a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java +++ b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java @@ -30,8 +30,6 @@ import com.yahoo.messagebus.SourceSessionParams; import com.yahoo.messagebus.StaticThrottlePolicy; import com.yahoo.messagebus.network.rpc.RPCNetworkParams; import com.yahoo.messagebus.routing.Route; -import com.yahoo.vespaxmlparser.DocumentFeedOperation; -import com.yahoo.vespaxmlparser.DocumentUpdateFeedOperation; import com.yahoo.vespaxmlparser.FeedReader; import com.yahoo.vespaxmlparser.FeedOperation; import com.yahoo.vespaxmlparser.RemoveFeedOperation; @@ -214,6 +212,10 @@ public class SimpleFeeder implements ReplyHandler { } } + private static int readExact(InputStream in, byte [] buf) throws IOException { + return in.readNBytes(buf, 0, buf.length); + } + static class VespaV1FeedReader implements FeedReader { private final InputStream in; private final DocumentTypeManager mgr; @@ -222,7 +224,7 @@ public class SimpleFeeder implements ReplyHandler { this.in = in; this.mgr = mgr; byte [] header = new byte[2]; - int read = in.read(header); + int read = readExact(in, header); if ((read != header.length) || (header[0] != 'V') || (header[1] != '1')) { throw new IllegalArgumentException("Invalid Header " + Arrays.toString(header)); } @@ -254,7 +256,7 @@ public class SimpleFeeder implements ReplyHandler { } @Override public FeedOperation read() throws Exception { - int read = in.read(prefix); + int read = readExact(in, prefix); if (read != prefix.length) { return FeedOperation.INVALID; } @@ -263,7 +265,7 @@ public class SimpleFeeder implements ReplyHandler { int type = header.getInt(); long hash = header.getLong(); byte [] blob = new byte[sz]; - read = in.read(blob); + read = readExact(in, blob); if (read != blob.length) { throw new IllegalArgumentException("Underflow, failed reading " + blob.length + "bytes. Got " + read); } @@ -310,7 +312,7 @@ public class SimpleFeeder implements ReplyHandler { private FeedReader createFeedReader() throws Exception { in.mark(8); byte [] b = new byte[2]; - int numRead = in.read(b); + int numRead = readExact(in, b); in.reset(); if (numRead != b.length) { throw new IllegalArgumentException("Need to read " + b.length + " bytes to detect format. Got " + numRead + " bytes."); |