Oh yes, my application ensures an EntityManager instance is not shared by
multiple threads.
The intermittent error is:
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedList$LinkIterator.next(LinkedList.java:119)
at
org.apache.openjpa.jdbc.kernel.exps.PCPath.getPCPathString(PCPath.java:260)
at
org.apache.openjpa.jdbc.kernel.exps.ContainsExpression.initialize(ContainsExpression.java:44)
at
org.apache.openjpa.jdbc.kernel.exps.AndExpression.initialize(AndExpression.java:47)
at
org.apache.openjpa.jdbc.kernel.exps.AndExpression.initialize(AndExpression.java:48)
at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.initialize(SelectConstructor.java:232)
at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.newSelect(SelectConstructor.java:173)
at
org.apache.openjpa.jdbc.kernel.exps.SelectConstructor.evaluate(SelectConstructor.java:87)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.createWhereSelects(JDBCStoreQuery.java:360)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreQuery.executeQuery(JDBCStoreQuery.java:193)
at
org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeQuery(ExpressionStoreQuery.java:783)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:1005)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:863)
... 96 more
The query is:
SELECT rec FROM com.testapp.model.TestRecord rec
WHERE
EXISTS (
SELECT attr
FROM com.testapp.model.TestAttribute attr
WHERE attr.record = rec AND attr.namespace.namespaceURI = ?1 AND attr.name =
?2 AND ( ( attr.valueTypeId = ?3 AND attr.stringValue = ?4 )))
AND ?5 MEMBER OF rec.recordTypes
AND rec.isVirtual = ?6
AND rec.recordId NOT IN (?7)
Thanks
--
View this message in context:
http://openjpa.208410.n2.nabble.com/Supposed-concurrent-access-issue-to-PCPath-instance-tp7585102p7585113.html
Sent from the OpenJPA Developers mailing list archive at Nabble.com.