symphonytool / symphony

The Symphony IDE
5 stars 4 forks source link

Interpreter: Null pointer when executing .. caseReplicated #237

Closed lausdahl closed 10 years ago

lausdahl commented 10 years ago

The following model were not possible to execute due to a null pointer:

channels
a:nat

process Test =
begin

state
numbersToSend:set of nat := {1,2}

operations

op:nat ==>()
op(i)== numbersToSend := numbersToSend\{i}

actions

  sendNumber =  ([]i in set numbersToSend @  a.i->(op(i));loop)
   loop =  (sendNumber [] ([card numbersToSend =0]&Skip))  
@ loop 
end

A cut down version of this looks like:

channels
    a:nat

process Test =
begin

actions

  sendNumber = ([]i in set {1} @  a.1->Skip;sendNumber;sendNumber)

@ sendNumber 
end

it gived the following exception:

java.lang.NullPointerException
    at eu.compassresearch.core.interpreter.CommonInspectionVisitor.caseASequentialComposition(CommonInspectionVisitor.java:1061)
    at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseASequentialCompositionAction(ActionInspectionVisitor.java:709)
    at eu.compassresearch.core.interpreter.ActionInspectionVisitor.caseASequentialCompositionAction(ActionInspectionVisitor.java:1)
    at eu.compassresearch.ast.actions.ASequentialCompositionAction.apply(ASequentialCompositionAction.java:335)
    at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:45)
    at eu.compassresearch.core.interpreter.CmlInspectionVisitor.defaultPAction(CmlInspectionVisitor.java:1)
    at eu.compassresearch.ast.analysis.QuestionAnswerCMLAdaptor.caseASequentialCompositionAction(QuestionAnswerCMLAdaptor.java:916)
    at eu.compassresearch.ast.actions.ASequentialCompositionAction.apply(ASequentialCompositionAction.java:335)
    at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.performInspection(ConcreteCmlBehaviour.java:357)
    at eu.compassresearch.core.interpreter.ConcreteCmlBehaviour.inspect(ConcreteCmlBehaviour.java:378)
    at eu.compassresearch.core.interpreter.VanillaCmlInterpreter.inspect(VanillaCmlInterpreter.java:321)
    at eu.compassresearch.core.interpreter.VanillaCmlInterpreter.executeTopProcess(VanillaCmlInterpreter.java:292)
    at eu.compassresearch.core.interpreter.VanillaCmlInterpreter.execute(VanillaCmlInterpreter.java:214)
    at eu.compassresearch.core.interpreter.InterpretAllCmlFilesTest.execute(InterpretAllCmlFilesTest.java:167)
    at ...
Test failed in : testInterpretCmlFile[11 : action\action-state.cml] : src\test\resources\standard\action\action-state.cml
java.lang.AssertionError: The test threw an unexpected exception : java.lang.NullPointerException
lausdahl commented 10 years ago

@joey-coleman You don't have to answer the mail I send it is about this model.