cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dennis Sosnoski (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (CXF-3273) WS-RM ConcurrentModificationException from unsynchronized use of SequenceAcknowledgement
Date Mon, 21 Feb 2011 09:56:38 GMT

     [ https://issues.apache.org/jira/browse/CXF-3273?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Dennis Sosnoski resolved CXF-3273.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 2.4

Synchronized all use of collections in WS-RM acknowledgement processing (revision 1072914).

> WS-RM ConcurrentModificationException from unsynchronized use of SequenceAcknowledgement
> ----------------------------------------------------------------------------------------
>
>                 Key: CXF-3273
>                 URL: https://issues.apache.org/jira/browse/CXF-3273
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.3.2
>            Reporter: Dennis Sosnoski
>             Fix For: 2.4
>
>
> The WS-RM code needs to use synchronized blocks for both modifying and accessing SequenceAcknowledgement.
Currently the code appears to use synchronized blocks for modifying SequenceAcknowledgement
information, but not for reading it (for example in RMSoapInterceptor.encode(SoapMessage,
RMProperties), where the SequenceAcknowledgement is serialized to XML). This can result in
ConcurrentModificationException:
>      [java] java.util.ConcurrentModificationException
>      [java]     at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
>      [java]     at java.util.AbstractList$Itr.next(AbstractList.java:420)
>      [java]     at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister$1.next(Lister.java:284)
>      [java]     at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:135)
>      [java]     at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:155)
>      [java]     at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:340)
>      [java]     at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)
>      [java]     at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:152)
>      [java]     at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:189)
>      [java]     at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:316)
>      [java]     at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:323)
>      [java]     at com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:72)
>      [java]     at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:494)
>      [java]     at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:315)
>      [java]     at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:244)
>      [java]     at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:109)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.encodeProperty(RMSoapInterceptor.java:396)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.encode(RMSoapInterceptor.java:206)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.encode(RMSoapInterceptor.java:154)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.mediate(RMSoapInterceptor.java:138)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.handleMessage(RMSoapInterceptor.java:126)
>      [java]     at org.apache.cxf.ws.rm.soap.RMSoapInterceptor.handleMessage(RMSoapInterceptor.java:93)
>      [java]     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>      [java]     at org.apache.cxf.ws.addressing.ContextUtils.rebaseResponse(ContextUtils.java:403)
>      [java]     at org.apache.cxf.ws.addressing.MAPAggregator.mediate(MAPAggregator.java:547)
>      [java]     at org.apache.cxf.ws.addressing.MAPAggregator.handleMessage(MAPAggregator.java:227)
>      [java]     at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
>      [java]     at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:113)
>      [java]     at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.serviceRequest(JettyHTTPDestination.java:311)
>      [java]     at org.apache.cxf.transport.http_jetty.JettyHTTPDestination.doService(JettyHTTPDestination.java:280)
>      [java]     at org.apache.cxf.transport.http_jetty.JettyHTTPHandler.handle(JettyHTTPHandler.java:72)
>      [java]     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:922)
>      [java]     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:860)
>      [java]     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
>      [java]     at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
>      [java]     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
>      [java]     at org.eclipse.jetty.server.Server.handle(Server.java:352)
>      [java]     at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
>      [java]     at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1066)
>      [java]     at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:805)
>      [java]     at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212)
>      [java]     at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
>      [java]     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:510)
>      [java]     at org.eclipse.jetty.io.nio.SelectChannelEndPoint.access$000(SelectChannelEndPoint.java:34)
>      [java]     at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
>      [java]     at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
>      [java]     at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message