Uploaded image for project: 'JBoss Web Services'
  1. JBoss Web Services
  2. JBWS-2681

Concurrency issues where multiple threads create Port using Service Simultaneously

    XMLWordPrintable

Details

    • Workaround Exists
    • Hide

      After creating the Service the thread that created the service should obtain a Port before making the service available for other threads, once the first successful port has been obtained further concurrent requests no longer fail.

      Show
      After creating the Service the thread that created the service should obtain a Port before making the service available for other threads, once the first successful port has been obtained further concurrent requests no longer fail.

    Description

      Where multiple threads attempt to create a port or call an endpoint from a newly created Service one of a number of errors is reported.

      java.lang.NullPointerException
      at org.jboss.ws.extensions.xop.jaxws.ReflectiveAttachmentRefScanner.isJDKType(ReflectiveAttachmentRefScanner.java:262)
      at org.jboss.ws.extensions.xop.jaxws.ReflectiveAttachmentRefScanner.scanBean(ReflectiveAttachmentRefScanner.java:78)
      at org.jboss.ws.metadata.umdm.ParameterMetaData.initializeAttachmentParameter(ParameterMetaData.java:500)
      at org.jboss.ws.metadata.umdm.ParameterMetaData.eagerInitialize(ParameterMetaData.java:485)
      at org.jboss.ws.metadata.umdm.OperationMetaData.eagerInitialize(OperationMetaData.java:465)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations(EndpointMetaData.java:526)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:510)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:500)
      at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:308)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:262)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:193)
      at javax.xml.ws.Service.getPort(Service.java:116)

      java.util.ConcurrentModificationException
      at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
      at java.util.AbstractList$Itr.next(AbstractList.java:420)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations(EndpointMetaData.java:524)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:510)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:500)
      at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:308)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:262)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:193)
      at javax.xml.ws.Service.getPort(Service.java:116)

      java.lang.IllegalStateException: Cannot synchronize to any of these methods:
      at org.jboss.ws.metadata.umdm.OperationMetaData.eagerInitialize(OperationMetaData.java:492)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations(EndpointMetaData.java:526)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:510)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:500)
      at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:308)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:262)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:193)
      at javax.xml.ws.Service.getPort(Service.java:116)

      java.lang.IllegalStateException: Cannot synchronize to any of these methods:
      public abstract org.jboss.support.ws.phonebook.TelephoneNumber org.jboss.support.ws.phonebook.PhoneBook.lookup(org.jboss.support.ws.phonebook.Person)

      OperationMetaData:
      qname=

      {http://www.jboss.org/support/phonebook}

      lookup
      javaName=lookup
      style=document/literal/WRAPPED
      oneWay=false
      soapAction=
      at org.jboss.ws.metadata.umdm.OperationMetaData.eagerInitialize(OperationMetaData.java:492)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations(EndpointMetaData.java:526)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(EndpointMetaData.java:510)
      at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointMetaData.java:500)
      at org.jboss.ws.metadata.builder.jaxws.JAXWSClientMetaDataBuilder.rebuildEndpointMetaData(JAXWSClientMetaDataBuilder.java:308)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPortInternal(ServiceDelegateImpl.java:262)
      at org.jboss.ws.core.jaxws.spi.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:193)
      at javax.xml.ws.Service.getPort(Service.java:116)

      javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbound
      at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:307)
      at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:245)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:164)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
      at $Proxy15.lookup(Unknown Source)
      at org.jboss.support.ws.phonebook.ThreadedCallingClient$Caller.run(ThreadedCallingClient.java:51)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: java.lang.IllegalStateException: Cannot find property: javax.xml.ws.handler.message.outbound
      at org.jboss.ws.core.jaxws.handler.MessageContextJAXWS.processPivot(MessageContextJAXWS.java:110)
      at org.jboss.ws.core.jaxws.client.ClientImpl.processPivot(ClientImpl.java:266)
      at org.jboss.ws.core.CommonClient.processPivotInternal(CommonClient.java:467)
      at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:395)
      at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:233)

      javax.xml.ws.soap.SOAPFaultException: Request struct cannot be null
      at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:75)
      at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:109)
      at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:553)
      at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:371)
      at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:233)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:164)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
      at $Proxy15.lookup(Unknown Source)

      javax.xml.ws.soap.SOAPFaultException: java.lang.NullPointerException
      at org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.getSOAPFaultException(SOAPFaultHelperJAXWS.java:75)
      at org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.throwFaultException(SOAP11BindingJAXWS.java:109)
      at org.jboss.ws.core.CommonSOAPBinding.unbindResponseMessage(CommonSOAPBinding.java:553)
      at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:371)
      at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:233)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:164)
      at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
      at $Proxy15.lookup(Unknown Source)

      Attachments

        Issue Links

          Activity

            People

              darran.lofthouse@redhat.com Darran Lofthouse
              darran.lofthouse@redhat.com Darran Lofthouse
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: