After looked at the testcase, I think fix this NPE can not resolve this problem completely. If I understand correctly , after server receive this "soapFault" request, it still needs to invoke the method "soapFault(Fault fault)" in service imlementation class. So far , CXF is not capable to do this. It is because the CXF Intercetors to process soapFault is only designed to work in the client side. So fix this one , there will be couple of another issues pop up.
This could be a workaroud: modify the wsdl schema and wrap the soap fault element in another element:
<schema>
<xs:element name="XTSFault" type="tns:XTSFault"/>
<complexType name="XTSFault">
<sequence>
<element name="fault" type="soapEnv:Fault"/>
</sequence>
</complexType>
</schema>
<message name="SoapFault">
<part name="fault" element="tns:XTSFault" />
</message>
This will make CXF treat this soap request not a soap fault response and handle it correctly.
Does this change need a lot of work in JBossTS and work for dispatching the fault message ?