On Jul 27, 2011, at 20:40, "Daniel Kulp" <[email protected]> wrote:
> On Wednesday, July 27, 2011 7:57:58 PM Gary Gregory wrote: >> Hi Dan, >> >> Any thoughts on the timing for 2.4.2? > > We need a release of WSS4J 1.6.2 first as we now rely on some of the new > functionality and fixes that are in there. I THINK Colm is planning on > doing > that sometime next week. Once that is released, I'll do the 2.4.2 release of > CXF. So I would say on or before Aug 15th would be a fairly good estimate. Roger that. I figured WSS4J would be in the picture. Thank you for the update. Gary > > Dan > >> >> Gary >> >> On Jul 27, 2011, at 15:34, "Daniel Kulp" <[email protected]> wrote: >>> Just looked at the code.... >>> >>> >>> The JaxWsProxyFactoryBean doesn't have the synchronized flag on the >>> create method like the one on the superclass does. :-( >>> >>> You can likely workaround this by creating your own subclass of >>> JaxWsProxyFactoryBean that just has a single method of: >>> >>> >>> public synchronized Object create() { >>> >>> return super.create(); >>> >>> } >>> >>> and using that instead. I'll get this fixes for 2.4.2. >>> >>> Dan >>> >>> On Tuesday, July 26, 2011 10:17:10 PM Algirdas Veitas wrote: >>>> OK, we migrated to 2.3.5 and are still using a "client per SOAP call" >>>> strategy. We are still seeing intermittent issues. We have tried to >>>> configure our client as a spring bean with scope prototype AND call >>>> the >>>> create() method in our code directly. In both cases, we are getting >>>> intermittent NPE's in JaxWsProxyFactoryBean, but on different lines. >>>> Unfortunately, upgrading to 2.4.1 didn't resolve the issue either :( >>>> >>>> We have a simple test case that has 2 threads....and here is the stack >>>> trace when our client in configured as a spring bean (prototype) >>>> >>>> org.springframework.beans.factory.BeanCreationException: Error >>>> creating bean with name 'XService' defined in class path resource >>>> [spring/myCxfClient.xml]: Instantiation of bean failed; nested >>>> exception is >>>> org.springframework.beans.factory.BeanDefinitionStoreException: >>>> Factory method [public java.lang.Object >>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create()] threw exception; >>>> nested exception is java.lang.NullPointerException >>>> Index:0, about to call ws >>>> >>>> at >>>> >>>> org.springframework.beans.factory.support.ConstructorResolver.instanti >>>> ateUsi ngFactoryMethod(ConstructorResolver.java:581) at >>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF >>>> actory >>>> .instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.jav >>>> a:983) at >>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF >>>> actory >>>> .createBeanInstance(AbstractAutowireCapableBeanFactory.java:879) at >>>> org.springframework.beans.factory.support.AbstractAutowireCapableBean >>>> Factory .doCreateBean(AbstractAutowireCapableBeanFactory.java:485) at >>>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF >>>> actory .createBean(AbstractAutowireCapableBeanFactory.java:456) at >>>> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBea >>>> n(Abst ractBeanFactory.java:310) at >>>> org.springframework.beans.factory.support.AbstractBeanFactory.getBean( >>>> Abstra ctBeanFactory.java:190) at >>>> com.xHelperImpl.getXService(XServiceHelperImpl.java:203) >>>> >>>> at >>>> >>>> com.helper.XHelperImplTest$ITUserReadOnlyClient.run(ITUserServiceHelpe >>>> rImplT est.java:98) at java.lang.Thread.run(Thread.java:662) >>>> Caused by: >>>> org.springframework.beans.factory.BeanDefinitionStoreException: >>>> Factory method [public java.lang.Object >>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create()] threw exception; >>>> nested exception is java.lang.NullPointerException >>>> >>>> at >>>> >>>> org.springframework.beans.factory.support.SimpleInstantiationStrategy. >>>> instan tiate(SimpleInstantiationStrategy.java:157) at >>>> org.springframework.beans.factory.support.ConstructorResolver.instanti >>>> ateUsi ngFactoryMethod(ConstructorResolver.java:570) ... 10 more >>>> Caused by: java.lang.NullPointerException >>>> >>>> at >>>> >>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.needWrapperClassInterceptor >>>> (JaxWs ProxyFactoryBean.java:152) at >>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBea >>>> n.java >>>> >>>> :135) at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source) >>>> :at >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccess >>>> orImpl .java:25) at java.lang.reflect.Method.invoke(Method.java:597) >>>> >>>> at >>>> >>>> org.springframework.beans.factory.support.SimpleInstantiationStrategy. >>>> instan tiate(SimpleInstantiationStrategy.java:145) ... 11 more >>>> >>>> >>>> Here is our configuration.... >>>> >>>> <bean id="xServiceProxyFactory" >>>> class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> >>>> >>>> <property name="serviceClass" value="com.XService"/> >>>> <property name="address" ref="xServiceUrl"/> >>>> >>>> </bean> >>>> >>>> <bean id="xService" scope="prototype" class="com.XService" >>>> factory-bean="xServiceProxyFactory" factory-method="create"/> >>>> >>>> >>>> When we call create() on the proxy factory in our code (and not use a >>>> prototype scoped bean), we see a similiar error (but not as frequently >>>> as the above) error: >>>> >>>> java.lang.NullPointerException >>>> >>>> at >>>> >>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBea >>>> n.java >>>> >>>> :135) at >>>> :com.xServiceHelperImpl.getXService(XServiceHelperImpl.java:210) at >>>> >>>> com.helper.XHelperImplTest$ITUserReadOnlyClient.run(ITUserServiceHelpe >>>> rImplT est.java:98) >>>> >>>> >>>> Al >>>> >>>> On Mon, Jul 25, 2011 at 4:49 PM, Daniel Kulp <[email protected]> wrote: >>>>> On Monday, July 25, 2011 12:53:37 PM Algirdas Veitas wrote: >>>>>> Will give that a shot, but it looks like this is the same issue as >>>>>> https://issues.apache.org/jira/browse/CXF-3075, and according the >>>>>> entry >>>>> >>>>> was >>>>> >>>>>> fixed in 2.3.1. Were there more changes since then? >>>>> >>>>> For the client creation, there is: >>>>> https://issues.apache.org/jira/browse/CXF-3558 >>>>> >>>>> which is in 2.3.5. >>>>> >>>>> Ideally, you'd move right to 2.4.1. It's definitely easier to debug >>>>> things from my side there. >>>>> >>>>> >>>>> Dan >>>>> >>>>>> Al >>>>>> >>>>>> On Mon, Jul 25, 2011 at 12:48 PM, Daniel Kulp <[email protected]> wrote: >>>>>>> Can you move up to 2.3.5? We did add some synchronized blocks >>>>>>> around the ReflectionServiceFactoryBean to make the singleton >>>>>>> cases work a lot better. That may fix this issue. >>>>>>> >>>>>>> Dan >>>>>>> >>>>>>> On Monday, July 25, 2011 12:35:11 PM Algirdas Veitas wrote: >>>>>>>> More information....after doing some additional testing, it >>>>>>>> looks >>>>>>>> like >>>>>>> >>>>>>> the >>>>>>> >>>>>>>> exception is thrown in different areas of the CXF code, but >>>>>>>> the >>>>>>>> ConcurrentModificationException is thrown when trying to >>>>>>>> manipulate >>>>>>>> the >>>>>>>> >>>>>>>> private List<AbstractServiceConfiguration> >>>>>>>> serviceConfigurations = >>>>>>>> >>>>>>>> new >>>>>>>> ArrayList<AbstractServiceConfiguration>(); >>>>>>>> >>>>>>>> that belongs to ReflectionServiceFactoryBean....see stack >>>>>>>> traces >>>>>>>> below >>>>>>> >>>>>>> for >>>>>>> >>>>>>>> additional samples: >>>>>>>> >>>>>>>> Caused by: java.util.ConcurrentModificationException >>>>>>>> >>>>>>>> at >>>>>>>> >>>>>>>> java.util.AbstractList$Itr.checkForComodification(AbstractLi >>>>>>>> st.java: 372) >>>>>>>> >>>>>>>> at >>>>>>>> java.util.AbstractList$Itr.next(AbstractList.java:3 >>>>>>>> 43) >>>>>>>> at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createIn >>>>> putW >>>>> >>>>>>> rapp >>>>>>> >>>>>>>> edMessageParts(ReflectionServiceFactoryBean.java:1619) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOp >>>>> erat >>>>> >>>>>>> ion( >>>>>>> >>>>>>>> ReflectionServiceFactoryBean.java:934) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation >>>>> (Jax >>>>> >>>>>>> WsSe >>>>>>> >>>>>>>> rviceFactoryBean.java:616) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createIn >>>>> terf >>>>> >>>>>>> ace( >>>>>>> >>>>>>>> ReflectionServiceFactoryBean.java:907) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildSer >>>>> vice >>>>> >>>>>>> From >>>>>>> >>>>>>>> Class(ReflectionServiceFactoryBean.java:433) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFro >>>>> mCla >>>>> >>>>>>> ss(J >>>>>>> >>>>>>>> axWsServiceFactoryBean.java:680) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initiali >>>>> zeSe >>>>> >>>>>>> rvic >>>>>>> >>>>>>>> eModel(ReflectionServiceFactoryBean.java:505) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(R >>>>> efle >>>>> >>>>>>> ctio >>>>>>> >>>>>>>> nServiceFactoryBean.java:242) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsSer >>>>> vice >>>>> >>>>>>> Fact >>>>>>> >>>>>>>> oryBean.java:202) at >>>>> >>>>> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpo >>>>> int( >>>>> >>>>>>> Abst >>>>>>> >>>>>>>> ractWSDLBasedEndpointFactory.java:101) at >>>>> >>>>> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java: >>>>>>> 90) >>>>>>> >>>>>>>> at >>>>> >>>>> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFac >>>>> tory >>>>> >>>>>>> Bean >>>>>>> >>>>>>>> .java:117 >>>>>>>> >>>>>>>> Caused by: java.util.ConcurrentModificationException >>>>>>>> >>>>>>>> at >>>>>>>> >>>>>>>> java.util.AbstractList$Itr.checkForComodification(AbstractLi >>>>>>>> st.java: 372) >>>>>>>> >>>>>>>> at >>>>>>>> java.util.AbstractList$Itr.next(AbstractList.java:3 >>>>>>>> 43) >>>>>>>> at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.addFault >>>>> (Ref >>>>> >>>>>>> lect >>>>>>> >>>>>>>> ionServiceFactoryBean.java:2032) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initiali >>>>> zeFa >>>>> >>>>>>> ults >>>>>>> >>>>>>>> (ReflectionServiceFactoryBean.java:2011) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createMe >>>>> ssag >>>>> >>>>>>> ePar >>>>>>> >>>>>>>> ts(ReflectionServiceFactoryBean.java:1575) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOp >>>>> erat >>>>> >>>>>>> ion( >>>>>>> >>>>>>>> ReflectionServiceFactoryBean.java:928) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation >>>>> (Jax >>>>> >>>>>>> WsSe >>>>>>> >>>>>>>> rviceFactoryBean.java:616) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createIn >>>>> terf >>>>> >>>>>>> ace( >>>>>>> >>>>>>>> ReflectionServiceFactoryBean.java:907) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildSer >>>>> vice >>>>> >>>>>>> From >>>>>>> >>>>>>>> Class(ReflectionServiceFactoryBean.java:433) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFro >>>>> mCla >>>>> >>>>>>> ss(J >>>>>>> >>>>>>>> axWsServiceFactoryBean.java:680) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initiali >>>>> zeSe >>>>> >>>>>>> rvic >>>>>>> >>>>>>>> eModel(ReflectionServiceFactoryBean.java:505) at >>>>> >>>>> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(R >>>>> efle >>>>> >>>>>>> ctio >>>>>>> >>>>>>>> nServiceFactoryBean.java:242) at >>>>> >>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsSer >>>>> vice >>>>> >>>>>>> Fact >>>>>>> >>>>>>>> oryBean.java:202) at >>>>> >>>>> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpo >>>>> int( >>>>> >>>>>>> Abst >>>>>>> >>>>>>>> ractWSDLBasedEndpointFactory.java:101) at >>>>> >>>>> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java: >>>>>>> 90) >>>>>>> >>>>>>>> at >>>>> >>>>> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFac >>>>> tory >>>>> >>>>>>> Bean >>>>>>> >>>>>>>> .java:117) at >>>>> >>>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryB >>>>> ean. >>>>> >>>>>>> java >>>>>>> >>>>>>>> :124) >>>>>>>> >>>>>>>> On Mon, Jul 25, 2011 at 11:30 AM, Algirdas Veitas >>>>>>>> <[email protected] >>>>>>>> >>>>>>>> wrote: >>>>>>>>> whoops...in the previous post...we mentioned 2.1.3 but >>>>>>>>> we are >>>>>>>>> using >>>>>>>>> 2.3.1 >>>>>>>>> >>>>>>>>> On Mon, Jul 25, 2011 at 10:36 AM, Algirdas Veitas >>>>>>> >>>>>>> <[email protected]>wrote: >>>>>>>>>> Hi Daniel, >>>>>>>>>> >>>>>>>>>> Unfortunately, we are unable to reproduce this problem >>>>>>>>>> in an >>>>>>>>>> isolated environment. But at this point, it does look >>>>>>>>>> like >>>>>>>>>> to be an issue with multiple threads using the same >>>>>>>>>> instance >>>>>>>>>> of the client. Because we are >>>>>>>>>> unable to reproduce, our current strategy is to create >>>>>>>>>> a >>>>>>>>>> separate >>>>>>>>>> client per SOAP call. >>>>>>>>>> >>>>>>>>>> Using the following documentation as a guideline >>>>>>>>>> http://cxf.apache.org/docs/jax-ws-configuration.html, >>>>>>>>>> we came >>>>>>>>>> up with the following: >>>>>>>>>> >>>>>>>>>> Here was the original configuration for the client: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> <jaxws:client id="xService" >>>>>>>>>> serviceClass="com.XService" >>>>>>>>>> address="#xServiceUrl" >>>>>>>>>> </jaxws:client> >>>>>>>>>> >>>>>>>>>> Here is what we just tried: >>>>>>>>>> >>>>>>>>>> <bean id="xServiceProxyFactory" >>>>>>>>>> >>>>>>>>>> class="org.apache.cxf.jaxws. >>>>>>>>>> >>>>>>>>>> JaxWsProxyFactoryBean"> >>>>>>>>>> >>>>>>>>>> <property name="serviceClass" >>>>>>>>>> value="com.XService"/> >>>>>>>>>> <property name="address" >>>>>>>>>> ref="xServiceUrl"/> >>>>>>>>>> >>>>>>>>>> </bean> >>>>>>>>>> >>>>>>>>>> <bean id="xService" scope="prototype" >>>>>>>>>> class="com.XService" >>>>>>>>>> >>>>>>>>>> factory-bean="xServiceProx >>>>>>>>>> yFactory >>>>>>>>>> " >>>>>>>>>> >>>>>>>>>> factory-method="create"/> >>>>>>>>>> >>>>>>>>>> Notice that the xService bean is a prototype, so we >>>>>>>>>> get a new >>>>>>>>>> instance for each request made, to avoid the original >>>>>>>>>> issue >>>>>>>>>> we were seeing. >>>>>>>>>> >>>>>>>>>> Now in our code we have a class that looks like this: >>>>>>>>>> >>>>>>>>>> public class xServiceHelperImpl implements >>>>>>>>>> BeanFactoryAware >>>>>>>>>> { >>>>>>>>>> >>>>>>>>>> @Autowired >>>>>>>>>> @Qualifier(value="xServiceProxyFactory") >>>>>>>>>> private JaxWsProxyFactoryBean >>>>>>>>>> proxyFactoryBean; >>>>>>>>>> >>>>>>>>>> @Override >>>>>>>>>> public void setBeanFactory(BeanFactory >>>>>>>>>> beanFactory) >>>>>>>>>> throws >>>>>>>>>> >>>>>>>>>> BeansException { >>>>>>>>>> >>>>>>>>>> this.beanFactory=beanFactory; >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> private xService getXService() { >>>>>>>>>> >>>>>>>>>> xService xService = >>>>>>>>>> >>>>>>>>>> (xService)this.beanFactory.getBean("xService"); >>>>>>>>>> >>>>>>>>>> return xService; >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> And we have a JUnit test that spawns multiple threads >>>>>>>>>> that >>>>>>>>>> basically >>>>>>>>>> calls "getXService()" and then invokes a web service >>>>>>>>>> call. >>>>>>>>>> >>>>>>>>>> When there is just 1 thread configured in the test, >>>>>>>>>> everything >>>>>>>>>> works >>>>>>>>>> fine. >>>>>>>>>> >>>>>>>>>> When there are 2 threads configured in the test, we >>>>>>>>>> start >>>>>>>>>> getting >>>>>>>>>> errors, it is a ConcurrentModificationExcpeiton, but >>>>>>>>>> in a >>>>>>>>>> different >>>>>>>>>> place then where we saw before :(....here is the stack >>>>>>>>>> trace >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.BeanCreationExceptio >>>>>>>>>> n: Error >>>>>>>>>> creating >>>>>>>>>> bean with name 'xService' defined in class path >>>>>>>>>> resource >>>>>>>>>> [spring/myCxfClient.xml]: Instantiation of bean >>>>>>>>>> failed; nested >>>>>>>>>> exception is >>>>>>>>>> org.springframework.beans.factory.BeanDefinitionStoreE >>>>>>>>>> xception >>>>>>>>>> >>>>>>>>>> Factory method [public java.lang.Object >>>>>>>>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create()] >>>>>>>>>> threw >>>>>>>>>> exception; nested exception is >>>>>>>>>> java.util.ConcurrentModificationException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.ConstructorR >>>>>>>>>> esolver. >>>>>>>>>> instanti >>>>>>>>>> ateUsingFactoryMethod(ConstructorResolver.java:581) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractAuto >>>>>>>>>> wireCapa >>>>>>>>>> bleBeanF >>>>>>>>>> actory.instantiateUsingFactoryMethod(AbstractAutowireC >>>>>>>>>> apableB >>>>>>>>>> eanFactor y.java:983) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractAuto >>>>>>>>>> wireCapa >>>>>>>>>> bleBeanF >>>>>>>>>> actory.createBeanInstance(AbstractAutowireCapableBeanF >>>>>>>>>> actory. >>>>>>>>>> java:879) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractAuto >>>>>>>>>> wireCapa >>>>>>>>>> bleBeanF >>>>>>>>>> actory.doCreateBean(AbstractAutowireCapableBeanFactory >>>>>>>>>> .java:4 >>>>>>>>>> 85) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractAuto >>>>>>>>>> wireCapa >>>>>>>>>> bleBeanF >>>>>>>>>> actory.createBean(AbstractAutowireCapableBeanFactory.j >>>>>>>>>> ava:456 >>>>>>>>>> ) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractBean >>>>>>>>>> Factory. >>>>>>>>>> doGetBea n(AbstractBeanFactory.java:310) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.AbstractBean >>>>>>>>>> Factory. >>>>>>>>>> getBean( AbstractBeanFactory.java:190) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> com.XServiceHelperImpl.getXService(xServiceHel >>>>>>>>>> perImpl. >>>>>>>>>> java:21 >>>>>>>>>> 7) >>>>>>>>>> at >>>>>>>>>> com.XServiceHelperImpl.getX(xServiceHelperImpl >>>>>>>>>> .java:6 >>>>>>>>>> 3) >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> com..ITXServiceHelperImplTest$ITUserReadOnlyClient.run >>>>>>>>>> (ITUserS >>>>>>>>>> erviceHe lperImplTest.java:101) >>>>>>>>>> >>>>>>>>>> at java.lang.Thread.run(Thread.java:662) >>>>>>>>>> >>>>>>>>>> Caused by: >>>>>>>>>> org.springframework.beans.factory.BeanDefinitionStoreE >>>>>>>>>> xception >>>>>>>>>> >>>>>>>>>> Factory method [public java.lang.Object >>>>>>>>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create()] >>>>>>>>>> threw >>>>>>>>>> exception; nested exception is >>>>>>>>>> java.util.ConcurrentModificationException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.SimpleInstan >>>>>>>>>> tiationS >>>>>>>>>> trategy. >>>>>>>>>> instantiate(SimpleInstantiationStrategy.java:157) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.ConstructorR >>>>>>>>>> esolver. >>>>>>>>>> instanti >>>>>>>>>> ateUsingFactoryMethod(ConstructorResolver.java:570) >>>>>>>>>> >>>>>>>>>> ... 10 more >>>>>>>>>> >>>>>>>>>> Caused by: java.util.ConcurrentModificationException >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> java.util.AbstractList$Itr.checkForComodification(Abst >>>>>>>>>> ractList >>>>>>>>>> .java:37 2) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> java.util.AbstractList$Itr.next(AbstractList.j >>>>>>>>>> ava:343 >>>>>>>>>> ) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.cr >>>>>>>>>> eateInpu >>>>>>>>>> tWrappedMessageParts(ReflectionServiceFactoryBean.java >>>>>>>>>> >>>>>>>>>> :1619) >>>>>>>>>> : >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.cr >>>>>>>>>> eateOper ation(ReflectionServiceFactoryBean.java:934) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.c >>>>>>>>>> reateOpe >>>>>>>>>> ration(J axWsServiceFactoryBean.java:616) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.cr >>>>>>>>>> eateInte rface(ReflectionServiceFactoryBean.java:907) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.bu >>>>>>>>>> ildServi >>>>>>>>>> ceFromClass(ReflectionServiceFactoryBean.java:433) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.b >>>>>>>>>> uildServ >>>>>>>>>> iceFromC lass(JaxWsServiceFactoryBean.java:680) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.in >>>>>>>>>> itialize >>>>>>>>>> ServiceModel(ReflectionServiceFactoryBean.java:505) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.service.factory.ReflectionServiceFactor >>>>>>>>>> yBean.cr >>>>>>>>>> eate(Ref lectionServiceFactoryBean.java:242) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.c >>>>>>>>>> reate(Ja >>>>>>>>>> xWsServi ceFactoryBean.java:202) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFacto >>>>>>>>>> ry.creat >>>>>>>>>> eEndpoin t(AbstractWSDLBasedEndpointFactory.java:101) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.frontend.ClientFactoryBean.create(Clien >>>>>>>>>> tFactory >>>>>>>>>> Bean.jav a:90) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.frontend.ClientProxyFactoryBean.create( >>>>>>>>>> ClientPr >>>>>>>>>> oxyFacto ryBean.java:117) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxW >>>>>>>>>> sProxyFa >>>>>>>>>> ctoryBea n.java:124) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke0( >>>>>>>>>> Native >>>>>>>>>> Method) >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth >>>>>>>>>> odAccess >>>>>>>>>> orImpl.j ava:39) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(Delega >>>>>>>>>> tingMeth >>>>>>>>>> odAccess orImpl.java:25) >>>>>>>>>> >>>>>>>>>> at >>>>>>>>>> java.lang.reflect.Method.invoke(Method.java:5 >>>>>>>>>> 97) >>>>>>>>>> at >>>>>>>>>> >>>>>>>>>> org.springframework.beans.factory.support.SimpleInstan >>>>>>>>>> tiationS >>>>>>>>>> trategy. >>>>>>>>>> instantiate(SimpleInstantiationStrategy.java:145) >>>>>>>>>> >>>>>>>>>> ... 11 more >>>>>>>>>> >>>>>>>>>> Are we not configuring our client correctly? Just to >>>>>>>>>> reiterate we are using 2.1.3. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> Al >>>>>>>>>> >>>>>>>>>> On Fri, Jul 22, 2011 at 5:09 PM, Daniel Kulp >>>>>>>>>> <[email protected]> >>>>>>> >>>>>>> wrote: >>>>>>>>>>> On Friday, July 22, 2011 4:16:39 PM Algirdas Veitas wrote: >>>>>>>>>>>> Small world :) >>>>>>>>>>>> >>>>>>>>>>>> RE: Hmm... with #3, you shouldn't even be >>>>>>>>>>>> hitting this. >>>>>>>>>>>> >>>>>>>>>>>> The >>>>>>>>>>> >>>>>>>>>>> HEADER_LIST >>>>>>>>>>> >>>>>>>>>>>> should >>>>>>>>>>>> be completely created per request since it >>>>>>>>>>>> wouldn't be >>>>>>>>>>>> pulled >>>>>>>>>>>> from the request >>>>>>>>>>>> context. However, if the HEADER_LIST is >>>>>>>>>>>> added to the >>>>>>>>>>>> request >>>>>>>>>>> >>>>>>>>>>> context at >>>>>>>>>>> >>>>>>>>>>>> ANY time, even using #3 after that would cause >>>>>>>>>>>> an issue. >>>>>>>>>>>> >>>>>>>>>>>> If you >>>>>>>>>>>> >>>>>>>>>>>> aren't touching the HEADER_LIST anywhere, then >>>>>>>>>>>> I'm not >>>>>>>>>>>> really >>>>>>>>>>>> sure what is >>>>>>>>>>> >>>>>>>>>>> going >>>>>>>>>>> >>>>>>>>>>>> on. >>>>>>>>>>>> >>>>>>>>>>>> Yeah, we are not manipulating the HEADER_LIST >>>>>>>>>>>> anywhere >>>>>>>>>>>> in our >>>>>>>>>>>> code, so >>>>>>>>>>> >>>>>>>>>>> am >>>>>>>>>>> >>>>>>>>>>>> not sure what is going on either.... >>>>>>>>>>>> >>>>>>>>>>>> RE: 2) After returning from any method where you >>>>>>>>>>>> had set >>>>>>>>>>>> a >>>>>>>>>>>> header, >>>>>>>>>>> >>>>>>>>>>> call: * >>>>>>>>>>> >>>>>>>>>>>> context*.getMessageContext().remove(Header.HEADE >>>>>>>>>>>> R_LIST); >>>>>>>>>>>> >>>>>>>>>>>> How do I get a handle to the "context", in our >>>>>>>>>>>> situation >>>>>>>>>>>> where >>>>>>>>>>>> we are >>>>>>>>>>> >>>>>>>>>>> using >>>>>>>>>>> >>>>>>>>>>>> generated code? >>>>>>>>>>> >>>>>>>>>>> Sorry. That would be the actual proxy object. >>>>>>>>>>> For >>>>>>>>>>> example: >>>>>>>>>>> >>>>>>>>>>> MyServiceInterface proxy = >>>>>>>>>>> service.getMyServicePort(); >>>>>>>>>>> ((BindingProvider)proxy).getRequestContext()..... >>>>>>>>>>> >>>>>>>>>>> With JAX-WS, all the proxys implement not only the >>>>>>>>>>> generated >>>>>>>>>>> interface, >>>>>>>>>>> but >>>>>>>>>>> also the BindingProvider interface. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Dan >>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Al >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Jul 22, 2011 at 4:04 PM, Daniel Kulp >>>>>>>>>>>> <[email protected]> >>>>>>> >>>>>>> wrote: >>>>>>>>>>>>> On Friday, July 22, 2011 3:58:06 PM Algirdas Veitas wrote: >>>>>>>>>>>>>> Hi Daniel, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Nice meeting you as well! >>>>>>>>>>>>> >>>>>>>>>>>>> Just discovered you and I went to >>>>>>>>>>>>> Northeastern at >>>>>>>>>>>>> roughly >>>>>>>>>>>>> the same >>>>>>>>>>> >>>>>>>>>>> time. >>>>>>>>>>> >>>>>>>>>>>>> We >>>>>>>>>>>>> may have met before. :-) >>>>>>>>>>>>> >>>>>>>>>>>>>> One follow up question....the way we are >>>>>>>>>>>>>> adding >>>>>>>>>>>>>> headers >>>>>>>>>>>>>> is #3. Our generated client code treats >>>>>>>>>>>>>> our >>>>>>>>>>>>>> headers >>>>>>>>>>>>>> like an ordinary parameter in >>>>>>>>>>>>> >>>>>>>>>>>>> the >>>>>>>>>>>>> >>>>>>>>>>>>>> method signature. Will your solution >>>>>>>>>>>>>> work for >>>>>>>>>>>>>> this >>>>>>>>>>>>>> strategy as >>>>>>>>>>>>>> well? >>>>>>>>>>>>> >>>>>>>>>>>>> Hmm... with #3, you shouldn't even be >>>>>>>>>>>>> hitting this. >>>>>>>>>>>>> >>>>>>>>>>>>> The >>>>>>>>>>>>> >>>>>>>>>>>>> HEADER_LIST should >>>>>>>>>>>>> be completely created per request since it >>>>>>>>>>>>> wouldn't >>>>>>>>>>>>> be >>>>>>>>>>>>> pulled from >>>>>>>>>>> >>>>>>>>>>> the >>>>>>>>>>> >>>>>>>>>>>>> request >>>>>>>>>>>>> context. However, if the HEADER_LIST is >>>>>>>>>>>>> added to >>>>>>>>>>>>> the >>>>>>>>>>>>> request >>>>>>>>>>> >>>>>>>>>>> context >>>>>>>>>>> >>>>>>>>>>>>> at >>>>>>>>>>>>> >>>>>>>>>>>>> ANY time, even using #3 after that would >>>>>>>>>>>>> cause an >>>>>>>>>>>>> issue. If >>>>>>>>>>>>> you >>>>>>>>>>> >>>>>>>>>>> aren't >>>>>>>>>>> >>>>>>>>>>>>> touching the HEADER_LIST anywhere, then I'm >>>>>>>>>>>>> not >>>>>>>>>>>>> really sure >>>>>>>>>>>>> what is >>>>>>>>>>>>> going >>>>>>>>>>>>> on. >>>>>>>>>>>>> Strange. Definitely give it a try though. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Dan >>>>>>>>>>>>> >>>>>>>>>>>>>> Al >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Jul 22, 2011 at 3:45 PM, Daniel >>>>>>>>>>>>>> Kulp >>>>>>>>>>>>>> <[email protected]> >>>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>>>>>> We talked briefly about this at >>>>>>>>>>>>>>> lunch today >>>>>>>>>>>>>>> (nice to >>>>>>>>>>>>>>> meet you >>>>>>>>>>>>>>> Al!) but wanted >>>>>>>>>>>>>>> to follow up here..... >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> The per-proxy request context can >>>>>>>>>>>>>>> definitely >>>>>>>>>>>>>>> come >>>>>>>>>>>>>>> into play >>>>>>>>>>>>>>> here. If any of >>>>>>>>>>>>>>> the threads add a header list to the >>>>>>>>>>>>>>> RequestContext >>>>>>>>>>>>>>> via the >>>>>>>>>>>>>>> method >>>>>>>>>>>>>>> mentioned >>>>>>>>>>> >>>>>>>>>>>>>>> in #4 of: >>>>>>>>>>> http://cxf.apache.org/faq#FAQ-HowcanIaddsoapheaderst >>>>>>>>>>> otherequ >>>>>>>>>>> est%2Fre spon >>>>>>>>>>> >>>>>>>>>>>>>>> se%3F >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> then those headers would be sent on >>>>>>>>>>>>>>> all >>>>>>>>>>>>>>> methods >>>>>>>>>>>>>>> called on the >>>>>>>>>>>>>>> proxy. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> What's worse, I THINK that List is >>>>>>>>>>>>>>> just >>>>>>>>>>>>>>> copied into >>>>>>>>>>>>>>> the real >>>>>>>>>>>>>>> message >>>>>>>>>>>>>>> context >>>>>>>>>>>>>>> so any header processing done during >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> processing >>>>>>>>>>>>>>> of the >>>>>>>>>>>>>>> message >>>>>>>>>>>>> >>>>>>>>>>>>> would >>>>>>>>>>>>> >>>>>>>>>>>>>>> affect that list, thus affecting all >>>>>>>>>>>>>>> threads >>>>>>>>>>>>>>> as well >>>>>>>>>>>>>>> as future >>>>>>>>>>>>>>> method >>>>>>>>>>>>>>> calls on >>>>>>>>>>>>>>> the same thread. Thinking about >>>>>>>>>>>>>>> this, >>>>>>>>>>>>>>> it may >>>>>>>>>>>>>>> make sense to >>>>>>>>>>>>>>> clone >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> list >>>>>>>>>>>>>>> at the very start of processing >>>>>>>>>>>>>>> messages to >>>>>>>>>>>>>>> make >>>>>>>>>>>>>>> sure the header list >>>>>>>>>>>>> >>>>>>>>>>>>> in >>>>>>>>>>>>> >>>>>>>>>>>>>>> the >>>>>>>>>>>>>>> request context isn't modified. >>>>>>>>>>>>>>> That might >>>>>>>>>>>>>>> be >>>>>>>>>>>>>>> worth filing a >>>>>>>>>>>>>>> jira >>>>>>>>>>>>> >>>>>>>>>>>>> for. >>>>>>>>>>>>> >>>>>>>>>>>>>>> For now, I would suggest doing 2 >>>>>>>>>>>>>>> things: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 1) Use the thread local request >>>>>>>>>>>>>>> contexts: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <jaxws:client id="xService" >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> serviceClass="com.XS >>>>>>>>>>>>>>> ervice" >>>>>>>>>>>>>>> address="#xServiceUr >>>>>>>>>>>>>>> l" > >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <jaxws:properties> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> <entry >>>>>>>>>>>>>>> key="thread.lo >>>>>>>>>>>>>>> cal.requ >>>>>>>>>>>>>>> est.con >>>>>>>>>>>>>>> text" >>>>>>>>>>>>>>> value="true" >>>>>>>>>>>>>>> /> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> </jaxws:properties> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> </jaxws:client> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> 2) After returning from any method >>>>>>>>>>>>>>> where you >>>>>>>>>>>>>>> had set >>>>>>>>>>>>>>> a header, >>>>>>>>>>>>>>> call: >>>>>>>>>>>>>>> context.getMessageContext().remove(H >>>>>>>>>>>>>>> eader.HE >>>>>>>>>>>>>>> ADER_LIS >>>>>>>>>>>>>>> T); >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> That should keep things in a good >>>>>>>>>>>>>>> state. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Dan >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Friday, July 22, 2011 10:25:10 AM >>>>>>>>>>>>>>> Algirdas Veitas >>>>> >>>>> wrote: >>>>>>>>>>>>>>>> Hi, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We are getting a >>>>>>>>>>>>>>>> ConcurrentModificationException >>>>>>>>>>>>>>>> exception >>>>>>>>>>>>>>>> in our >>>>>>>>>>>>>>>> CXF >>>>>>>>>>>>>>>> client, when it is processing >>>>>>>>>>>>>>>> SOAPHeaders. We >>>>>>>>>>>>>>>> did find >>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>> following link that describes >>>>>>>>>>>>>>>> what is >>>>>>>>>>>>>>>> going on >>>>>>>>>>> >>>>>>>>>>> http://cxf.547215.n5.nabble.com/jira-Created-CXF-276 >>>>>>>>>>> 2-Cannot >>>>>>>>>>> -deploy- csta >>>>>>>>>>> >>>>>>>>>>>>>>> -web >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -service-td586662.html#a586663, >>>>>>>>>>>>>>>> and we >>>>>>>>>>>>>>>> will >>>>>>>>>>>>>>>> address that >>>>>>>>>>>>>>>> (Header >>>>>>>>>>>>>>>> object >>>>>>>>>>>>>>>> needs to be unique across >>>>>>>>>>>>>>>> threads), but >>>>>>>>>>>>>>>> something else >>>>>>>>>>>>>>>> strange is >>>>>>>>>>>>>>>> happening: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> To start here is our client >>>>>>>>>>>>>>>> setup >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> <!-- Web Service Clients --> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> <jaxws:client >>>>>>>>>>>>>>>> id="xService" >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> serviceClass="co >>>>>>>>>>>>>>>> m.XServi >>>>>>>>>>>>>>>> ce" >>>>>>>>>>>>>>>> address="#xServi >>>>>>>>>>>>>>>> ceUrl" >>>>>>>>>>>>>>>> /> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> This WSDL that is associate with >>>>>>>>>>>>>>>> this >>>>>>>>>>>>>>>> client has >>>>>>>>>>>>>>>> some >>>>>>>>>>>>>>>> methods that >>>>>>>>>>>>>>>> DO >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> have a >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Header and some DO NOT. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> And here is the shortened stack >>>>>>>>>>>>>>>> trace: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> <http://newportave.jira.com/wiki >>>>>>>>>>>>>>>> /display >>>>>>>>>>>>>>>> /21+Jul+ >>>>>>>>>>>>>>>> 2011+19/11%3 >>>>>>>>>>>>>>>> A46%2C87 4> >>>>>>>>>>>>>>>> java.util.ConcurrentModification >>>>>>>>>>>>>>>> Exceptio >>>>>>>>>>>>>>>> n >>>>>>>>>>>>>>>> at >>>>>>>>>>> >>>>>>>>>>> java.util.AbstractList$Itr.checkForComodification(Ab >>>>>>>>>>> stractLi >>>>>>>>>>> st.java: 372) >>>>>>>>>>> >>>>>>>>>>>>>>>> at >>>>>>>>>>>>>>>> java.util.AbstractList$Itr.next( >>>>>>>>>>>>>>>> Abstract >>>>>>>>>>>>>>>> List.ja >>>>>>>>>>>>>>>> va:343) >>>>>>>>>>>>>>>> at >>>>>>>>>>> >>>>>>>>>>> org.apache.cxf.binding.soap.interceptor.SoapOutInter >>>>>>>>>>> ceptor.w >>>>>>>>>>> riteSoap Enve >>>>>>>>>>> >>>>>>>>>>>>>>> lope >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Start(SoapOutInterceptor.java:13 >>>>>>>>>>>>>>>> 9) at >>>>>>>>>>> >>>>>>>>>>> org.apache.cxf.binding.soap.interceptor.SoapOutInter >>>>>>>>>>> ceptor.h >>>>>>>>>>> andleMes sage >>>>>>>>>>> >>>>>>>>>>>>>>> (Soa >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pOutInterceptor.java:81) at >>>>>>>>>>> >>>>>>>>>>> org.apache.cxf.binding.soap.interceptor.SoapOutInter >>>>>>>>>>> ceptor.h >>>>>>>>>>> andleMes sage >>>>>>>>>>> >>>>>>>>>>>>>>> (Soa >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pOutInterceptor.java:61) at >>>>>>>>>>> >>>>>>>>>>> org.apache.cxf.phase.PhaseInterceptorChain.doInterce >>>>>>>>>>> pt(Phase >>>>>>>>>>> Intercep torC >>>>>>>>>>> >>>>>>>>>>>>>>> hain >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> .java:255) at >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> org.apache.cxf.endpoint.ClientImpl.i >>>>>>>>>>>>>>> nvoke(Cl >>>>>>>>>>>>>>> ientImpl >>>>>>>>>>>>>>> .java:516) >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Here is the rub: This exception >>>>>>>>>>>>>>>> is being >>>>>>>>>>>>>>>> thrown >>>>>>>>>>>>>>>> when we are >>>>>>>>>>>>>>>> calling >>>>>>>>>>>>>>>> a >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> method >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> that DOES NOT have a Header, but >>>>>>>>>>>>>>>> on line >>>>>>>>>>>>>>>> 139 in >>>>>>>>>>>>>>>> SoapOutInterceptor, >>>>>>>>>>>>>>>> it >>>>>>>>>>>>>>>> looks like we are trying to >>>>>>>>>>>>>>>> process an >>>>>>>>>>>>>>>> list that >>>>>>>>>>>>>>>> has atleast >>>>>>>>>>>>>>>> 1 >>>>>>>>>>>>>>>> header. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Am >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> pretty certain (this is >>>>>>>>>>>>>>>> occurring only >>>>>>>>>>>>>>>> in a >>>>>>>>>>>>>>>> specific >>>>>>>>>>>>>>>> environment) >>>>>>>>>>>>>>>> that >>>>>>>>>>>>>>>> other methods on this service >>>>>>>>>>>>>>>> were made >>>>>>>>>>>>>>>> previous >>>>>>>>>>>>>>>> to this >>>>>>>>>>>>>>>> error that >>>>>>>>>>>>>>>> did >>>>>>>>>>>>>>>> include a SOAP Header. Am >>>>>>>>>>>>>>>> speculating, >>>>>>>>>>>>>>>> but is >>>>>>>>>>>>>>>> the SOAP >>>>>>>>>>>>>>>> Header being >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> cached >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> in the request context and the >>>>>>>>>>>>>>>> request >>>>>>>>>>>>>>>> context >>>>>>>>>>>>>>>> is scoped per >>>>>>>>>>>>>>>> client >>>>>>>>>>>>>>>> instance as per the FAQ ( >>>>>>>>>>>>>>>> http://cxf.apache.org/faq.html#F >>>>>>>>>>>>>>>> AQ-AreJA >>>>>>>>>>>>>>>> XWSclien >>>>>>>>>>>>>>>> tproxiesthre >>>>>>>>>>>>>>>> adsafe%3 F)? >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>> Al >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Daniel Kulp >>>>>>>>>>>>>>> [email protected] >>>>>>>>>>>>>>> http://dankulp.com/blog >>>>>>>>>>>>>>> Talend - http://www.talend.com >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Daniel Kulp >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> http://dankulp.com/blog >>>>>>>>>>>>> Talend - http://www.talend.com >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Daniel Kulp >>>>>>>>>>> [email protected] >>>>>>>>>>> http://dankulp.com/blog >>>>>>>>>>> Talend - http://www.talend.com >>>>>>> >>>>>>> -- >>>>>>> Daniel Kulp >>>>>>> [email protected] >>>>>>> http://dankulp.com/blog >>>>>>> Talend - http://www.talend.com >>>>> >>>>> -- >>>>> Daniel Kulp >>>>> [email protected] >>>>> http://dankulp.com/blog >>>>> Talend - http://www.talend.com > -- > Daniel Kulp > [email protected] > http://dankulp.com/blog > Talend - http://www.talend.com
