[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-user-ja
Subject:    [jira] [Commented] (AXIS-2909) ConcurrentModificationException when running under Java 1.8.0_20 or l
From:       "robert lazarski (JIRA)" <axis-dev () ws ! apache ! org>
Date:       2018-03-07 14:31:00
Message-ID: JIRA.12828392.1431099298000.354539.1520433060401 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/AXIS-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16389628#comment-16389628 \
] 

robert lazarski commented on AXIS-2909:
---------------------------------------

The last official release of axis was 1.4 back in 2006. For anything time sensitive I \
suggest compiling from source.

There is a snapshot available that seemed to have been built right around the time \
this issue was marked fixed. It looks like it may include this patch for this issue \
though I haven't verified that.

[http://axis.apache.org/axis/java/snapshots.html]

  

  

> ConcurrentModificationException when running under Java 1.8.0_20 or later
> -------------------------------------------------------------------------
> 
> Key: AXIS-2909
> URL: https://issues.apache.org/jira/browse/AXIS-2909
> Project: Axis
> Issue Type: Bug
> Components: Serialization/Deserialization
> Affects Versions: 1.4
> Environment: java full version "1.8.0_20-b26"
> Reporter: Kim Albertsson
> Assignee: Andreas Veithen
> Priority: Critical
> Fix For: 1.4.1
> 
> Attachments: axis-concurrent-mod.stack-trace, diff.txt
> 
> Original Estimate: 0h
> Remaining Estimate: 0h
> 
> Java 8u20 introduced a change in how Collections.sort is implemented. See \
> http://bugs.java.com/view_bug.do?bug_id=8032636 and \
> http://bugs.java.com/view_bug.do?bug_id=8030848. The sorting is now deferred to the \
> specific list implementation which can operate directly on the underlying data \
> structure without making a defensive copy beforehand. This can cause a \
> java.util.ConcurrentModificationException to occur.  The error can be reproduced by \
> compiling axis-1.4.1-SNAPSHOT using java 1.8.0_20 or later and running the maven \
> test suite (mvn test). The error does not manifest every single run, but I have \
> never had to run the tests more than 3 times to reproduce. The test that fails is \
> test.concurrency.TestApplicationScope. The issue originates in \
> org.apache.axis.description.JavaServiceDesc.getOperationsByQName where an \
> unsynchronized call to Collections.sort is made. Synchronizing over the sorted \
> array resolves the issue. A working patch that has been tested in the test suite is \
> appended in diff.txt. The stack trace from the axis test-suite is appended below. \
> Do note however that this stack trace does not show the actual error (The original \
> error is caught and rethrown). To get the stack trace where the Collections.sort \
> call is made you can run the specific test and attach the jdb configured to catch \
> all java.util.ConcurrentModificationExceptions. The stack trace from my jdb session \
> is appended as axis-concurrent-mod.stack-trace. It was generated from an apache \
> tomcat instance running a webservice relying on axis. AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
> faultSubcode: 
> faultString: java.util.ConcurrentModificationException
> faultActor: 
> faultNode: 
> faultDetail: 
> {http://xml.apache.org/axis/}stackTrace:java.util.ConcurrentModificationException
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
>  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>  at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
> at java.lang.Class.newInstance(Class.java:442)
> at org.apache.axis.encoding.ser.BeanDeserializer.&lt;init&gt;(BeanDeserializer.java:104)
>  at org.apache.axis.encoding.ser.BeanDeserializerFactory.getGeneralPurpose(BeanDeserializerFactory.java:89)
>  at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:89)
>  at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:484)
>  at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:567)
>  at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)
>  at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1052)
>  at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
> at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
> at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
> at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown \
> Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown \
> Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:241)
>  at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
> at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
> at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
>  at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
> at org.apache.axis.client.Call.invokeEngine(Call.java:2782)
> at org.apache.axis.client.Call.invoke(Call.java:2765)
> at org.apache.axis.client.Call.invoke(Call.java:2443)
> at org.apache.axis.client.Call.invoke(Call.java:2366)
> at org.apache.axis.client.Call.invoke(Call.java:2391)
> at test.concurrency.TestApplicationScope$TestRunnable.run(TestApplicationScope.java:80)
>  at java.lang.Thread.run(Thread.java:745)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic