When a two way Oracle 11g JDBC connected system is simultaneously
accessed with subscriber and publisher channel policies which other is
an XSLT policy I get a java.util.ConcurrentModificationException.

The publisher channel operation is a modify with attribute changes being
handled by an XSLT policy.

The subscriber channel operation is a sync caused by the publisher
channel attribute change which triggers a move in the previous object.
The simultaneous access is not to the same SQL object.

Does anyone have an idea on how to avoid this? Driver parametres do not
seem to help this. Next thing I do is get rid of the XSLT as it may have
something to do with it and is visible in the stack trace too.

Operating system is RHEL 6.6 x86_64
Memory 8Gb and heap 4G for the driver set.
eDirectory is 8.8.8.5 and IDM 4.5.1 x86_64

The JDBC driver has been updated from the version it was in IDM 4.


Trace here:

[06/04/15 17:30:51.720]river ST: SELECT XXX, XXXX FROM DIRXML.XXXX
WHERE XXX = ?
[06/04/15 17:30:51.720]river ST: IN @ index 1, field 'XXX',
value = 12345678
[06/04/15 17:30:51.730]river PT: SELECT XXX FROM DIRXML.XXXX_XXX
WHERE XXX = ?
[06/04/15 17:30:51.731]river PT: IN @ index 1, field 'XXX',
value = 3456789
[06/04/15 17:30:51.731]river ST: SubscriptionShim.execute() returned:
[06/04/15 17:30:51.732]river ST:
<nds dtdversion="2.0" ndsversion="8.x" xmlns:jdbc="urn:dirxml:jdbc">
<source>
<product build="20150417_0410" instance="Driver"
version="4.0.1.0">DirXML Driver for JDBC</product>
<contact>NetIQ Corporation</contact>
</source>
<output>
<instance class-name="XXXX_XXX" event-id="0"
src-dn="XXX=12345678,table=XXXX_XXX,schema=DIRXML">
<association
state="associated">XXX=12345678,table=XXXX_XXX,sch ema=DIRXML</association>
</instance>
<status event-id="0" level="success"></status>
<status level="fatal" type="driver-general">
<description>java.util.ConcurrentModificationExcep tion</description>
<jdbc:exception
jdbc:class="java.util.ConcurrentModificationExcept ion">
<jdbc:stack-trace>java.util.ConcurrentModificationException
at
java.util.ArrayList$Itr.checkForComodification(Arr ayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at
com.novell.nds.dirxml.driver.jdbc.JDBCSubscription Shim.handleTransactions(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCSubscription Shim.handleStandardEvents(Unknown
Source)
at
com.novell.nds.dirxml.driver.jdbc.JDBCSubscription Shim.execute(Unknown
Source)
at
com.novell.nds.dirxml.engine.Subscriber.execute(Su bscriber.java:455)
at
com.novell.nds.dirxml.engine.Subscriber.execute(Su bscriber.java:289)
at
com.novell.nds.dirxml.engine.Subscriber$Subscriber AppQueryProcessor.query(Subscriber.java:2171)
at
com.novell.nds.dirxml.driver.XdsQueryProcessor.que ry(XdsQueryProcessor.java:84)
at
com.novell.nds.dirxml.driver.XdsQueryProcessor.que ry(XdsQueryProcessor.java:160)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknow n Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at
com.novell.xsl.extensions.JavaMethodInstance.invok e(JavaMethodInstance.java:108)
at com.novell.xml.xpath.FunctionCall.evaluate(Functio nCall.java:90)
at
com.novell.xml.xpath.ExpressionContext.evaluate(Ex pressionContext.java:67)
at
com.novell.xsl.process.VariableTemplate.instantiat e(VariableTemplate.java:169)
at
com.novell.xsl.process.TemplateRule.instantiate(Te mplateRule.java:148)
at
com.novell.xsl.process.CallTemplate.instantiate(Ca llTemplate.java:76)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.VariableTemplate.instantiat e(VariableTemplate.java:180)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.ElementTemplate.instantiate (ElementTemplate.java:134)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.ElementTemplate.instantiate (ElementTemplate.java:134)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.IfTemplate.instantiate(IfTe mplate.java:77)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.OtherwiseTemplate.instantia te(OtherwiseTemplate.java:48)
at
com.novell.xsl.process.ChooseTemplate.instantiate( ChooseTemplate.java:106)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.IfTemplate.instantiate(IfTe mplate.java:77)
at
com.novell.xsl.process.TemplateRule.instantiate(Te mplateRule.java:148)
at
com.novell.xsl.process.ProcessingEnv.processWithRu le(ProcessingEnv.java:314)
at
com.novell.xsl.process.ProcessingEnv.process(Proce ssingEnv.java:228)
at
com.novell.xsl.process.ApplyTemplatesTemplate.inst antiate(ApplyTemplatesTemplate.java:220)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.CopyTemplate.instantiate(Co pyTemplate.java:100)
at
com.novell.xsl.process.TemplateRule.instantiate(Te mplateRule.java:148)
at
com.novell.xsl.process.ProcessingEnv.processWithRu le(ProcessingEnv.java:314)
at
com.novell.xsl.process.ProcessingEnv.process(Proce ssingEnv.java:228)
at
com.novell.xsl.process.ApplyTemplatesTemplate.inst antiate(ApplyTemplatesTemplate.java:220)
at
com.novell.xsl.process.TemplateCollection.instanti ateTemplates(TemplateCollection.java:102)
at
com.novell.xsl.process.CopyTemplate.instantiate(Co pyTemplate.java:100)
at
com.novell.xsl.process.TemplateRule.instantiate(Te mplateRule.java:148)
at
com.novell.xsl.process.ProcessingEnv.processWithRu le(ProcessingEnv.java:314)
at
com.novell.xsl.process.ProcessingEnv.process(Proce ssingEnv.java:228)
at
com.novell.xsl.process.ApplyTemplatesTemplate.inst antiate(ApplyTemplatesTemplate.java:220)
at
com.novell.xsl.process.BuiltInTemplateRule.instant iate(BuiltInTemplateRule.java:98)
at
com.novell.xsl.process.ProcessingEnv.processWithRu le(ProcessingEnv.java:314)
at
com.novell.xsl.process.ProcessingEnv.process(Proce ssingEnv.java:228)
at com.novell.xsl.Stylesheet.process(Stylesheet.java: 1612)
at com.novell.xsl.Stylesheet.process(Stylesheet.java: 1489)
at
com.novell.nds.dirxml.engine.rules.XSLTRuleProcess or.applyRules(XSLTRuleProcessor.java:185)
at
com.novell.nds.dirxml.engine.Publisher$CommandProc essor.process(Publisher.java:1308)
at
com.novell.nds.dirxml.engine.Publisher.processComm and(Publisher.java:1376)
at
com.novell.nds.dirxml.engine.Subscriber.processMer ge(Subscriber.java:2062)
at
com.novell.nds.dirxml.engine.Subscriber$SyncProces sor.process(Subscriber.java:1801)
at
com.novell.nds.dirxml.engine.Subscriber.processEve nt(Subscriber.java:1136)
at
com.novell.nds.dirxml.engine.Subscriber.processEve nts(Subscriber.java:953)
at
com.novell.nds.dirxml.engine.Driver.submitTransact ion(Driver.java:764)