aboutsummaryrefslogtreecommitdiffstats
path: root/vespa_feed_perf
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-26 00:00:39 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-26 00:00:39 +0200
commit46f4a1ab39a6a2c5748624a213e4656633784813 (patch)
tree3c13703809c0991d89646268682bbf4c8df00530 /vespa_feed_perf
parent5292bf9c9ed850768d42bea5db374dffe844ce14 (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.java14
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.");