[jboss-svn-commits] JBL Code SVN: r29575 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: management and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Oct 11 15:20:11 EDT 2009


Author: tirelli
Date: 2009-10-11 15:20:10 -0400 (Sun, 11 Oct 2009)
New Revision: 29575

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java
Log:
JBRULES-2294: fixing NPE when a user or rule tries to modify an expired fact

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-10-10 22:31:52 UTC (rev 29574)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java	2009-10-11 19:20:10 UTC (rev 29575)
@@ -1283,7 +1283,7 @@
                 handle = this.objectStore.reconnect( handle );
             }
 
-            if ( handle.getId() == -1 ) {
+            if ( handle.getId() == -1 || ( handle.isEvent() && ((EventFactHandle)handle).isExpired() ) ) {
                 // the handle is invalid, most likely already retracted, so
                 // return
                 return;
@@ -1353,6 +1353,12 @@
 
             InternalFactHandle handle = (InternalFactHandle) factHandle;
 
+            if ( handle.getId() == -1 || ( handle.isEvent() && ((EventFactHandle)handle).isExpired() ) ) {
+                // the handle is invalid, most likely already retracted, so
+                // return
+                return;
+            }
+
             // the handle might have been disconnected, so reconnect if it has
             if ( factHandle instanceof DisconnectedFactHandle ) {
                 handle = this.objectStore.reconnect( handle );
@@ -1460,7 +1466,7 @@
             final InternalFactHandle handle = (InternalFactHandle) factHandle;
             final Object originalObject = handle.getObject();
 
-            if ( handle.getId() == -1 || object == null ) {
+            if ( handle.getId() == -1 || object == null || (handle.isEvent() && ((EventFactHandle)handle).isExpired()) ) {
                 // the handle is invalid, most likely already retracted, so
                 // return
                 // and we cannot assert a null object

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2009-10-10 22:31:52 UTC (rev 29574)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java	2009-10-11 19:20:10 UTC (rev 29575)
@@ -185,7 +185,7 @@
             final InternalFactHandle handle = (InternalFactHandle) factHandle;
             final Object originalObject = handle.getObject();
 
-            if ( handle.getId() == -1 || object == null ) {
+            if ( handle.getId() == -1 || object == null || ( handle.isEvent() && ((EventFactHandle)handle).isExpired() )) {
                 // the handle is invalid, most likely already retracted, so
                 // return
                 // and we cannot assert a null object
@@ -328,7 +328,7 @@
             // ((ShadowProxy) handle.getObject()).getShadowedObject() :
             // handle.getObject();
 
-            if ( handle.getId() == -1 ) {
+            if ( handle.getId() == -1 || ( handle.isEvent() && ((EventFactHandle)handle).isExpired() ) ) {
                 // the handle is invalid, most likely already retracted, so
                 // return
                 return;
@@ -394,6 +394,12 @@
             final InternalFactHandle handle = (InternalFactHandle) factHandle;
             final Object originalObject = handle.getObject();
 
+            if ( handle.getId() == -1 || ( handle.isEvent() && ((EventFactHandle)handle).isExpired() ) ) {
+                // the handle is invalid, most likely already retracted, so
+                // return
+                return;
+            }
+
             this.handleFactory.increaseFactHandleRecency( handle );
 
             if ( activation != null ) {

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java	2009-10-10 22:31:52 UTC (rev 29574)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java	2009-10-11 19:20:10 UTC (rev 29575)
@@ -258,7 +258,7 @@
                 this.activationsCreated = new AtomicLong(0);
                 this.activationsCancelled = new AtomicLong(0);
                 this.firingTime = new AtomicLong(0);
-                this.lastReset = new AtomicReference(new Date());
+                this.lastReset = new AtomicReference<Date>(new Date());
             }
             
             public void startFireClock() {



More information about the jboss-svn-commits mailing list