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

Sergey Beryozkin commented on CXF-7430:
---------------------------------------

I've applied your patch with some updates. I thought changing the content type 
to stop the pretty printing was a bit problematic so I introduced a new flag 
'truncated' to make it obvious what to check for. The problem with my update is 
that I changed the protected method's signature but I thought if someone does 
have a code which overrides this method (which I doubt) then this custom may be 
also logging the content type somewhere so we can have a case of say text/xml 
and text/plain logged at the same time, so in the end changing the signature is 
probably the best.
Dan - any concerns with it - please revert

  

> The logInputStream method of the LoggingInInterceptor fails if input stream 
> size bigger than limit and PrettyPrint option is true.
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-7430
>                 URL: https://issues.apache.org/jira/browse/CXF-7430
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 3.0.10, 3.1.7, 3.1.8, 3.0.11, 3.1.9, 3.0.12, 3.0.13
>            Reporter: Alex Korobko
>
> The logInputStream method of the LoggingInInterceptor class fails when the 
> input stream size is bigger than the limit variable value and PrettyPrint 
> option is set to true.
> The problem is:
> # In the logInputStream method of the LoggingInInterceptor class if the input 
> stream is bigger than limit (the default value of the limit variable defined 
> in the AbstractLoggingInterceptor  as 48 * 1024) the input stream is 
> truncated to the length of the limit value;
> # The logInputStream method of the LoggingInInterceptor class uses the 
> writePayload method of the AbstractLoggingInterceptor to log the payload of 
> the response; 
> # As the PrettyPrint option is true, the writePayload method attempts to use 
> the PrettyPrintXMLWriter class to log already truncated XML data and throws 
> exception.
> It seems like the issue could be resolved if the LoggingInInterceptor class 
> resets the PrettyPrint option to false every time if the input stream was 
> truncated. Or the same result would be achieved if contentType parameter of 
> the writePayload method is NOT set to 'xml' for truncated stream. 
> Additionally, the same solution should be propagated to all usages of the 
> writePayload method of the AbstractLoggingInterceptor class. 
> I faced this issue in my project that uses older version of the library, but 
> as I just found the exception could be handled by changes in code made by 
> commit 
> https://github.com/apache/cxf/commit/d5373a3e3d2219ce07526cfb92ff954b3382727e 
> so it is not relevant to latest sources anymore. But I think it is not a very 
> good way to handle it through handling exception.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to