Revert "HBASE-19651 Remove LimitInputStream"
Revert to fix author.
This reverts commit 4c19e1f4e3
.
This commit is contained in:
parent
4c19e1f4e3
commit
e7da907c3c
|
@ -39,6 +39,7 @@ Licensed under the Apache License v2.0 as a part of the Bootstrap project.
|
||||||
|
|
||||||
--
|
--
|
||||||
This product includes portions of the Guava project v14 and v21, specifically
|
This product includes portions of the Guava project v14 and v21, specifically
|
||||||
|
'hbase-common/src/main/java/org/apache/hadoop/hbase/io/LimitInputStream.java'
|
||||||
'hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java'
|
'hbase-common/src/main/java/org/apache/hadoop/hbase/util/Bytes.java'
|
||||||
'hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java'
|
'hbase-common/src/main/java/org/apache/hadoop/hbase/util/ByteBufferUtils.java'
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,6 @@ import org.apache.hadoop.hbase.util.VersionInfo;
|
||||||
import org.apache.hadoop.ipc.RemoteException;
|
import org.apache.hadoop.ipc.RemoteException;
|
||||||
import org.apache.yetus.audience.InterfaceAudience;
|
import org.apache.yetus.audience.InterfaceAudience;
|
||||||
|
|
||||||
import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;
|
|
||||||
import org.apache.hbase.thirdparty.com.google.gson.JsonArray;
|
import org.apache.hbase.thirdparty.com.google.gson.JsonArray;
|
||||||
import org.apache.hbase.thirdparty.com.google.gson.JsonElement;
|
import org.apache.hbase.thirdparty.com.google.gson.JsonElement;
|
||||||
import org.apache.hbase.thirdparty.com.google.protobuf.ByteString;
|
import org.apache.hbase.thirdparty.com.google.protobuf.ByteString;
|
||||||
|
@ -2610,7 +2609,7 @@ public final class ProtobufUtil {
|
||||||
final int firstByte = in.read();
|
final int firstByte = in.read();
|
||||||
if (firstByte != -1) {
|
if (firstByte != -1) {
|
||||||
final int size = CodedInputStream.readRawVarint32(firstByte, in);
|
final int size = CodedInputStream.readRawVarint32(firstByte, in);
|
||||||
final InputStream limitedInput = ByteStreams.limit(in, size);
|
final InputStream limitedInput = new BoundedInputStream(in, size);
|
||||||
final CodedInputStream codedInput = CodedInputStream.newInstance(limitedInput);
|
final CodedInputStream codedInput = CodedInputStream.newInstance(limitedInput);
|
||||||
codedInput.setSizeLimit(size);
|
codedInput.setSizeLimit(size);
|
||||||
builder.mergeFrom(codedInput);
|
builder.mergeFrom(codedInput);
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
--
|
||||||
|
This product includes portions of the Guava project v14, specifically
|
||||||
|
'hbase-common/src/main/java/org/apache/hadoop/hbase/io/LimitInputStream.java'
|
||||||
|
|
||||||
|
Copyright (C) 2007 The Guava Authors
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0
|
|
@ -26,6 +26,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.io.input.BoundedInputStream;
|
||||||
import org.apache.hadoop.conf.Configuration;
|
import org.apache.hadoop.conf.Configuration;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
|
@ -40,11 +41,9 @@ import org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.WALTrailer;
|
||||||
import org.apache.hadoop.hbase.util.Bytes;
|
import org.apache.hadoop.hbase.util.Bytes;
|
||||||
import org.apache.hadoop.hbase.wal.WAL.Entry;
|
import org.apache.hadoop.hbase.wal.WAL.Entry;
|
||||||
import org.apache.yetus.audience.InterfaceAudience;
|
import org.apache.yetus.audience.InterfaceAudience;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import org.apache.hbase.thirdparty.com.google.common.io.ByteStreams;
|
|
||||||
import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
|
import org.apache.hbase.thirdparty.com.google.protobuf.CodedInputStream;
|
||||||
import org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
|
import org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException;
|
||||||
|
|
||||||
|
@ -351,7 +350,7 @@ public class ProtobufLogReader extends ReaderBase {
|
||||||
"inputStream.available()= " + this.inputStream.available() + ", " +
|
"inputStream.available()= " + this.inputStream.available() + ", " +
|
||||||
"entry size= " + size + " at offset = " + this.inputStream.getPos());
|
"entry size= " + size + " at offset = " + this.inputStream.getPos());
|
||||||
}
|
}
|
||||||
ProtobufUtil.mergeFrom(builder, ByteStreams.limit(this.inputStream, size),
|
ProtobufUtil.mergeFrom(builder, new BoundedInputStream(this.inputStream, size),
|
||||||
(int)size);
|
(int)size);
|
||||||
} catch (InvalidProtocolBufferException ipbe) {
|
} catch (InvalidProtocolBufferException ipbe) {
|
||||||
throw (EOFException) new EOFException("Invalid PB, EOF? Ignoring; originalPosition=" +
|
throw (EOFException) new EOFException("Invalid PB, EOF? Ignoring; originalPosition=" +
|
||||||
|
|
Loading…
Reference in New Issue