Hi All,
This is related to CMP2.1 on tomee+.
I am getting Optimisticlockexception. When calling remove for both child
and parent.
1. I am getting below exception when I call remove on both
"RuleConditionBean"(Child) and "RuleBean"(parent).
2. I don't get exception when I all remove only on RuleBean(Parent).
As I want to follow the first way only because don't want to change my
existing code.
openejb-orm.xml:
<entity class="openejb.com.rage.rule.dal.ejb.RuleBean" name="RuleBean">
<description>Rule#RuleBean</description>
<named-query
name="RuleBean.findByRuleNameAppId(java.lang.String,java.lang.Integer)">
<query>SELECT OBJECT(r) FROM RuleBean AS r WHERE
(r.rule_Name = ?1 AND
r.appl_Seq_Id = ?2)</query>
</named-query>
<attributes>
<id name="rule_Seq_Id">
<column name="RULE_SEQ_ID" />
<generated-value strategy="TABLE"
generator="RD_SEQUENCE" />
</id>
<basic name="appl_Seq_Id">
<column name="APPL_SEQ_ID" />
</basic>
<basic name="rule_Name">
<column name="RULE_NAME" />
</basic>
<one-to-many mapped-by="rule" name="ruleConditions">
<cascade>
<cascade-All/>
</cascade>
</one-to-many>
</attributes>
</entity>
<entity class="openejb.com.rage.rule.dal.ejb.RuleConditionBean"
name="RuleConditionBean">
<description>Rule#RuleConditionBean</description>
<id-class class="com.rage.rule.dal.ejb.RuleConditionPK" />
<named-query
name="RuleConditionBean.findByRuleKey(java.lang.Integer)">
<query>SELECT OBJECT(r) FROM RuleConditionBean AS r
WHERE r.rule_Seq_Id =
?1</query>
</named-query>
<attributes>
<id name="rule_Seq_Id">
<column updatable="false" name="RULE_SEQ_ID" />
</id>
<id name="cond_Paramseq_No">
<column updatable="false"
name="COND_PARAMSEQ_NO" />
</id>
<basic name="cond_Lhs">
<column name="COND_LHS" />
</basic>
<many-to-one optional="true" name="rule">
<join-column nullable="false"
name="RULE_SEQ_ID" />
</many-to-one>
</attributes>
</entity>
-----------------------------------------------------------------------------
WARNING: Unexpected exception from beforeCompletion; transaction will roll
back
<openjpa-2.2.0-r422266:1244990 nonfatal store error>
org.apache.openjpa.persistence.Optimi
sticLockException: Optimistic locking errors were detected when flushing to
the data store
. The following objects may have been concurrently modified in another
transaction: [open
ejb.com.rage.rule.dal.ejb.RuleConditionBean-Rule Condition: Id =
15285Sequence No. = 1]
at
org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2326)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2174)
at
org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2072)
at
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1990)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(Transa
ctionImpl.java:527)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(Transa
ctionImpl.java:512)
at
org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare(Transacti
onImpl.java:413)
at
org.apache.geronimo.transaction.manager.TransactionImpl.commit(TransactionImpl.
java:262)
at
org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit(Transacti
onManagerImpl.java:252)
at
org.apache.openejb.core.transaction.JtaTransactionPolicy.completeTransaction(Jt
aTransactionPolicy.java:328)
at
org.apache.openejb.core.transaction.TxRequired.commit(TxRequired.java:75)
at
org.apache.openejb.core.transaction.EjbTransactionUtil.afterInvoke(EjbTransacti
onUtil.java:73)
at
org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer
.java:257)
at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.
java:189)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(Ej
bObjectProxyHandler.java:253)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxy
Handler.java:248)
at
org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler
.java:92)
at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java
:279)
at $Proxy139.delete(Unknown Source)
at com.rage.rule.bizcomp.RuleHandler.service(RuleHandler.java:120)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:305)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:210)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
222)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
123)
at
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.ja
va:472)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:11
8)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processo
r.java:1004)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractPr
otocol.java:589)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310
)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:
886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
--
View this message in context:
http://openejb.979440.n4.nabble.com/Optimi-sticLockException-Optimistic-locking-errors-were-detected-when-flushing-to-the-data-store-tp4660338.html
Sent from the OpenEJB User mailing list archive at Nabble.com.