* @return The SOAP fault.
*/
protected SoapFault initialiseDuplicateHeaderSoapFault(final MessageContext context, final QName headerName, final ElementContent header)
{
final AnyElement problemHeader = new AnyElement() ;
problemHeader.putAnyContent(new NamedElement(headerName, header)) ;
final AnyElement detail = new AnyElement() ;
detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_HEADER_QNAME, new AttributedQNameType(headerName))) ;
detail.putAnyContent(new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_PROBLEM_HEADER, problemHeader)) ;
final NamedElement detailElement = new NamedElement(AddressingConstants.WSA_ELEMENT_QNAME_FAULT_DETAIL, detail) ;
final SoapFault soapFault = new SoapFault10(SoapFaultType.FAULT_SENDER, AddressingConstants.WSA_FAULT_CODE_QNAME_INVALID_ADDRESSING_HEADER,
"Duplicate Addressing Header", detailElement) ;
soapFault.setSubSubcode(AddressingConstants.WSA_FAULT_CODE_QNAME_INVALID_CARDINALITY) ;
soapFault.setAction(AddressingConstants.WSA_ACTION_FAULT) ;
soapFault.setHeaderFault(true) ;