Project

General

Profile

Bug #5172

Exceptions are sometimes thrown during sensor workflow run

Added by Sean Riddle almost 9 years ago. Updated over 8 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
sensor-view
Target version:
Start date:
09/08/2010
Due date:
% Done:

0%

Estimated time:
Bugzilla-Id:
5172

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--

History

#1 Updated by Daniel Crawl almost 9 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:

https://kepler-project.org/developers/incubation/kepler-engineering-view-for-reap/running-sensor-simulator

Note that it may take a few minutes before the exception occurs.

#2 Updated by Sean Riddle almost 9 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)

#3 Updated by Daniel Crawl almost 9 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)

#4 Updated by Daniel Crawl almost 9 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)

#5 Updated by Daniel Crawl almost 9 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

#6 Updated by Christopher Brooks almost 9 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.

#7 Updated by Derik Barseghian over 8 years ago

I also get the BasicHighlighter (comment#2) and DuctusShapeRenderer (comment#4) NPEs, on os X 10.6, java 1.6.

#8 Updated by Derik Barseghian over 8 years ago

changing bugs from REAP to Kepler product

#9 Updated by Derik Barseghian over 8 years ago

Dealing with the BasicHighlighter exception is probably the most important because when it happens workflow execution stops.

#10 Updated by Daniel Crawl over 8 years ago

I updated the actor to change the icon text in the Swing thread and this appears to fix the problem.

#11 Updated by Redmine Admin over 6 years ago

Original Bugzilla ID was 5172

Also available in: Atom PDF