[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