cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (CXF-7430) The logInputStream method of the LoggingInInterceptor fails if input stream size bigger than limit and PrettyPrint option is true.
Date Wed, 09 Aug 2017 11:41:00 GMT

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

Sergey Beryozkin edited comment on CXF-7430 at 8/9/17 11:40 AM:
----------------------------------------------------------------

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 code 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

  


was (Author: sergey_beryozkin):
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)

Mime
View raw message