I find that when I throw a SOAPFaultException from a handler's handleRequest method the request is returned to the client as is, whereas I was expecting the SOAPFaultException to be used to automatically generate a fault repsonse.
If I throw a runtime exception then a fault repsonse is returned.
It is then the responsibility of the current handler (or other handlers in the chain) to create the SOAP fault
Which suggests that what I assumed was wrong and that when throwing SOAPFaultException from a handler your code also needs to change the body of the response to be a fault, which seems a bit convoluted - whats the point of populating the SOAPFaultException ? I'm not using latest version of JAX-RPC (or JAX-WS which I think replaces it) as I'm studying for SCDJWS, so perhaps this isn't an issue anymore.