cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grzegorz Grzybek (JIRA)" <>
Subject [jira] [Created] (CXF-5629) In robust one-way fault the fault message is written twice
Date Thu, 20 Mar 2014 12:34:42 GMT
Grzegorz Grzybek created CXF-5629:

             Summary: In robust one-way fault the fault message is written twice
                 Key: CXF-5629
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.0.0
            Reporter: Grzegorz Grzybek

I have robust one-way operation. However the resulting soap fault is not written to response,
because the output stream is closed, as the same {{faultObserver}} is called twice:

1. in {{org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Message)}}:
boolean isOneWay = false;
if (message.getExchange() != null) {
    if (message.getContent(Exception.class) != null) {
        message.getExchange().put(Exception.class, ex2);
    isOneWay = message.getExchange().isOneWay() 
        && !MessageUtils.isTrue(message.getContextualProperty(Message.ROBUST_ONEWAY));

if (faultObserver != null && !isOneWay) {

2. later in {{org.apache.cxf.interceptor.OneWayProcessorInterceptor.handleMessage(Message)}}:
if (message.getContent(Exception.class) != null) {
    // return the fault over the response fault channel
    MessageObserver faultObserver = chain.getFaultObserver();
    if (faultObserver != null) {

However, exchage is one-way only in second call, but the soap fault has no change to get to
client (output stream is closed).

I'm working on a patch

This message was sent by Atlassian JIRA

View raw message