diff --git a/logstash-core/lib/logstash/json.rb b/logstash-core/lib/logstash/json.rb index c75165a48ad..33debfa1000 100644 --- a/logstash-core/lib/logstash/json.rb +++ b/logstash-core/lib/logstash/json.rb @@ -56,7 +56,8 @@ def normalize_encoding(data) data.map { |item| normalize_encoding(item) } when Hash # origin key might change when normalizing, so requires transformation - data.transform_keys { |key| normalize_encoding(key) } + modifiable_hash = data.to_hash # if coming from jruby objects such as UnmodifiableMap + modifiable_hash.transform_keys { |key| normalize_encoding(key) } .transform_values { |value| normalize_encoding(value) } else data # use as it is