Bug #5172
closedExceptions are sometimes thrown during sensor workflow run
0%
Description
When running a sensor workflow (importing the localhost sensor simulator site), I will intermittently encounter one of three exceptions. I haven't checked, but I suspect that any sensor names given are not consistent between instances of an exception. Kepler will intercept the exception properly, and display an error message, stopping the workflow.
The exceptions are attached below:
--Exception 1 start--
ptolemy.kernel.util.InternalErrorException: Failed to compute port depth for .Unnamed1.sensor8.data
at ptolemy.actor.util.CausalityInterfaceForComposites._computeInputDepth(CausalityInterfaceForComposites.java:696)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeOutputPortDepth(CausalityInterfaceForComposites.java:756)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeInputDepth(CausalityInterfaceForComposites.java:692)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeActorDepth(CausalityInterfaceForComposites.java:527)
at ptolemy.actor.util.CausalityInterfaceForComposites.getDepthOfPort(CausalityInterfaceForComposites.java:373)
at ptolemy.domains.de.kernel.DEDirector._getDepthOfIOPort(DEDirector.java:1582)
at ptolemy.domains.de.kernel.DEDirector._enqueueTriggerEvent(DEDirector.java:1541)
at ptolemy.domains.de.kernel.DEReceiver.put(DEReceiver.java:162)
at ptolemy.actor.AbstractReceiver.putToAll(AbstractReceiver.java:332)
at ptolemy.actor.IOPort.broadcast(IOPort.java:288)
at ptolemy.actor.TypedIOPort.broadcast(TypedIOPort.java:238)
at org.kepler.sensor.actor.Sensor.fire(Sensor.java:323)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:459)
at ptolemy.actor.Manager.iterate(Manager.java:749)
at ptolemy.actor.Manager.execute(Manager.java:351)
at ptolemy.actor.Manager.run(Manager.java:1164)
at ptolemy.actor.Manager$3.run(Manager.java:1217)
--Exception 1 stop--
--Exception 2 start--
ptolemy.kernel.util.InternalErrorException: Because:
Attempt to get depth of ioPort .Unnamed1.CR800.sensors that was not sorted.
at ptolemy.domains.de.kernel.DEReceiver.put(DEReceiver.java:165)
at ptolemy.actor.AbstractReceiver.putToAll(AbstractReceiver.java:332)
at ptolemy.actor.IOPort.broadcast(IOPort.java:288)
at ptolemy.actor.TypedIOPort.broadcast(TypedIOPort.java:238)
at org.kepler.sensor.actor.Sensor.fire(Sensor.java:323)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:459)
at ptolemy.actor.Manager.iterate(Manager.java:749)
at ptolemy.actor.Manager.execute(Manager.java:351)
at ptolemy.actor.Manager.run(Manager.java:1164)
at ptolemy.actor.Manager$3.run(Manager.java:1217)
Caused by: ptolemy.kernel.util.IllegalActionException: Attempt to get depth of ioPort .Unnamed1.CR800.sensors that was not sorted.
at ptolemy.actor.util.CausalityInterfaceForComposites.getDepthOfPort(CausalityInterfaceForComposites.java:379)
at ptolemy.domains.de.kernel.DEDirector._getDepthOfIOPort(DEDirector.java:1582)
at ptolemy.domains.de.kernel.DEDirector._enqueueTriggerEvent(DEDirector.java:1541)
at ptolemy.domains.de.kernel.DEReceiver.put(DEReceiver.java:162)
... 10 more
Caused by: ptolemy.kernel.util.IllegalActionException: Attempt to get depth of ioPort .Unnamed1.CR800.sensors that was not sorted.
at ptolemy.actor.util.CausalityInterfaceForComposites.getDepthOfPort(CausalityInterfaceForComposites.java:379)
at ptolemy.domains.de.kernel.DEDirector._getDepthOfIOPort(DEDirector.java:1582)
at ptolemy.domains.de.kernel.DEDirector._enqueueTriggerEvent(DEDirector.java:1541)
at ptolemy.domains.de.kernel.DEReceiver.put(DEReceiver.java:162)
at ptolemy.actor.AbstractReceiver.putToAll(AbstractReceiver.java:332)
at ptolemy.actor.IOPort.broadcast(IOPort.java:288)
at ptolemy.actor.TypedIOPort.broadcast(TypedIOPort.java:238)
at org.kepler.sensor.actor.Sensor.fire(Sensor.java:323)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:459)
at ptolemy.actor.Manager.iterate(Manager.java:749)
at ptolemy.actor.Manager.execute(Manager.java:351)
at ptolemy.actor.Manager.run(Manager.java:1164)
at ptolemy.actor.Manager$3.run(Manager.java:1217)
--Exception 2 stop--
--Exception 3 start--
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:617)
at java.util.LinkedList$ListItr.next(LinkedList.java:552)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeInputDepth(CausalityInterfaceForComposites.java:669)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeOutputPortDepth(CausalityInterfaceForComposites.java:756)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeInputDepth(CausalityInterfaceForComposites.java:692)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeActorDepth(CausalityInterfaceForComposites.java:527)
at ptolemy.actor.util.CausalityInterfaceForComposites.getDepthOfPort(CausalityInterfaceForComposites.java:373)
at ptolemy.domains.de.kernel.DEDirector._getDepthOfIOPort(DEDirector.java:1582)
at ptolemy.domains.de.kernel.DEDirector._enqueueTriggerEvent(DEDirector.java:1541)
at ptolemy.domains.de.kernel.DEReceiver.put(DEReceiver.java:162)
at ptolemy.actor.AbstractReceiver.putToAll(AbstractReceiver.java:332)
at ptolemy.actor.IOPort.broadcast(IOPort.java:288)
at ptolemy.actor.TypedIOPort.broadcast(TypedIOPort.java:238)
at org.kepler.sensor.actor.Sensor.fire(Sensor.java:323)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:459)
at ptolemy.actor.Manager.iterate(Manager.java:749)
at ptolemy.actor.Manager.execute(Manager.java:351)
at ptolemy.actor.Manager.run(Manager.java:1164)
at ptolemy.actor.Manager$3.run(Manager.java:1217)
--Exception 3 stop--
Updated by Daniel Crawl about 14 years ago
I've also seen this exception occasionally when using the Sensor actors. It's possible that the Sensor actor is doing something not allowed in DE.
To reproduce, follow the instructions described here:
Note that it may take a few minutes before the exception occurs.
Updated by Sean Riddle about 14 years ago
One more found:
java.lang.NullPointerException
at diva.canvas.toolbox.BasicHighlighter.repaint(BasicHighlighter.java:204)
at diva.canvas.toolbox.BasicHighlighter.repaint(BasicHighlighter.java:189)
at diva.canvas.AbstractFigureContainer.repaint(AbstractFigureContainer.java:124)
at diva.canvas.CompositeFigure.repaint(CompositeFigure.java:415)
at diva.canvas.AbstractFigure.repaint(AbstractFigure.java:236)
at diva.canvas.AbstractFigure.repaint(AbstractFigure.java:224)
at diva.canvas.toolbox.LabelFigure.setString(LabelFigure.java:405)
at org.kepler.sensor.actor.Sensor.fire(Sensor.java:321)
at ptolemy.domains.de.kernel.DEDirector.fire(DEDirector.java:568)
at ptolemy.actor.CompositeActor.fire(CompositeActor.java:459)
at ptolemy.actor.Manager.iterate(Manager.java:749)
at ptolemy.actor.Manager.execute(Manager.java:351)
at ptolemy.actor.Manager.run(Manager.java:1164)
at ptolemy.actor.Manager$3.run(Manager.java:1217)
Updated by Daniel Crawl about 14 years ago
Here's another exception:
Exception in thread "Thread-51" java.lang.NullPointerException
at ptolemy.actor.util.CausalityInterfaceForComposites._computeInputDepth(CausalityInterfaceForComposites.java:681)
at ptolemy.actor.util.CausalityInterfaceForComposites._computeActorDepth(CausalityInterfaceForComposites.java:526)
at ptolemy.actor.util.CausalityInterfaceForComposites.getDepthOfActor(CausalityInterfaceForComposites.java:341)
at ptolemy.domains.de.kernel.DEDirector._getDepthOfActor(DEDirector.java:1567)
at ptolemy.domains.de.kernel.DEDirector._enqueueEvent(DEDirector.java:1504)
at ptolemy.domains.de.kernel.DEDirector.fireAt(DEDirector.java:771)
at ptolemy.actor.Director.fireAtCurrentTime(Director.java:439)
at org.kepler.sensor.actor.Sensor$ReadDataThread.run(Sensor.java:551)
Updated by Daniel Crawl about 14 years ago
Another GUI exception:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:93)
at sun.java2d.pipe.DuctusShapeRenderer.fill(DuctusShapeRenderer.java:50)
at sun.java2d.pipe.PixelToParallelogramConverter.fill(PixelToParallelogramConverter.java:146)
at sun.java2d.SunGraphics2D.fill(SunGraphics2D.java:2646)
at diva.canvas.toolbox.LabelFigure.paint(LabelFigure.java:307)
at diva.canvas.CompositeFigure.paint(CompositeFigure.java:303)
at diva.canvas.FigureLayer.paint(FigureLayer.java:393)
at diva.canvas.CanvasPane.paint(CanvasPane.java:216)
at diva.canvas.JCanvas.paint(JCanvas.java:202)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent._paintImmediately(JComponent.java:5098)
at javax.swing.JComponent.paintImmediately(JComponent.java:4882)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:811)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:713)
at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:693)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:125)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Updated by Daniel Crawl about 14 years ago
fireAtCurrentTime() is now being called in a ChangeRequest and this appears to stop the exceptions related to DE. This was a suggestion by Edward Lee as a workaround for a concurrency bug in the DE Director:
http://lists.nceas.ucsb.edu/kepler/pipermail/kepler-dev/2008-January/012099.html
Updated by Christopher Brooks about 14 years ago
I took a quick look at the
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at
sun.java2d.pipe.DuctusShapeRenderer.renderPath(DuctusShapeRenderer.java:93)
stack trace and did not find much:
http://stackoverflow.com/questions/1143099/what-causes-a-nullpointerexception-in-the-awt-eventqueue-0-thread - suggests using Eclipse to break on a NPE and
then follow the object back.
Looking around, it could be caused by running on one machine and displaying
on another.
I suspect that there is either a threading bug somewhere that causes this
stack trace or there is a general bug that is not specific to this bug
report that is causing it.
To track down this stack trace, we'd need to know more about the platform,
the JDK and how to replicate the bug.
Updated by Derik Barseghian almost 14 years ago
I also get the BasicHighlighter (comment#2) and DuctusShapeRenderer (comment#4) NPEs, on os X 10.6, java 1.6.
Updated by Derik Barseghian almost 14 years ago
changing bugs from REAP to Kepler product
Updated by Derik Barseghian almost 14 years ago
Dealing with the BasicHighlighter exception is probably the most important because when it happens workflow execution stops.
Updated by Daniel Crawl over 13 years ago
I updated the actor to change the icon text in the Swing thread and this appears to fix the problem.