Skip to content

Commit

Permalink
implement mark() in class FilterStreamInput (opensearch-project#13098)
Browse files Browse the repository at this point in the history
* implement mark() in class FilterStreamInput

Signed-off-by: kkewwei <kkewwei@163.com>

* implement markSupported() in class FilterStreamInput

Signed-off-by: kkewwei <kkewwei@163.com>

* add CHANGELOG

Signed-off-by: kkewwei <kkewwei@163.com>

---------

Signed-off-by: kkewwei <kkewwei@163.com>
Signed-off-by: Shivansh Arora <hishiv@amazon.com>
  • Loading branch information
kkewwei authored and shiv0408 committed Apr 25, 2024
1 parent 929b9f4 commit 55cf7dd
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fix bulk API ignores ingest pipeline for upsert ([#12883](https://github.com/opensearch-project/OpenSearch/pull/12883))
- Fix issue with feature flags where default value may not be honored ([#12849](https://github.com/opensearch-project/OpenSearch/pull/12849))
- Fix UOE While building Exists query for nested search_as_you_type field ([#12048](https://github.com/opensearch-project/OpenSearch/pull/12048))
- Client with Java 8 runtime and Apache HttpClient 5 Transport fails with java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer ([#13100](https://github.com/opensearch-project/opensearch-java/pull/13100))
- Client with Java 8 runtime and Apache HttpClient 5 Transport fails with java.lang.NoSuchMethodError: java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer ([#13100](https://github.com/opensearch-project/opensearch-java/pull/13100))
- Fix implement mark() and markSupported() in class FilterStreamInput ([#13098](https://github.com/opensearch-project/OpenSearch/pull/13098))

### Security

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,16 @@ public void reset() throws IOException {
delegate.reset();
}

@Override
public void mark(int readlimit) {
delegate.mark(readlimit);
}

@Override
public boolean markSupported() {
return delegate.markSupported();
}

@Override
public int read() throws IOException {
return delegate.read();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
import org.opensearch.core.common.bytes.BytesReference;

import java.io.IOException;
import java.nio.ByteBuffer;

import static org.hamcrest.Matchers.is;

/** test the FilterStreamInput using the same BaseStreamTests */
public class FilterStreamInputTests extends BaseStreamTests {
Expand All @@ -21,4 +24,24 @@ protected StreamInput getStreamInput(BytesReference bytesReference) throws IOExc
return new FilterStreamInput(StreamInput.wrap(br.bytes, br.offset, br.length)) {
};
}

public void testMarkAndReset() throws IOException {
FilterStreamInputTests filterStreamInputTests = new FilterStreamInputTests();

ByteBuffer buffer = ByteBuffer.wrap(new byte[20]);
for (int i = 0; i < buffer.limit(); i++) {
buffer.put((byte) i);
}
buffer.rewind();
BytesReference bytesReference = BytesReference.fromByteBuffer(buffer);
StreamInput streamInput = filterStreamInputTests.getStreamInput(bytesReference);
streamInput.read();
assertThat(streamInput.markSupported(), is(true));
streamInput.mark(-1);
int int1 = streamInput.read();
int int2 = streamInput.read();
streamInput.reset();
assertEquals(int1, streamInput.read());
assertEquals(int2, streamInput.read());
}
}

0 comments on commit 55cf7dd

Please sign in to comment.