[
https://jira.jboss.org/browse/JBRULES-2453?page=com.atlassian.jira.plugin...
]
Uli Bubenheimer commented on JBRULES-2453:
------------------------------------------
Adding additional information from mailing list thread as requested by Edson:
For illustration, below is a little rule base which lets me reproduce the issue. The three
fact types are pretty simple, and I insert 2 facts for DCMSeries and about 630 for
DCMInstance. The marshalling breaks if done after inserting the facts and before a call to
fireAllRules. Marshalling afterwards does not consistently exhibit this issue. Eliminating
the "not" condition also "fixes" the problem.
package mypackage
import somepackage.DCMInstance
import somepackage.DCMSeries
import somepackage.StackingOrder
rule "Stack Default"
when
DCMSeries( $suid : uid )
DCMInstance( seriesUID == $suid, $iuid: uid )
not StackingOrder(instanceUID == $iuid)
then
end
Marshalling issue with not rules
--------------------------------
Key: JBRULES-2453
URL:
https://jira.jboss.org/browse/JBRULES-2453
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (expert)
Affects Versions: 5.1.0.M1, 5.1.1.FINAL
Reporter: Kris Verlaenen
Assignee: Edson Tirelli
Fix For: 5.2.0.M1
Issue with OutputMarshaller in specific case of Not rules:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2786)
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:94)
at
java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1838)
at
java.io.ObjectOutputStream$BlockDataOutputStream.write(ObjectOutputStream.java:1769)
at java.io.DataOutputStream.writeInt(DataOutputStream.java:182)
at
java.io.ObjectOutputStream$BlockDataOutputStream.writeInt(ObjectOutputStream.java:1904)
at java.io.ObjectOutputStream.writeInt(ObjectOutputStream.java:769)
at
org.drools.marshalling.impl.OutputMarshaller.writeLeftTuple(OutputMarshaller.java:459)
at
org.drools.marshalling.impl.OutputMarshaller.writeInitialFactHandleLeftTuples(OutputMarshaller.java:356)
at
org.drools.marshalling.impl.OutputMarshaller.writeFactHandles(OutputMarshaller.java:251)
at
org.drools.marshalling.impl.OutputMarshaller.writeSession(OutputMarshaller.java:85)
at
org.drools.marshalling.impl.DefaultMarshaller.marshall(DefaultMarshaller.java:117)
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira