You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Abhay Kumar Singh (JIRA)" <ji...@apache.org> on 2018/12/18 06:29:00 UTC

[jira] [Comment Edited] (CXF-7930) Broken pipe (Write failed) when migrating from cxf 3.0.3 to 3.2.7

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

Abhay Kumar Singh edited comment on CXF-7930 at 12/18/18 6:28 AM:
------------------------------------------------------------------

public SAAJStreamWriter(SOAPPart part) {
     super(part);
     this.part = part;
     Node nd = part.getFirstChild();
     if (nd == null)

    \{         isOverlaid = false;     }

    envelope = null;
 }

The above SAAJStreamWriter constructor updated in 3.1.x where isOverlaid is becoming false, and this is causing to delete the soap message body and creating new soap message envelop in SoapOutInterceptor during writeSoapEnvelopeStart method call.


was (Author: avayks):
public SAAJStreamWriter(SOAPPart part) {
    super(part);
    this.part = part;
    Node nd = part.getFirstChild();
    if (nd == null) {
        isOverlaid = false;
    }
    envelope = null;
 }

The above SAAJStreamWriter constructor updated in 3.1.x where isOverlaid is becoming false, and this is causing to delete the soap message body and creating new soap message envelop in SoapOutInterceptor during writeSoapEnvelopeStart method call.

> Broken pipe (Write failed) when migrating from cxf 3.0.3 to 3.2.7
> -----------------------------------------------------------------
>
>                 Key: CXF-7930
>                 URL: https://issues.apache.org/jira/browse/CXF-7930
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 3.2.7
>            Reporter: Abhay Kumar Singh
>            Priority: Major
>
> The error is coming when application is sending encoded output stream to soap client passing through various cxf interceptor.
>  
> errorException = \{java.net.SocketException@38793}"java.net.SocketException: Broken pipe (Write failed)"
> detailMessage = \{java.lang.String@40056}"Broken pipe (Write failed)"
> cause = \{java.net.SocketException@38793}"java.net.SocketException: Broken pipe (Write failed)"
> [0] = \{java.lang.StackTraceElement@40061}"java.net.SocketOutputStream.socketWrite0(Native Method)"
> [1] = \{java.lang.StackTraceElement@40062}"java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)"
> [2] = \{java.lang.StackTraceElement@40063}"java.net.SocketOutputStream.write(SocketOutputStream.java:155)"
> [3] = \{java.lang.StackTraceElement@40064}"sun.security.ssl.OutputRecord.writeBuffer(OutputRecord.java:431)"
> [4] = \{java.lang.StackTraceElement@40065}"sun.security.ssl.OutputRecord.write(OutputRecord.java:417)"
> [5] = \{java.lang.StackTraceElement@40066}"sun.security.ssl.SSLSocketImpl.writeRecordInternal(SSLSocketImpl.java:886)"
> [6] = \{java.lang.StackTraceElement@40067}"sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:857)"
> [7] = \{java.lang.StackTraceElement@40068}"sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)"
> [8] = \{java.lang.StackTraceElement@40069}"org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)"
> [9] = \{java.lang.StackTraceElement@40070}"org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)"
> [10] = \{java.lang.StackTraceElement@40071}"org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:119)"
> [11] = \{java.lang.StackTraceElement@40072}"org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:801)"
> [12] = \{java.lang.StackTraceElement@40073}"org.apache.coyote.Response.action(Response.java:172)"
> [13] = \{java.lang.StackTraceElement@40074}"org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:363)"
> [14] = \{java.lang.StackTraceElement@40075}"org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:331)"
> [15] = \{java.lang.StackTraceElement@40076}"org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101)"
> [16] = \{java.lang.StackTraceElement@40077}"org.springframework.security.web.util.OnCommittedResponseWrapper$SaveContextServletOutputStream.flush(OnCommittedResponseWrapper.java:514)"
> [17] = \{java.lang.StackTraceElement@40078}"org.apache.cxf.io.AbstractWrappedOutputStream.flush(AbstractWrappedOutputStream.java:84)"
> [18] = \{java.lang.StackTraceElement@40079}"org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:55)"
> [19] = \{java.lang.StackTraceElement@40080}"org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:225)"
> [20] = \{java.lang.StackTraceElement@40081}"org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)"
> [21] = \{java.lang.StackTraceElement@40082}"org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(AbstractHTTPDestination.java:756)"
> [22] = \{java.lang.StackTraceElement@40083}"org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)"
> [23] = \{java.lang.StackTraceElement@40084}"org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)"
> [24] = \{java.lang.StackTraceElement@40085}"org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:90)"
> [25] = \{java.lang.StackTraceElement@40086}"org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)"
> [26] = \{java.lang.StackTraceElement@40087}"org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)"
> [27] = \{java.lang.StackTraceElement@40088}"org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:267)"
> [28] = \{java.lang.StackTraceElement@40089}"org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)"
> [29] = \{java.lang.StackTraceElement@40090}"org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)"
> [30] = \{java.lang.StackTraceElement@40091}"org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)"
> [31] = \{java.lang.StackTraceElement@40092}"org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:216)"
> [32] = \{java.lang.StackTraceElement@40093}"org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:301)"
> [33] = \{java.lang.StackTraceElement@40094}"org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:220)"
> [34] = \{java.lang.StackTraceElement@40095}"javax.servlet.http.HttpServlet.service(HttpServlet.java:650)"
> [35] = \{java.lang.StackTraceElement@40096}"org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:276)"
> [36] = \{java.lang.StackTraceElement@40097}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)"
> [37] = \{java.lang.StackTraceElement@40098}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [38] = \{java.lang.StackTraceElement@40099}"org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)"
> [39] = \{java.lang.StackTraceElement@40100}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)"
> [40] = \{java.lang.StackTraceElement@40101}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [41] = \{java.lang.StackTraceElement@40102}"org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320)"
> [42] = \{java.lang.StackTraceElement@40103}"org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)"
> [43] = \{java.lang.StackTraceElement@40104}"org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)"
> [44] = \{java.lang.StackTraceElement@40105}"org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215)"
> [45] = \{java.lang.StackTraceElement@40106}"org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178)"
> [46] = \{java.lang.StackTraceElement@40107}"org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)"
> [47] = \{java.lang.StackTraceElement@40108}"org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)"
> [48] = \{java.lang.StackTraceElement@40109}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)"
> [49] = \{java.lang.StackTraceElement@40110}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [50] = \{java.lang.StackTraceElement@40111}"com.xxx.xx.applicationcontext.web.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:157)"
> [51] = \{java.lang.StackTraceElement@40112}"org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357)"
> [52] = \{java.lang.StackTraceElement@40138}"org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)"
> [53] = \{java.lang.StackTraceElement@40137}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)"
> [54] = \{java.lang.StackTraceElement@40136}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [55] = \{java.lang.StackTraceElement@40135}"org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)"
> [56] = \{java.lang.StackTraceElement@40134}"org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)"
> [57] = \{java.lang.StackTraceElement@40133}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)"
> [58] = \{java.lang.StackTraceElement@40132}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [59] = \{java.lang.StackTraceElement@40131}"com.qpass.base.service.service.http.RegistryServletFilter.doFilter(RegistryServletFilter.java:157)"
> [60] = \{java.lang.StackTraceElement@40130}"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)"
> [61] = \{java.lang.StackTraceElement@40129}"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)"
> [62] = \{java.lang.StackTraceElement@40128}"org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)"
> [63] = \{java.lang.StackTraceElement@40127}"org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)"
> [64] = \{java.lang.StackTraceElement@40126}"org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)"
> [65] = \{java.lang.StackTraceElement@40125}"org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)"
> [66] = \{java.lang.StackTraceElement@40124}"org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)"
> [67] = \{java.lang.StackTraceElement@40123}"org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)"
> [68] = \{java.lang.StackTraceElement@40122}"org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:221)"
> [69] = \{java.lang.StackTraceElement@40121}"org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)"
> [70] = \{java.lang.StackTraceElement@40120}"org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)"
> [71] = \{java.lang.StackTraceElement@40119}"org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)"
> [72] = \{java.lang.StackTraceElement@40118}"org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)"
> [73] = \{java.lang.StackTraceElement@40117}"org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)"
> [74] = \{java.lang.StackTraceElement@40116}"java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)"
> [75] = \{java.lang.StackTraceElement@40115}"java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)"
> [76] = \{java.lang.StackTraceElement@40114}"org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)"
> [77] = \{java.lang.StackTraceElement@40113}"java.lang.Thread.run(Thread.java:748)"



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)