sybila / parasim

Tool for paralell simulations and verification
GNU General Public License v3.0
3 stars 1 forks source link

can't close parasim-gui application during experiment analysis execution #107

Closed papousek closed 11 years ago

tomvej commented 11 years ago

Now able to close parasim-gui during experiment simulation, but the following exception is thrown (tried on lorenz84):

2012-12-02 17:33:28,820 [pool-2-thread-2] ERROR dk.ange.octave.exec.OctaveExec - InterruptedException should not happen
java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:248)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at dk.ange.octave.exec.OctaveExec.getFromFuture(OctaveExec.java:156)
    at dk.ange.octave.exec.OctaveExec.eval(OctaveExec.java:141)
    at dk.ange.octave.io.OctaveIO.get(OctaveIO.java:75)
    at dk.ange.octave.OctaveEngine.get(OctaveEngine.java:159)
    at dk.ange.octave.OctaveEngine.get(OctaveEngine.java:174)
    at org.sybila.parasim.computation.simulation.octave.LsodeEngineFactory$LsodeEngine.rawSimulation(LsodeEngineFactory.java:90)
    at org.sybila.parasim.computation.simulation.octave.OctaveSimulationEngine.simulate(OctaveSimulationEngine.java:70)
    at org.sybila.parasim.computation.simulation.cpu.SimpleAdaptiveStepSimulator.simulate(SimpleAdaptiveStepSimulator.java:61)
    at org.sybila.parasim.computation.simulation.cpu.SimpleAdaptiveStepSimulator.simulate(SimpleAdaptiveStepSimulator.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.sybila.parasim.core.ProviderImpl$ProvidingMethodHandler.invoke(ProviderImpl.java:127)
    at org.sybila.parasim.core.extension.interceptor.impl.AbstractIntercepted$4.invoke(AbstractIntercepted.java:140)
    at org.sybila.parasim.core.extension.interceptor.impl.ManagedIntercepted$1.invoke(ManagedIntercepted.java:70)
    at org.sybila.parasim.computation.simulation.api.AdaptiveStepSimulator_$$_javassist_24.simulate(AdaptiveStepSimulator_$$_javassist_24.java)
    at org.sybila.parasim.application.model.ValidityRegionsComputation.call(ValidityRegionsComputation.java:149)
    at org.sybila.parasim.application.model.ValidityRegionsComputation.call(ValidityRegionsComputation.java:65)
    at org.sybila.parasim.execution.impl.SequentialExecution$1.call(SequentialExecution.java:90)
    at org.sybila.parasim.execution.impl.SequentialExecution$1.call(SequentialExecution.java:81)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
2012-12-02 17:33:28,831 [SwingWorker-pool-1-thread-1] ERROR org.sybila.parasim.application.gui.Main - Can't launch the experiment.
java.util.concurrent.ExecutionException: java.lang.InterruptedException
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
    at java.util.concurrent.FutureTask.get(FutureTask.java:119)
    at org.sybila.parasim.application.model.ExperimentLauncher.launch(ExperimentLauncher.java:57)
    at org.sybila.parasim.application.gui.Main$5.doInBackground(Main.java:132)
    at org.sybila.parasim.application.gui.Main$5.doInBackground(Main.java:124)
    at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at javax.swing.SwingWorker.run(SwingWorker.java:335)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:248)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at org.sybila.parasim.execution.impl.SharedMemoryExecution$1.call(SharedMemoryExecution.java:97)
    at org.sybila.parasim.execution.impl.SharedMemoryExecution$1.call(SharedMemoryExecution.java:88)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    ... 3 more
2012-12-02 17:33:28,830 [pool-2-thread-3] ERROR dk.ange.octave.exec.OctaveExec - InterruptedException should not happen
java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:248)
    at java.util.concurrent.FutureTask.get(FutureTask.java:111)
    at dk.ange.octave.exec.OctaveExec.getFromFuture(OctaveExec.java:156)
    at dk.ange.octave.exec.OctaveExec.eval(OctaveExec.java:141)
    at dk.ange.octave.OctaveEngine.unsafeEval(OctaveEngine.java:76)
    at dk.ange.octave.OctaveEngine.eval(OctaveEngine.java:122)
    at org.sybila.parasim.computation.simulation.octave.LsodeEngineFactory$LsodeEngine.rawSimulation(LsodeEngineFactory.java:89)
    at org.sybila.parasim.computation.simulation.octave.OctaveSimulationEngine.simulate(OctaveSimulationEngine.java:70)
    at org.sybila.parasim.computation.simulation.cpu.SimpleAdaptiveStepSimulator.simulate(SimpleAdaptiveStepSimulator.java:61)
    at org.sybila.parasim.computation.simulation.cpu.SimpleAdaptiveStepSimulator.simulate(SimpleAdaptiveStepSimulator.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.sybila.parasim.core.ProviderImpl$ProvidingMethodHandler.invoke(ProviderImpl.java:127)
    at org.sybila.parasim.core.extension.interceptor.impl.AbstractIntercepted$4.invoke(AbstractIntercepted.java:140)
    at org.sybila.parasim.core.extension.interceptor.impl.ManagedIntercepted$1.invoke(ManagedIntercepted.java:70)
    at org.sybila.parasim.computation.simulation.api.AdaptiveStepSimulator_$$_javassist_24.simulate(AdaptiveStepSimulator_$$_javassist_24.java)
    at org.sybila.parasim.application.model.ValidityRegionsComputation.call(ValidityRegionsComputation.java:149)
    at org.sybila.parasim.application.model.ValidityRegionsComputation.call(ValidityRegionsComputation.java:65)
    at org.sybila.parasim.execution.impl.SequentialExecution$1.call(SequentialExecution.java:90)
    at org.sybila.parasim.execution.impl.SequentialExecution$1.call(SequentialExecution.java:81)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at org.sybila.parasim.core.ManagerImpl.fire(ManagerImpl.java:168)
    at org.sybila.parasim.core.ManagerImpl.finalizeContext(ManagerImpl.java:308)
    at org.sybila.parasim.core.ManagerImpl.shutdown(ManagerImpl.java:271)
    at org.sybila.parasim.application.gui.Main$1.windowClosed(Main.java:70)
    at java.awt.AWTEventMulticaster.windowClosed(AWTEventMulticaster.java:360)
    at java.awt.AWTEventMulticaster.windowClosed(AWTEventMulticaster.java:359)
    at java.awt.Window.processWindowEvent(Window.java:2054)
    at javax.swing.JFrame.processWindowEvent(JFrame.java:290)
    at java.awt.Window.processEvent(Window.java:2009)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723)
    at java.awt.EventQueue.access$200(EventQueue.java:103)
    at java.awt.EventQueue$3.run(EventQueue.java:682)
    at java.awt.EventQueue$3.run(EventQueue.java:680)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:696)
    at java.awt.EventQueue$4.run(EventQueue.java:694)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:693)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
papousek commented 11 years ago

Unfortunately I can't catch InterruptedException. I've created #117 to handle NullPointerException,