[jboss-svn-commits] JBL Code SVN: r33555 - in labs/jbossrules/trunk: drools-persistence-jpa/src/main/java/org/drools/persistence/session and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jun 18 17:06:32 EDT 2010


Author: tirelli
Date: 2010-06-18 17:06:32 -0400 (Fri, 18 Jun 2010)
New Revision: 33555

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/runtime/rule/FireUntilHaltCommand.java
   labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
Log:
JBRULES-2552: making FireUntilHaltCommand non-blocking.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/runtime/rule/FireUntilHaltCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/runtime/rule/FireUntilHaltCommand.java	2010-06-18 20:21:58 UTC (rev 33554)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/command/runtime/rule/FireUntilHaltCommand.java	2010-06-18 21:06:32 UTC (rev 33555)
@@ -11,6 +11,7 @@
 public class FireUntilHaltCommand
     implements
     GenericCommand<Object> {
+    private static final long serialVersionUID = -482292109159215861L;
 
     private AgendaFilter agendaFilter = null;
 
@@ -23,12 +24,17 @@
 
     public Integer execute(Context context) {
         StatefulKnowledgeSession ksession = ((KnowledgeCommandContext) context).getStatefulKnowledgesession();
-        ReteooWorkingMemory session = ((StatefulKnowledgeSessionImpl)ksession).session;
-        if ( agendaFilter != null ) {
-            session.fireUntilHalt( new StatefulKnowledgeSessionImpl.AgendaFilterWrapper( agendaFilter ) );
-        } else {
-            session.fireUntilHalt();
-        }
+        final ReteooWorkingMemory session = ((StatefulKnowledgeSessionImpl)ksession).session;
+        
+        new Thread(new Runnable() {
+            public void run() {
+                if ( agendaFilter != null ) {
+                    session.fireUntilHalt( new StatefulKnowledgeSessionImpl.AgendaFilterWrapper( agendaFilter ) );
+                } else {
+                    session.fireUntilHalt();
+                }
+            }
+        }).start();
 
         return null;
     }

Modified: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2010-06-18 20:21:58 UTC (rev 33554)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java	2010-06-18 21:06:32 UTC (rev 33555)
@@ -221,8 +221,6 @@
     }
 
     public synchronized <T> T execute(GenericCommand<T> command) {
-        ksession.halt();
-
         boolean localTransaction = false;
         UserTransaction ut = null;
         try {



More information about the jboss-svn-commits mailing list