ServiceFactoryBean should not call createInvoker() twice if its invoker does 
not be set
---------------------------------------------------------------------------------------

                 Key: CXF-1857
                 URL: https://issues.apache.org/jira/browse/CXF-1857
             Project: CXF
          Issue Type: Improvement
    Affects Versions: 2.1.2, 2.0.8, 2.0.7, 2.1.1, 2.0.6, 2.1, 2.0.5
            Reporter: Willem Jiang
            Assignee: Willem Jiang
             Fix For: 2.1.3, 2.2


{code}
 public Server create() {
        try {
            applyExtraClass();
            if (serviceBean != null && getServiceClass() == null) {
                setServiceClass(ClassHelper.getRealClass(serviceBean));
            }
            if (invoker != null) {
                getServiceFactory().setInvoker(invoker);
            } else if (serviceBean != null) {
                 // we should set the invoker here
                getServiceFactory().setInvoker(createInvoker());               
            }

            Endpoint ep = createEndpoint();
            server = new ServerImpl(getBus(),
                                    ep,
                                    getDestinationFactory(),
                                    getBindingFactory());

            if (ep.getService().getInvoker() == null) {
                if (invoker == null) {
                    ep.getService().setInvoker(createInvoker());
                } else {
                    ep.getService().setInvoker(invoker);
                }
            }

            if (start) {
                server.start();
            }
        } catch (EndpointException e) {
            throw new ServiceConstructionException(e);
        } catch (BusException e) {
            throw new ServiceConstructionException(e);
        } catch (IOException e) {
            throw new ServiceConstructionException(e);
        }

        if (serviceBean != null) {
            initializeAnnotationInterceptors(server.getEndpoint(),
                                             
ClassHelper.getRealClass(getServiceBean()));
        } else if (getServiceClass() != null) {
            initializeAnnotationInterceptors(server.getEndpoint(), 
getServiceClass());
        }


        applyFeatures();
        return server;
    }
{code}

-- 
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