Skip to content

Commit

Permalink
Fallback to plain if json data is not a hash map
Browse files Browse the repository at this point in the history
  • Loading branch information
nabam authored and Lev Popov committed Jun 8, 2015
1 parent 0c8d5df commit 0e5eaf7
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion lib/logstash/codecs/json.rb
Expand Up @@ -32,7 +32,10 @@ def register
def decode(data)
data = @converter.convert(data)
begin
yield LogStash::Event.new(LogStash::Json.load(data))
json = LogStash::Json.load(data)
# Event constructor handles only hash maps
raise LogStash::Json::ParserError, "JSON data doesn't represent a hash map" unless json.respond_to?("keys")
yield LogStash::Event.new(json)
rescue LogStash::Json::ParserError => e
@logger.info("JSON parse failure. Falling back to plain-text", :error => e, :data => data)
yield LogStash::Event.new("message" => data, "tags" => ["_jsonparsefailure"])
Expand Down

0 comments on commit 0e5eaf7

Please sign in to comment.