Skip to content

Commit 3af9df1

Browse files
committed
works with ByteBuffers not backed by arrays
1 parent e6371c9 commit 3af9df1

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

src/main/java/org/logstash/javaapi/JavaCodecExample.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.nio.charset.CoderResult;
1616
import java.util.Collection;
1717
import java.util.Collections;
18+
import java.util.HashMap;
1819
import java.util.Map;
1920
import java.util.UUID;
2021
import java.util.function.Consumer;
@@ -46,12 +47,15 @@ private JavaCodecExample(String delimiter) {
4647
@Override
4748
public void decode(ByteBuffer byteBuffer, Consumer<Map<String, Object>> consumer) {
4849
// a not-production-grade delimiter decoder
49-
byte[] byteInput = byteBuffer.array();
50+
byte[] byteInput = new byte[byteBuffer.remaining()];
51+
byteBuffer.get(byteInput);
5052
if (byteInput.length > 0) {
51-
String input = new String(byteBuffer.array());
53+
String input = new String(byteInput);
5254
String[] split = input.split(delimiter);
5355
for (String s : split) {
54-
consumer.accept(Collections.singletonMap("message", s));
56+
Map<String, Object> map = new HashMap<>();
57+
map.put("message", s);
58+
consumer.accept(map);
5559
}
5660
}
5761
}

0 commit comments

Comments
 (0)