Unable to serialize Trigger for type: class org.drools.core.time.impl.CompositeMaxDurationTrigger using BRMS 6.0
Issue
We are using BRMS 6.0.3 with the following rule:
rule "DUMMY_RULE"
ruleflow-group "core"
when
$event: DummyEvent()
not OtherDummyEvent(this after[0,96h] $event)
not DummyEvent(this != $event, this after[0,96h] $event)
then
// Do something
end
When running a stateful KieSession in STREAM mode and when a DummyEvent is inserted into the working memory, it results in a then serialization failure. An instance of the org.drools.core.time.impl.CompositeMaxDurationTrigger class is created, but org.drools.core.marshalling.impl.ProtobufOutputMarshaller is not able to serialize this type of trigger. It fails with the following stacktrace:
Caused by: java.lang.RuntimeException: Unable to serialize Trigger for type: class org.drools.core.time.impl.CompositeMaxDurationTrigger
at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.writeTrigger(ProtobufOutputMarshaller.java:936)
at org.drools.core.phreak.PhreakTimerNode$TimerNodeTimerOutputMarshaller.serialize(PhreakTimerNode.java:568)
at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.writeTimers(ProtobufOutputMarshaller.java:871)
at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.serializeSession(ProtobufOutputMarshaller.java:213)
at org.drools.core.marshalling.impl.ProtobufOutputMarshaller.writeSession(ProtobufOutputMarshaller.java:119)
at org.drools.core.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:166)
at org.drools.core.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:148)
Environment
- Red Hat JBoss BRMS
- 6.0.2
- 6.0.3
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.