How to instrument `SuspendableRunnable`s ?

45 views
Skip to first unread message

Ahmet Özkök

unread,
Jun 5, 2016, 1:27:07 PM6/5/16
to quasar-pulsar-user
I have some Runnable, and there is always a Null Pointer Exception with it. here is the code (which is from Experiment.java of desmoj): 


try
{
this._schedulerStrand = this.getStrandFactory().create("proceed", new SuspendableRunnable()
{
private static final long serialVersionUID = -1079147860194926426L;
@Override
@Suspendable
public void run()
{
try
{
doProceed();
}
catch (SuspendExecution e)
{
throw new AssertionError(e);
}
}
});
this._schedulerStrand.start();
this._schedulerStrand.join();
this._schedulerStrand = null;
}
catch (AssertionError e)
{
if (e.getCause() instanceof SuspendExecution)
{
throw ((SuspendExecution) e.getCause());
}
throw e;
}

And here is the exception log:

java.lang.NullPointerException
at co.paralleluniverse.strands.Strand.park(Strand.java:458)
at desmoj.core.simulator.SimProcess.start(SimProcess.java:2133)
at desmoj.core.simulator.Scheduler.processNextEventNote(Scheduler.java:643)
at desmoj.core.simulator.Experiment.doProceed(Experiment.java:1459)
at desmoj.core.simulator.Experiment$2.run(Experiment.java:1386)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run(SuspendableUtils.java:44)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run(SuspendableUtils.java:32)
at co.paralleluniverse.fibers.Fiber.run(Fiber.java:1027)
WARNING: Uninstrumented methods (marked '**') or call-sites (marked '!!') detected on the call stack: 
at co.paralleluniverse.strands.Strand.park) (Strand.java:458 bci: 56)
at desmoj.core.simulator.SimProcess.start) (SimProcess.java:2133 bci: 144)
at desmoj.core.simulator.Scheduler.processNextEventNote) (Scheduler.java:643 bci: 970) **
at desmoj.core.simulator.Experiment.doProceed (Experiment.java:1459 bci: 9) **
at desmoj.core.simulator.Experiment$2.run (Experiment.java:1386 bci: 76)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run (SuspendableUtils.java:44 bci: 4)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run (SuspendableUtils.java:32 bci: 1)
at co.paralleluniverse.fibers.Fiber.run (Fiber.java:1027 bci: 11)
at co.paralleluniverse.fibers.Fiber.run1 (Fiber.java:1022 bci: 1)

java.util.concurrent.ExecutionException: java.lang.NullPointerException
at co.paralleluniverse.fibers.Fiber.get(Fiber.java:1317)
at co.paralleluniverse.fibers.Fiber.join(Fiber.java:1292)
at desmoj.core.simulator.Experiment.proceed(Experiment.java:1396)
at desmoj.core.simulator.Experiment.start(Experiment.java:2225)
at desmoj.core.simulator.Experiment.start(Experiment.java:2167)
Caused by: java.lang.NullPointerException
at co.paralleluniverse.strands.Strand.park(Strand.java:458)
at desmoj.core.simulator.SimProcess.start(SimProcess.java:2133)
at desmoj.core.simulator.Scheduler.processNextEventNote(Scheduler.java:643)
at desmoj.core.simulator.Experiment.doProceed(Experiment.java:1459)
at desmoj.core.simulator.Experiment$2.run(Experiment.java:1386)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run(SuspendableUtils.java:44)
at co.paralleluniverse.strands.SuspendableUtils$VoidSuspendableCallable.run(SuspendableUtils.java:32)
at co.paralleluniverse.fibers.Fiber.run(Fiber.java:1027)
at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1022)
at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:732)
at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:95)
at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:86)
at co.paralleluniverse.common.util.SameThreadExecutor.execute(SameThreadExecutor.java:30)
at co.paralleluniverse.fibers.FiberExecutorScheduler.execute(FiberExecutorScheduler.java:77)
at co.paralleluniverse.fibers.RunnableFiberTask.submit(RunnableFiberTask.java:289)
at co.paralleluniverse.fibers.Fiber.start(Fiber.java:1058)
at co.paralleluniverse.fibers.Fiber.start(Fiber.java:79)
at desmoj.core.simulator.Experiment.proceed(Experiment.java:1395)

Should this be about instrumenting SuspendableRunnables falsely?
Reply all
Reply to author
Forward
0 new messages