[ 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)