cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Illia Yehorov (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-7044) LoggingInInterceptor sometimes crashes if truncates response with Unicode simbols
Date Fri, 09 Sep 2016 07:34:21 GMT

     [ https://issues.apache.org/jira/browse/CXF-7044?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Illia Yehorov updated CXF-7044:
-------------------------------
    Description: 
When LoggingInInterceptor logs a big response it truncates it to some default (or configured)
limit in bytes. It can happens that some Unicode symbol will be divided on such truncating
(if it is placed right on the border of the limit). In this case the logger throws the exception
as it considers this as "Unexpected EOF in the middle of a multi-byte char" or "Unexpected
EOF in CDATA section"

Affects to all versions as it comes from third party library "woodstox-core-asl-4.4.1.jar"

PS There was a default limit set (48 * 1024 bytes) when faced with this problem (it can be
seen from exception's message below)

Here is example of stack trace:

org.apache.cxf.interceptor.Fault: [com.ctc.wstx.exc.WstxLazyException] Unexpected EOF in the
middle of a multi-byte char: got 1, needed 2, at char #49138, byte #49152)
	at org.apache.cxf.interceptor.LoggingInInterceptor.logInputStream(LoggingInInterceptor.java:220)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:154)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:80)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1642)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1533)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1336)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:652) [cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-3.1.0.jar:3.1.0]
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139) [cxf-rt-frontend-jaxws-3.1.0.jar:3.1.0]
	at com.sun.proxy.$Proxy262.transactionList(Unknown Source) [na:na]


  was:
When LoggingInInterceptor logs a big response it truncates it to some default (or configured)
limit in bytes. It can happens that some Unicode symbol will be divided on such truncating
(if it is placed right on the border of the limit). In this case the logger throws the exception
as it considers this as "Unexpected EOF in the middle of a multi-byte char" or "Unexpected
EOF in CDATA section"

Affects to all versions as it comes from third party library "woodstox-core-asl-4.4.1.jar"

Here is example of stack trace:

org.apache.cxf.interceptor.Fault: [com.ctc.wstx.exc.WstxLazyException] Unexpected EOF in the
middle of a multi-byte char: got 1, needed 2, at char #49138, byte #49152)
	at org.apache.cxf.interceptor.LoggingInInterceptor.logInputStream(LoggingInInterceptor.java:220)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:154)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:80)
~[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1642)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1533)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1336)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:652) [cxf-rt-transports-http-3.1.0.jar:3.1.0]
	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) [cxf-core-3.1.0.jar:3.1.0]
	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-3.1.0.jar:3.1.0]
	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139) [cxf-rt-frontend-jaxws-3.1.0.jar:3.1.0]
	at com.sun.proxy.$Proxy262.transactionList(Unknown Source) [na:na]



> LoggingInInterceptor sometimes crashes if truncates response with Unicode simbols
> ---------------------------------------------------------------------------------
>
>                 Key: CXF-7044
>                 URL: https://issues.apache.org/jira/browse/CXF-7044
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.0.5, 3.1.1, 3.1.3, 3.1.6, 3.0.9, 3.1.7
>            Reporter: Illia Yehorov
>
> When LoggingInInterceptor logs a big response it truncates it to some default (or configured)
limit in bytes. It can happens that some Unicode symbol will be divided on such truncating
(if it is placed right on the border of the limit). In this case the logger throws the exception
as it considers this as "Unexpected EOF in the middle of a multi-byte char" or "Unexpected
EOF in CDATA section"
> Affects to all versions as it comes from third party library "woodstox-core-asl-4.4.1.jar"
> PS There was a default limit set (48 * 1024 bytes) when faced with this problem (it can
be seen from exception's message below)
> Here is example of stack trace:
> org.apache.cxf.interceptor.Fault: [com.ctc.wstx.exc.WstxLazyException] Unexpected EOF
in the middle of a multi-byte char: got 1, needed 2, at char #49138, byte #49152)
> 	at org.apache.cxf.interceptor.LoggingInInterceptor.logInputStream(LoggingInInterceptor.java:220)
~[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:154)
~[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:80)
~[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1642)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1533)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1336)
[cxf-rt-transports-http-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:652) [cxf-rt-transports-http-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
[cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) [cxf-core-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) [cxf-rt-frontend-simple-3.1.0.jar:3.1.0]
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:139) [cxf-rt-frontend-jaxws-3.1.0.jar:3.1.0]
> 	at com.sun.proxy.$Proxy262.transactionList(Unknown Source) [na:na]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message