Project

General

Profile

Actions

Bug #5172

closed

Exceptions are sometimes thrown during sensor workflow run

Added by Sean Riddle over 13 years ago. Updated almost 13 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--

Actions #1

Updated by Daniel Crawl over 13 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.

Actions #2

Updated by Sean Riddle over 13 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)

Actions #3

Updated by Daniel Crawl over 13 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)

Actions #4

Updated by Daniel Crawl over 13 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)

Actions #5

Updated by Daniel Crawl over 13 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

Actions #6

Updated by Christopher Brooks over 13 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.

Actions #7

Updated by Derik Barseghian over 13 years ago

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

Actions #8

Updated by Derik Barseghian about 13 years ago

changing bugs from REAP to Kepler product

Actions #9

Updated by Derik Barseghian about 13 years ago

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

Actions #10

Updated by Daniel Crawl almost 13 years ago

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

Actions #11

Updated by Redmine Admin about 11 years ago

Original Bugzilla ID was 5172

Actions

Also available in: Atom PDF