From 69bd4f463ab7d0f69d0e19f5028444098be333d8 Mon Sep 17 00:00:00 2001 From: andsel Date: Tue, 28 Jan 2025 13:10:23 +0100 Subject: [PATCH] Switch from RubyArray addAll to concat method to preserve the encoding and avoid implicit deconding in addAll iterator --- .../main/java/org/logstash/common/BufferedTokenizerExt.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/logstash-core/src/main/java/org/logstash/common/BufferedTokenizerExt.java b/logstash-core/src/main/java/org/logstash/common/BufferedTokenizerExt.java index 0d285f936ca..0b21d60389b 100644 --- a/logstash-core/src/main/java/org/logstash/common/BufferedTokenizerExt.java +++ b/logstash-core/src/main/java/org/logstash/common/BufferedTokenizerExt.java @@ -85,7 +85,7 @@ public RubyArray extract(final ThreadContext context, IRubyObject data) { final RubyArray entities = data.convertToString().split(delimiter, -1); if (!bufferFullErrorNotified) { input.clear(); - input.addAll(entities); + input.concat(entities); } else { // after a full buffer signal if (input.isEmpty()) { @@ -93,14 +93,14 @@ public RubyArray extract(final ThreadContext context, IRubyObject data) { // has to be consumed, unless the input buffer doesn't still contain fragments of // subsequent tokens. entities.shift(context); - input.addAll(entities); + input.concat(entities); } else { // merge last of the input with first of incoming data segment if (!entities.isEmpty()) { RubyString last = ((RubyString) input.pop(context)); RubyString nextFirst = ((RubyString) entities.shift(context)); entities.unshift(last.concat(nextFirst)); - input.addAll(entities); + input.concat(entities); } } }