Inconsistency in AbstractFeature dealing with client and server endpoints
-------------------------------------------------------------------------

                 Key: CXF-1547
                 URL: https://issues.apache.org/jira/browse/CXF-1547
             Project: CXF
          Issue Type: Bug
          Components: Configuration
            Reporter: William Tam


(This would apply to both in and out fault interceptors.)

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());
   }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to