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?
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(AbstractList.java:372) > > at java.util.AbstractList$Itr.next(AbstractList.java:343) > > at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInputWrapp > > edMessageParts(ReflectionServiceFactoryBean.java:1619) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOperation( > > ReflectionServiceFactoryBean.java:934) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation(JaxWsSe > > rviceFactoryBean.java:616) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInterface( > > ReflectionServiceFactoryBean.java:907) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFrom > > Class(ReflectionServiceFactoryBean.java:433) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(J > > axWsServiceFactoryBean.java:680) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServic > > eModel(ReflectionServiceFactoryBean.java:505) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Reflectio > > nServiceFactoryBean.java:242) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFact > > oryBean.java:202) at > > > org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(Abst > > ractWSDLBasedEndpointFactory.java:101) at > > > org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) > > at > > > org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean > > .java:117 > > > > Caused by: java.util.ConcurrentModificationException > > at > > java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) > > at java.util.AbstractList$Itr.next(AbstractList.java:343) > > at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.addFault(Reflect > > ionServiceFactoryBean.java:2032) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeFaults > > (ReflectionServiceFactoryBean.java:2011) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createMessagePar > > ts(ReflectionServiceFactoryBean.java:1575) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOperation( > > ReflectionServiceFactoryBean.java:928) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation(JaxWsSe > > rviceFactoryBean.java:616) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInterface( > > ReflectionServiceFactoryBean.java:907) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFrom > > Class(ReflectionServiceFactoryBean.java:433) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(J > > axWsServiceFactoryBean.java:680) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServic > > eModel(ReflectionServiceFactoryBean.java:505) at > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Reflectio > > nServiceFactoryBean.java:242) at > > > org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFact > > oryBean.java:202) at > > > org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(Abst > > ractWSDLBasedEndpointFactory.java:101) at > > > org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90) > > at > > > org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean > > .java:117) at > > > org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.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="xServiceProxyFactory" > > >> > > >> 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.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.util.ConcurrentModificationException > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.ConstructorResolver.instanti > > >> ateUsingFactoryMethod(ConstructorResolver.java:581) > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF > > >> actory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactor > > >> y.java:983) > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF > > >> actory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:879) > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.AbstractAutowireCapableBeanF > > >> actory.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(AbstractBeanFactory.java:310) > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.AbstractBeanFactory.getBean( > > >> AbstractBeanFactory.java:190) > > >> > > >> at > > >> com.XServiceHelperImpl.getXService(xServiceHelperImpl.java:21 > > >> 7) > > >> at com.XServiceHelperImpl.getX(xServiceHelperImpl.java:63) > > >> at > > >> > > >> com..ITXServiceHelperImplTest$ITUserReadOnlyClient.run(ITUserServiceHe > > >> lperImplTest.java:101) > > >> > > >> 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.util.ConcurrentModificationException > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.SimpleInstantiationStrategy. > > >> instantiate(SimpleInstantiationStrategy.java:157) > > >> > > >> at > > >> > > >> org.springframework.beans.factory.support.ConstructorResolver.instanti > > >> ateUsingFactoryMethod(ConstructorResolver.java:570) > > >> > > >> ... 10 more > > >> > > >> Caused by: java.util.ConcurrentModificationException > > >> > > >> at > > >> > > >> java.util.AbstractList$Itr.checkForComodification(AbstractList.java:37 > > >> 2) > > >> > > >> at java.util.AbstractList$Itr.next(AbstractList.java:343) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInpu > > >> tWrappedMessageParts(ReflectionServiceFactoryBean.java:1619) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createOper > > >> ation(ReflectionServiceFactoryBean.java:934) > > >> > > >> at > > >> > > >> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.createOperation(J > > >> axWsServiceFactoryBean.java:616) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.createInte > > >> rface(ReflectionServiceFactoryBean.java:907) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServi > > >> ceFromClass(ReflectionServiceFactoryBean.java:433) > > >> > > >> at > > >> > > >> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromC > > >> lass(JaxWsServiceFactoryBean.java:680) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initialize > > >> ServiceModel(ReflectionServiceFactoryBean.java:505) > > >> > > >> at > > >> > > >> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(Ref > > >> lectionServiceFactoryBean.java:242) > > >> > > >> at > > >> > > >> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServi > > >> ceFactoryBean.java:202) > > >> > > >> at > > >> > > >> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoin > > >> t(AbstractWSDLBasedEndpointFactory.java:101) > > >> > > >> at > > >> > > >> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.jav > > >> a:90) > > >> > > >> at > > >> > > >> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFacto > > >> ryBean.java:117) > > >> > > >> at > > >> > > >> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBea > > >> n.java:124) > > >> > > >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > >> at > > >> > > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.j > > >> ava:39) > > >> > > >> 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. > > >> 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.HEADER_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-HowcanIaddsoapheaderstotherequest%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.XService" > > >>> > > > > address="#xServiceUrl" > > > >>> > > > > > > >>> > > > > <jaxws:properties> > > >>> > > > > > > >>> > > > > <entry > > >>> > > > > key="thread.local.request.con > > >>> > > > > text" > > >>> > > > > value="true" /> > > >>> > > > > > > >>> > > > > </jaxws:properties> > > >>> > > > > > > >>> > > > > </jaxws:client> > > >>> > > > > > > >>> > > > > 2) After returning from any method where you had set > > >>> > > > > a header, > > >>> > > > > call: > > >>> > > > > context.getMessageContext().remove(Header.HEADER_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-2762-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="com.XService" > > >>> > > > > > address="#xServiceUrl" /> > > >>> > > > > > > > >>> > > > > > 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.ConcurrentModificationException > > >>> > > > > > at > > >>> > > >>> java.util.AbstractList$Itr.checkForComodification(AbstractList.java: > > >>> 372) > > >>> > > >>> > > > > > at > > >>> > > > > > java.util.AbstractList$Itr.next(AbstractList.ja > > >>> > > > > > va:343) > > >>> > > > > > at > > >>> > > >>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoap > > >>> Enve > > >>> > > >>> > > > > lope > > >>> > > > > > > >>> > > > > > Start(SoapOutInterceptor.java:139) at > > >>> > > >>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMes > > >>> sage > > >>> > > >>> > > > > (Soa > > >>> > > > > > > >>> > > > > > pOutInterceptor.java:81) at > > >>> > > >>> org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMes > > >>> sage > > >>> > > >>> > > > > (Soa > > >>> > > > > > > >>> > > > > > pOutInterceptor.java:61) at > > >>> > > >>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseIntercep > > >>> torC > > >>> > > >>> > > > > hain > > >>> > > > > > > >>> > > > > > .java:255) at > > >>> > > > > > > >>> > > > > org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl > > >>> > > > > .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#FAQ-AreJAXWSclien > > >>> > > > > > 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 >
