[jboss-jira] [JBoss JIRA] Issue Comment Edited: (JBRULES-3209) ReloadSessionTest fails when trying to unmarshall FactHandle

Marco Rietveld (JIRA) jira-events at lists.jboss.org
Wed Sep 14 20:13:26 EDT 2011


    [ https://issues.jboss.org/browse/JBRULES-3209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628533#comment-12628533 ] 

Marco Rietveld edited comment on JBRULES-3209 at 9/14/11 8:13 PM:
------------------------------------------------------------------

Actually, what's causing this is that before september 13th, when the session was marshalled, no initialFactNode was retrieved and marshalled -- and now that _is_ happening. 

The following code is from the OutputMarshaller class: 
{code}
    public static void writeInitialFactHandleRightTuples(MarshallerWriteContext context) throws IOException {
        ObjectOutputStream stream = context.stream;
        InternalRuleBase ruleBase = context.ruleBase;

        ObjectTypeNode initialFactNode = ruleBase.getRete().getEntryPointNode( EntryPoint.DEFAULT ).getObjectTypeNodes().get( ClassObjectType.InitialFact_ObjectType );

        // do we write the fact to the objecttypenode memory
        if ( initialFactNode != null ) {  // <-- this if clause was not entered before! 
{code}

      was (Author: marco.rietveld):
    Actually, what's causing this is that before september 13th, when the session was marshalled, no initialFactNode was retrieved and marshalled -- and now that _is_ happening. 

{code}
    public static void writeInitialFactHandleRightTuples(MarshallerWriteContext context) throws IOException {
        ObjectOutputStream stream = context.stream;
        InternalRuleBase ruleBase = context.ruleBase;

        ObjectTypeNode initialFactNode = ruleBase.getRete().getEntryPointNode( EntryPoint.DEFAULT ).getObjectTypeNodes().get( ClassObjectType.InitialFact_ObjectType );

        // do we write the fact to the objecttypenode memory
        if ( initialFactNode != null ) {  // <-- this if clause was not entered before! 
{code}
  
> ReloadSessionTest fails when trying to unmarshall FactHandle
> ------------------------------------------------------------
>
>                 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
>            Reporter: Marco Rietveld
>            Assignee: Marco Rietveld
>            Priority: Minor
>
> The org.drools.persistence.session.ReloadSessionTest fails at the moment. 
> I'm seeing a npe 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}
> The cause of this seems to be that when InputMarshaller.readFactHandles(MarshallerReaderContext) runs in this test, the sinkId retrieved from the stream is _6_, but should be 2. The context contains an ObjectTypeNode with id 2, but not 6, in other words (and id 2 maps correctly).
> When I change the value (during debugging) to 2, the test completes successfully. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list