In AbstractFeature.initialize methods, unlike the "initialize server"
counterpart, the initialize method for client is not passing
client.getEndpoint() to the initializeProvider() method.

public abstract class AbstractFeature {
    public void initialize(Server server, Bus bus) {
        initializeProvider(server.getEndpoint(), bus);
    }

    public void initialize(Client client, Bus bus) {
        initializeProvider(client, bus);
    }

As a result, adding InFault interceptors to the (client) provider
inside the initializeProvider() method does not really end up putting
them in the fault interceptor chain since the
InFaultChainInitiatorObserver.initializeInterceptors() method only
looks for inFault interceptors in the following places.

protected void initializeInterceptors(Exchange ex,
PhaseInterceptorChain chain) {
        Endpoint e = ex.get(Endpoint.class);

        chain.add(e.getInFaultInterceptors());
        chain.add(e.getBinding().getInFaultInterceptors());
        chain.add(e.getService().getInFaultInterceptors());
        chain.add(getBus().getInFaultInterceptors());
    }

I can enter a Jira.

Thanks,
William

Reply via email to