<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    Drools - unable to commit after fireRules with retract
</h3>
<span style="margin-bottom: 10px;">
    created by <a href="https://community.jboss.org/people/carlo.carrara">Carlo Carrara</a> in <i>jBPM</i> - <a href="https://community.jboss.org/message/736997#736997">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><p>I&rsquo;m using drools 5.4.0.Final &amp; JPA on JBossAS 7.1.1 and MySQL 5 with attached rules file.</p><p>All things go fine if I add facts in entry points "startVM" or "destroyVM" (related rules has &ldquo;retract&#8221; instruction commented), but things go wrong when I add facts in entry points "createVM" or "stopVM" (related rules has &ldquo;retract&#8221; instruction active).</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The events sequence is this:</p><ol start="1" style="list-style-type: decimal;"><li>Startup application with clean db</li><li>Execute fireRules</li><li>Add some facts in entry points "startVM" or "destroyVM" (related rules has &ldquo;retract&#8221; instruction commented)</li><li>Execute fireRules</li><li>Stop application</li><li>Restart application, reloading some facts from db</li><li>Add a fact in entry point "createVM" or "stopVM" (related rules has &ldquo;retract&#8221; instruction active)</li><li>Execute fireRules</li><li>Stop application</li><li>Restart application, reloading some facts from db</li><li>Execute fireRules: error thrown!</li></ol><p>I can do anything before step 7 in any combination, and everything goes fine. The problem is created by step 7.</p><p>Here the exception&#160; thrown:</p><p>Every &ldquo;add a fact&#8221; step and &ldquo;execute fireRules&#8221; step is under transaction.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>2012-05-21 19:46:06.441 | fireRules1 |&#160; |&#160; |&#160; | ERROR | com.abc.eventprocessor.rule.drools.DroolsRuleEngine | fireRules | error firing rules</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; javax.transaction.RollbackException: ARJUNA016053: Could not commit transaction.</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1177) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:167) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.abc.eventprocessor.rule.drools.DroolsRuleEngine.fireRules(DroolsRuleEngine.java:169) ~[classes:1.0.0-SNAPSHOT]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.abc.eventprocessor.scheduler.FireRulesJobDetail.executeInternal(FireRulesJobDetail.java:35) [classes:1.0.0-SNAPSHOT]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) [spring-context-support-3.1.1.RELEASE.jar:3.1.1.RELEASE]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.abc.commons.quartz.ClusterizableJobMap.executeInternal(ClusterizableJobMap.java:28) [commons-1.0.3-SNAPSHOT.jar:1.0.3-SNAPSHOT]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) [spring-context-support-3.1.1.RELEASE.jar:3.1.1.RELEASE]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.quartz.core.JobRunShell.run(JobRunShell.java:216) [quartz-1.8.4.jar:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) [quartz-1.8.4.jar:na]</p><p>Caused by: javax.persistence.PersistenceException: error during managed flush</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.ejb.AbstractEntityManagerImpl$CallbackExceptionMapperImpl.mapManagedFlushFailure(AbstractEntityManagerImpl.java:1486) ~[hibernate-entitymanager-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:109) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion(RegisteredSynchronization.java:53) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165) ~[na:na]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ... 10 common frames omitted</p><p>Caused by: java.lang.NullPointerException: null</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.reteoo.ObjectTypeNode$ExpireJobContextTimerOutputMarshaller.serialize(ObjectTypeNode.java:668) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.marshalling.impl.ProtobufOutputMarshaller.writeTimers(ProtobufOutputMarshaller.java:691) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.marshalling.impl.ProtobufOutputMarshaller.serializeSession(ProtobufOutputMarshaller.java:176) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.marshalling.impl.ProtobufOutputMarshaller.writeSession(ProtobufOutputMarshaller.java:100) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:169) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:151) ~[drools-core-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.persistence.SessionMarshallingHelper.getSnapshot(SessionMarshallingHelper.java:72) ~[drools-persistence-jpa-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.drools.persistence.info.SessionInfo.update(SessionInfo.java:85) ~[drools-persistence-jpa-5.4.0.Final.jar:5.4.0.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.ejb.event.BeanCallback.invoke(BeanCallback.java:39) ~[hibernate-entitymanager-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:110) ~[hibernate-entitymanager-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.ejb.event.EntityCallbackHandler.preUpdate(EntityCallbackHandler.java:95) ~[hibernate-entitymanager-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.ejb.event.EJB3FlushEntityEventListener.invokeInterceptor(EJB3FlushEntityEventListener.java:65) ~[hibernate-entitymanager-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:315) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:266) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:149) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:225) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1081) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:315) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; at org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorImpl.beforeCompletion(SynchronizationCallbackCoordinatorImpl.java:104) ~[hibernate-core-4.0.1.Final.jar!/:4.0.1.Final]</p><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ... 16 common frames omitted</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>After this error I need to clean the db and loose session data.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>How can I get out of this problem?</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Reply to this message by <a href="https://community.jboss.org/message/736997#736997">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>