[ 
https://issues.apache.org/jira/browse/FLUME-987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213173#comment-13213173
 ] 

[email protected] commented on FLUME-987:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/3994/
-----------------------------------------------------------

Review request for Flume.


Summary
-------

The LoggerSink currently prints the memory address of the Event's body, instead 
of the stringified value, which is because it relies on toString() being 
implemented in the Event implementation. The reason it prints the memory 
address is due to a bug in SimpleEvent's toString() method... however, 
SimpleEvent is not guaranteed to have a viable way to stringify its body 
contents in general.

I believe it makes sense to remove toString() from SimpleEvent and, with 
LoggingSink, assume that the body is always stringifiable and do the decoding 
based on the Event interface directly in the class.


This addresses bug FLUME-987.
    https://issues.apache.org/jira/browse/FLUME-987


Diffs
-----

  flume-ng-core/src/main/java/org/apache/flume/event/SimpleEvent.java e0c3b45 
  flume-ng-core/src/main/java/org/apache/flume/sink/LoggerSink.java f6f9d33 

Diff: https://reviews.apache.org/r/3994/diff


Testing
-------

Built and ran using LoggerSink and the body is properly printed.


Thanks,

Mike


                
> LoggerSink prints garbage for body
> ----------------------------------
>
>                 Key: FLUME-987
>                 URL: https://issues.apache.org/jira/browse/FLUME-987
>             Project: Flume
>          Issue Type: Bug
>    Affects Versions: v1.0.0
>            Reporter: Mike Percy
>            Assignee: Mike Percy
>            Priority: Minor
>             Fix For: v1.1.0
>
>
> The LoggerSink relies on Event.toString() being implemented, which is not 
> reliable since it's not part of the Event interface (of course, it's part of 
> Object and prints some memory address by default).
> SimpleEvent implements toString() but poorly (prints the memory address for 
> the body byte array), and other implementations of Event may not override 
> toString().
> I will submit a patch to remove the toString() method from SimpleEvent and 
> implement a quick fix in LoggerSink.
> Longer term, we may want to consider using something like MIME types via the 
> headers so that decoding is more automatic and less reliant on the configured 
> classes being fully cognizant of the data encoding.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to