[jboss-svn-commits] JBL Code SVN: r19235 - 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
Wed Mar 26 08:08:15 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-03-26 08:08:15 -0400 (Wed, 26 Mar 2008)
New Revision: 19235
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
Log:
JBRULES-1520 RightTuple merge for asynchronous Rete propagations
-RightInputAdapter now compiles
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java 2008-03-26 11:04:57 UTC (rev 19234)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RightInputAdapterNode.java 2008-03-26 12:08:15 UTC (rev 19235)
@@ -145,16 +145,24 @@
final ObjectHashMap memory = (ObjectHashMap) workingMemory.getNodeMemory( this );
// retrieve handle from memory
- final InternalFactHandle handle = (InternalFactHandle) memory.remove( tuple );
+ final InternalFactHandle factHandle = (InternalFactHandle) memory.remove( tuple );
- // propagate a retract for it
- this.sink.propagateRetractObject( handle,
- context,
- workingMemory,
- true );
+ for ( RightTuple rightTuple = factHandle.getRightTuple(); rightTuple != null; rightTuple = (RightTuple) rightTuple.getHandleNext() ) {
+ rightTuple.getRightTupleSink().retractRightTuple( rightTuple,
+ context,
+ workingMemory );
+ }
+ factHandle.setRightTuple( null );
+ for ( LeftTuple leftTuple = factHandle.getLeftTuple(); leftTuple != null; leftTuple = (LeftTuple) leftTuple.getLeftParentNext() ) {
+ leftTuple.getSink().retractLeftTuple( leftTuple,
+ context,
+ workingMemory );
+ }
+ factHandle.setLeftTuple( null );
+
// destroy dummy handle
- workingMemory.getFactHandleFactory().destroyFactHandle( handle );
+ workingMemory.getFactHandleFactory().destroyFactHandle( factHandle );
}
public void attach() {
More information about the jboss-svn-commits
mailing list