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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 23 23:07:27 EDT 2006


Author: mark.proctor at jboss.com
Date: 2006-10-23 23:07:26 -0400 (Mon, 23 Oct 2006)
New Revision: 7063

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
Log:
-Made retract work, by using an instanceof ShadowFact

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2006-10-24 02:33:30 UTC (rev 7062)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/Rete.java	2006-10-24 03:07:26 UTC (rev 7063)
@@ -22,6 +22,7 @@
 
 import org.drools.FactException;
 import org.drools.RuleBaseConfiguration;
+import org.drools.base.ShadowProxy;
 import org.drools.common.BaseNode;
 import org.drools.common.InternalFactHandle;
 import org.drools.common.InternalWorkingMemory;
@@ -139,8 +140,14 @@
 
         final Object object = handle.getObject();
 
-        // @todo : this is a nasty hack to make manners  run, fix asap!!!
-        final ObjectTypeNode[] cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass().getSuperclass() );
+        ObjectTypeNode[] cachedNodes;
+        // //@todo this  is a hack, we really  don't want to be doing instanceof here 
+        if ( object instanceof ShadowProxy ){
+        	cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass().getSuperclass() );
+        } else {
+        	cachedNodes = (ObjectTypeNode[]) memory.get( object.getClass() );	
+        }
+         
         if ( cachedNodes == null ) {
             // it is  possible that there are no ObjectTypeNodes for an  object being retracted
             return;




More information about the jboss-svn-commits mailing list