Skip to content

Commit 5174f99

Browse files
wee
1 parent 2fc52ae commit 5174f99

File tree

6 files changed

+33
-2
lines changed

6 files changed

+33
-2
lines changed

server/src/main/java/org/elasticsearch/common/bytes/ReleasableBytesReference.java

+6
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,12 @@ public ReleasableBytesReference readReleasableBytesReference() throws IOExceptio
178178
return retainAndSkip(len);
179179
}
180180

181+
@Override
182+
public ReleasableBytesReference readReleasableBytesReference2() throws IOException {
183+
final int len = readInt();
184+
return retainAndSkip(len);
185+
}
186+
181187
@Override
182188
public ReleasableBytesReference readAllToReleasableBytesReference() throws IOException {
183189
return retainAndSkip(length() - offset());

server/src/main/java/org/elasticsearch/common/io/stream/DelayableWriteable.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private Referencing(T reference) {
109109
@Override
110110
public void writeTo(StreamOutput out) throws IOException {
111111
if (out.getTransportVersion().onOrAfter(TransportVersions.COMPRESS_DELAYABLE_WRITEABLE)) {
112-
out.writeWithSizePrefixAndCompressed(reference);
112+
out.writeWithSizePrefix2(reference);
113113
} else {
114114
out.writeWithSizePrefix(reference);
115115
}

server/src/main/java/org/elasticsearch/common/io/stream/FilterStreamInput.java

+5
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ public ReleasableBytesReference readReleasableBytesReference() throws IOExceptio
4747
return delegate.readReleasableBytesReference();
4848
}
4949

50+
@Override
51+
public ReleasableBytesReference readReleasableBytesReference2() throws IOException {
52+
return delegate.readReleasableBytesReference2();
53+
}
54+
5055
@Override
5156
public boolean supportReadAllToReleasableBytesReference() {
5257
return delegate.supportReadAllToReleasableBytesReference();

server/src/main/java/org/elasticsearch/common/io/stream/RecyclerBytesStreamOutput.java

+16
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@
1313
import org.elasticsearch.common.bytes.BytesArray;
1414
import org.elasticsearch.common.bytes.BytesReference;
1515
import org.elasticsearch.common.bytes.CompositeBytesReference;
16+
import org.elasticsearch.common.compress.CompressorFactory;
1617
import org.elasticsearch.common.recycler.Recycler;
1718
import org.elasticsearch.core.Releasable;
1819
import org.elasticsearch.core.Releasables;
20+
import org.elasticsearch.core.Streams;
1921

2022
import java.io.ByteArrayOutputStream;
2123
import java.io.IOException;
@@ -177,6 +179,20 @@ public void writeWithSizePrefix(Writeable writeable) throws IOException {
177179
}
178180
}
179181

182+
@Override
183+
public void writeWithSizePrefix2(Writeable writeable) throws IOException {
184+
long pos = position();
185+
skip(Integer.BYTES);
186+
try (var out = new OutputStreamStreamOutput(CompressorFactory.COMPRESSOR.threadLocalOutputStream(Streams.noCloseStream(this)))) {
187+
out.setTransportVersion(getTransportVersion());
188+
writeable.writeTo(out);
189+
}
190+
long newPos = position();
191+
seek(pos);
192+
writeInt(Math.toIntExact(newPos - pos - Integer.BYTES));
193+
seek(newPos);
194+
}
195+
180196
// overridden with some code duplication the same way other write methods in this class are overridden to bypass StreamOutput's
181197
// intermediary buffers
182198
@Override

server/src/main/java/org/elasticsearch/common/io/stream/StreamInput.java

+4
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ public BytesReference readSlicedBytesReference() throws IOException {
142142
return readBytesReference();
143143
}
144144

145+
public BytesReference readSlicedBytesReference(int bytes) throws IOException {
146+
return readBytesReference(bytes);
147+
}
148+
145149
/**
146150
* Checks if this {@link InputStream} supports {@link #readAllToReleasableBytesReference()}.
147151
*/

server/src/main/java/org/elasticsearch/common/io/stream/StreamOutput.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public void writeWithSizePrefix(Writeable writeable) throws IOException {
146146
*
147147
* @param writeable {@link Writeable} to serialize
148148
*/
149-
public void writeWithSizePrefixAndCompressed(Writeable writeable) throws IOException {
149+
public void writeWithSizePrefix2(Writeable writeable) throws IOException {
150150
final BytesStreamOutput tmp = new BytesStreamOutput();
151151
try (var o = new OutputStreamStreamOutput(CompressorFactory.COMPRESSOR.threadLocalOutputStream(tmp))) {
152152
o.setTransportVersion(version);

0 commit comments

Comments
 (0)