]
Marco Rietveld updated JBRULES-3209:
------------------------------------
Summary: ReloadSessionTest fails when trying to unmarshall the session
(was: Unmarshalling a marshalled session fails when a fact has been inserted into the
session)
Affects Version/s: (was: 5.2.1.Final)
ReloadSessionTest fails when trying to unmarshall the session
-------------------------------------------------------------
Key: JBRULES-3209
URL:
https://issues.jboss.org/browse/JBRULES-3209
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core
Affects Versions: 5.3.0.CR1
Reporter: Marco Rietveld
Assignee: Marco Rietveld
Priority: Minor
Unmarshalling a marshalled session fails when a fact has been inserted into the session.
This can be seen in the org.drools.persistence.session.ReloadSessionTest, which fails at
the moment.
An npe is thrown here:
{code}
ConcurrentNodeMemories.getNodeMemory(NodeMemory) line: 65
ReteooStatefulSession(AbstractWorkingMemory).getNodeMemory(NodeMemory) line: 1040
InputMarshaller.readFactHandles(MarshallerReaderContext) line: 373
InputMarshaller.readSession(MarshallerReaderContext, int, ExecutorService, Environment,
SessionConfiguration) line: 255
DefaultMarshaller.unmarshall(InputStream, KnowledgeSessionConfiguration, Environment)
line: 92
SessionMarshallingHelper.loadSnapshot(byte[], StatefulKnowledgeSession) line: 91
SingleSessionCommandService.initKsession(Integer, KnowledgeBase,
KnowledgeSessionConfiguration) line: 221
{code}
This _only_ happens when the knowledge base is reinitialized before reloading the
statefulKnowledgeSession:
{code}
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add( ResourceFactory.newByteArrayResource(rule.getBytes()), ResourceType.DRL);
if (kbuilder.hasErrors()) {
fail(kbuilder.getErrors().toString());
}
KnowledgeBase newkbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
StatefulKnowledgeSession newCommandKSession
= JPAKnowledgeService.loadStatefulKnowledgeSession(sessionInfoId, newkbase, null,
env);
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: