NPE when launching the (joint deployment +) scheduling synthesis
Current status
If the joint deployment + schedule synthesis or the schedule synthesis is launched, an NPE occurs. This is due to the basic constraints are not added at the beginning of the ExplorationTarget/RuleSret list passed to the DSML to SMT transformation.
Proposed action
Mirror the solution from ticket #3641 (The part in the Z3Backend class). Therefore, the basic constraint construction code has to be moved from the GUI code.
Corresponding stack trace
!ENTRY org.fortiss.af3.exploration 4 4 2019-02-25 10:38:27.774
!MESSAGE Error executing DSE:
null.
!STACK 0
java.lang.NullPointerException
at
org.fortiss.af3.exploration.smt.modeltransformation.DSMLTransformationService.getFunctionForLeftSideType(DSMLTransformationService.java:513)
at
org.fortiss.af3.exploration.smt.modeltransformation.DSMLTransformationService.getAllocFunctionForLeftSideType(DSMLTransformationService.java:523)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.createAllocationExpression(ConstraintToNonQuantifiedSMT.java:345)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBoolean(ConstraintToNonQuantifiedSMT.java:209)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:140)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBinder(ConstraintToNonQuantifiedSMT.java:178)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:136)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBinder(ConstraintToNonQuantifiedSMT.java:178)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:136)
at
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.transfrom(ConstraintToNonQuantifiedSMT.java:121)
at
org.fortiss.af3.exploration.smt.modeltransformation.DSMLtoSMTTransformator.extractSMTExpr(DSMLtoSMTTransformator.java:309)
at
org.fortiss.af3.exploration.smt.modeltransformation.DSMLtoSMTTransformator.transform(DSMLtoSMTTransformator.java:168)
at
org.fortiss.af3.exploration.smt.modeltransformation.SolverRun.solveOptimized(SolverRun.java:320)
at
org.fortiss.af3.exploration.smt.modeltransformation.SolverRun.solve(SolverRun.java:191)
at
org.fortiss.af3.exploration.smt.backend.Z3Backend.executeDSE(Z3Backend.java:91)
at
org.fortiss.af3.exploration.service.internal.DSEBackendService$1.run(DSEBackendService.java:164)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.DSMLTransformationService.getFunctionForLeftSideType(DSMLTransformationService.java:513)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.DSMLTransformationService.getAllocFunctionForLeftSideType(DSMLTransformationService.java:523)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.createAllocationExpression(ConstraintToNonQuantifiedSMT.java:345)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBoolean(ConstraintToNonQuantifiedSMT.java:209)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:140)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBinder(ConstraintToNonQuantifiedSMT.java:178)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:136)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMTBinder(ConstraintToNonQuantifiedSMT.java:178)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.774
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.toSMT(ConstraintToNonQuantifiedSMT.java:136)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.ConstraintToNonQuantifiedSMT.transfrom(ConstraintToNonQuantifiedSMT.java:121)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.DSMLtoSMTTransformator.extractSMTExpr(DSMLtoSMTTransformator.java:309)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.DSMLtoSMTTransformator.transform(DSMLtoSMTTransformator.java:168)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.SolverRun.solveOptimized(SolverRun.java:320)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.modeltransformation.SolverRun.solve(SolverRun.java:191)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.smt.backend.Z3Backend.executeDSE(Z3Backend.java:91)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.776
!MESSAGE
org.fortiss.af3.exploration.service.internal.DSEBackendService$1.run(DSEBackendService.java:164)
!SUBENTRY 1 org.fortiss.af3.exploration 4 0 2019-02-25 10:38:27.777
!MESSAGE org.eclipse.core.internal.jobs.Worker.run(Worker.java:60)
Steps to reproduce
Should be obvious / any qualified model should be OK.
(from redmine: issue id 3648, created on 2019-02-25, closed on 2019-02-27)