Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1857

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

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.3, 2.0.4, 2.0.5, 2.1, 2.0.6, 2.1.1, 2.0.7, 2.0.8, 2.1.2
    • 2.1.3
    • None
    • None

    Description

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

      Attachments

        Activity

          People

            njiang Willem Jiang
            njiang Willem Jiang
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: