Java源码示例:com.sun.xml.internal.ws.addressing.WsaPropertyBag

示例1
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例2
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例3
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例4
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例5
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例6
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例7
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}
 
示例8
private void populateAddressingHeaders(Packet responsePacket, AddressingVersion av, SOAPVersion sv, String action, boolean mustUnderstand) {
    // populate WS-A headers only if WS-A is enabled
    if (av == null) return;

    // if one-way, then dont populate any WS-A headers
    if (responsePacket.getMessage() == null)
        return;

    MessageHeaders hl = responsePacket.getMessage().getHeaders();

    WsaPropertyBag wpb = getSatellite(WsaPropertyBag.class);
    Message msg = getMessage();
    // wsa:To
    WSEndpointReference replyTo = null;
    Header replyToFromRequestMsg = AddressingUtils.getFirstHeader(msg.getHeaders(), av.replyToTag, true, sv);
    Header replyToFromResponseMsg = hl.get(av.toTag, false);
    boolean replaceToTag = true;
    try{
        if (replyToFromRequestMsg != null){
            replyTo = replyToFromRequestMsg.readAsEPR(av);
        }
        if (replyToFromResponseMsg != null && replyTo == null) {
            replaceToTag = false;
        }
    } catch (XMLStreamException e) {
        throw new WebServiceException(AddressingMessages.REPLY_TO_CANNOT_PARSE(), e);
    }
    if (replyTo == null) {
          replyTo = AddressingUtils.getReplyTo(msg.getHeaders(), av, sv);
    }

    // wsa:Action, add if the message doesn't already contain it,
    // generally true for SEI case where there is SEIModel or WSDLModel
    //           false for Provider with no wsdl, Expects User to set the coresponding header on the Message.
    if (AddressingUtils.getAction(responsePacket.getMessage().getHeaders(), av, sv) == null) {
        //wsa:Action header is not set in the message, so use the wsa:Action  passed as the parameter.
        hl.add(new StringHeader(av.actionTag, action, sv, mustUnderstand));
    }

    // wsa:MessageID
    if (responsePacket.getMessage().getHeaders().get(av.messageIDTag, false) == null) {
        // if header doesn't exist, method getID creates a new random id
        String newID = Message.generateMessageID();
        hl.add(new StringHeader(av.messageIDTag, newID));
    }

    // wsa:RelatesTo
    String mid = null;
    if (wpb != null) {
        mid = wpb.getMessageID();
    }
    if (mid == null) {
        mid = AddressingUtils.getMessageID(msg.getHeaders(), av, sv);
    }
    if (mid != null) {
        hl.addOrReplace(new RelatesToHeader(av.relatesToTag, mid));
    }


    // populate reference parameters
    WSEndpointReference refpEPR = null;
    if (responsePacket.getMessage().isFault()) {
        // choose FaultTo
        if (wpb != null) {
            refpEPR = wpb.getFaultToFromRequest();
        }
        if (refpEPR == null) {
            refpEPR = AddressingUtils.getFaultTo(msg.getHeaders(), av, sv);
        }
        // if FaultTo is null, then use ReplyTo
        if (refpEPR == null) {
            refpEPR = replyTo;
        }
    } else {
        // choose ReplyTo
        refpEPR = replyTo;
    }
    if (replaceToTag && refpEPR != null) {
        hl.addOrReplace(new StringHeader(av.toTag, refpEPR.getAddress()));
        refpEPR.addReferenceParametersToList(hl);
    }
}