[jboss-svn-commits] JBL Code SVN: r12919 - labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Jun 28 07:02:43 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-06-28 07:02:42 -0400 (Thu, 28 Jun 2007)
New Revision: 12919

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObject.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/Future.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/RetractObject.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java
Log:
JBRULES-957 Async method calls don't work
-Stateful session calls are now unit tested
-Added ability to record any thrown Exceptions.

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObject.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObject.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObject.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -11,20 +11,33 @@
     Future {
     private Object          object;
     private volatile Object result;
+    private Exception       e;
 
     public AssertObject(final Object object) {
         this.object = object;
     }
 
     public void execute(final WorkingMemory workingMemory) {
-        this.result = workingMemory.insert( this.object );
+        try {
+            this.result = workingMemory.insert( this.object );
+        } catch ( Exception e ) {
+            this.e = e;
+        }
     }
 
     public Object getObject() {
         return this.result;
-    }
+    }    
 
     public boolean isDone() {
         return this.result != null;
     }
+    
+    public boolean exceptionThrown() {
+        return e != null;
+    }
+    
+    public Exception getException() {
+        return this.e;
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/AssertObjects.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -15,31 +15,30 @@
     Future {
     private Object        object;
     private volatile List results;
+    private Exception     e;
 
     public AssertObjects(final Object object) {
         this.object = object;
     }
 
     public void execute(final WorkingMemory workingMemory) {
-        if ( this.object instanceof Object[] ) {
-            final Object[] objects = (Object[]) this.object;
-            for ( int i = 0; i < objects.length; i++ ) {
-                workingMemory.insert( objects[i] );
+        try {
+            if ( this.object instanceof Object[] ) {
+                final Object[] objects = (Object[]) this.object;
+                this.results = new ArrayList( objects.length );
+                for ( int i = 0; i < objects.length; i++ ) {
+                    this.results.add( workingMemory.insert( objects[i] ) );
+                }
+            } else if ( this.object instanceof List ) {
+                final List list = (List) this.object;
+                this.results = new ArrayList( list.size() );
+                for ( final Iterator it = list.iterator(); it.hasNext(); ) {
+                    this.results.add( workingMemory.insert( it.next() ) );
+                }
             }
-            
-        } else if ( this.object instanceof List ) {
-            final List list = (List) this.object;
-            this.results = new ArrayList( list.size() );
-            for ( final Iterator it = list.iterator(); it.hasNext(); ) {
-                this.results.add( workingMemory.insert( it.next() ) );
-            }
-        } else {
-            final Object[] objects = (Object[]) this.object;
-            this.results = new ArrayList( objects.length );
-            for ( int i = 0, length = objects.length; i < length; i++ ) {
-                this.results.add( workingMemory.insert( objects[i] ) );
-            }
-        }
+        } catch ( Exception e ) {
+            this.e = e;
+        }        
     }
 
     public Object getObject() {
@@ -49,4 +48,12 @@
     public boolean isDone() {
         return this.results != null;
     }
+    
+    public boolean exceptionThrown() {
+        return e != null;
+    }
+    
+    public Exception getException() {
+        return this.e;
+    }    
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/FireAllRules.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -12,13 +12,18 @@
     Future {
     private AgendaFilter     agendaFilter;
     private volatile boolean done;
+    private Exception     e;
 
     public FireAllRules(final AgendaFilter agendaFilter) {
         this.agendaFilter = agendaFilter;
     }
 
     public void execute(final WorkingMemory workingMemory) {
-        workingMemory.fireAllRules( this.agendaFilter );
+        try {
+            workingMemory.fireAllRules( this.agendaFilter );
+        } catch ( Exception e ) {
+            this.e = e;
+        }
         this.done = true;
     }
 
@@ -29,4 +34,12 @@
     public boolean isDone() {
         return this.done;
     }
+    
+    public boolean exceptionThrown() {
+        return e != null;
+    }
+    
+    public Exception getException() {
+        return this.e;
+    }      
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/Future.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/Future.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/Future.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -6,4 +6,7 @@
     boolean isDone();
     
     Object getObject();
+    
+    boolean exceptionThrown();
+    Exception getException();
 }

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/RetractObject.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/RetractObject.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/RetractObject.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -12,6 +12,7 @@
     Future {
     private FactHandle       factHandle;
     private volatile boolean done;
+    private Exception     e;
 
     public RetractObject(final FactHandle factHandle) {
         this.factHandle = factHandle;
@@ -30,4 +31,12 @@
     public boolean isDone() {
         return this.done;
     }
+    
+    public boolean exceptionThrown() {
+        return e != null;
+    }
+    
+    public Exception getException() {
+        return this.e;
+    }    
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java	2007-06-28 11:02:37 UTC (rev 12918)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/concurrent/UpdateObject.java	2007-06-28 11:02:42 UTC (rev 12919)
@@ -13,6 +13,7 @@
     private FactHandle       factHandle;
     private Object           object;
     private volatile boolean done;
+    private Exception     e;
 
     public UpdateObject(final FactHandle factHandle,
                         final Object object) {
@@ -33,4 +34,12 @@
     public boolean isDone() {
         return this.done == true;
     }
+    
+    public boolean exceptionThrown() {
+        return e != null;
+    }
+    
+    public Exception getException() {
+        return this.e;
+    }    
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list