[kepler-dev] NIL token

Christopher Brooks cxh at eecs.berkeley.edu
Fri Apr 7 14:40:04 PDT 2006


Hi Tao,
Kepler does not start up for me, after removing ~/.kepler, I get the 
stack trace below.

I don't have the time to trash my trees and download fresh ones over
my slow link right now.

If I start them up with Vergil, then
kepler/workflows/test/test-eml-missing-value-column-vector.xml
kepler/workflows/test/test-eml-missing-value-field.xml
and do not show up on my laptop screen, they were saved on a larger
screen.   In general, can you save these models so they are
viewable on a 1024x768 screen?  

I edited
kepler/workflows/test/test-eml-missing-value-column-vector.xml by hand
and after ignoring some errors, I was able to open it in vergil, but
the source was gone, which made it hard to track down.

I'm rebuilding on a server on campus to see if I can get past these
issues now.

If you can create models that fail for me in Ptolemy, I can 
take a look.  

Here's the stack trace.
     [echo] java.library.path=c:/WINDOWS/system32
     [java] Opening user preferences PtolemyPreferences.xml...
     [java] Opening user library C:\Documents and Settings\cxh\.ptolemyII\UserLi
brary.xml...
     [java] KAR Library directories: [C:\cxh\src\kepler\kar\actors, C:\cxh\src\k
epler\kar\directors]
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.sdm.spa.ClustalW
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.sdm.spa.ClustalW
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.Initializer
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.NexusFileReader
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.PhyloDataReader
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.RecIDCM3
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeDecomposer
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeImprover
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeMerger
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeParser
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeToString
     [java] The class name you entered was not found in the classpath.  Note tha
t the class you are trying to enter must be in the classpath from which you laun
ched this program: org.cipres.TreeVizForester
     [java] java.lang.NullPointerException
     [java]     at org.kepler.objectmanager.ActorMetadata.getActorAsNamedObj(Act
orMetadata.java:571)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:668)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: Error building tree model: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: Error building tree model: Error building tree mod
el: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: Error building tree model: Error building tree mod
el: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary(Libr
aryIndex.java:567)
     [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibraryBuil
der.java:161)
     [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilApplicatio
n.java:216)
     [java]     at ptolemy.vergil.VergilApplication._createDefaultConfiguration(
VergilApplication.java:410)
     [java]     at ptolemy.vergil.VergilApplication._createEmptyConfiguration(Ve
rgilApplication.java:427)
     [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplication.
java:903)
     [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplication
.java:527)
     [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication.java
:210)
     [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplication.jav
a:107)
     [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.java:
34)
     [java] java.lang.Exception:

     [java] Kepler TableauFrame._getDefaultIconImage(): currentThread: Thread[AW
T-EventQueue-0,6,main] isEventDispatchThread: true
     [java]     at ptolemy.actor.gui.TableauFrame._getDefaultIconImage(TableauFr
ame.java:715)
     [java]     at ptolemy.actor.gui.TableauFrame.<init>(TableauFrame.java:121)
     [java]     at ptolemy.actor.gui.TableauFrame.<init>(TableauFrame.java:108)
     [java]     at ptolemy.actor.gui.PtolemyFrame.<init>(PtolemyFrame.java:97)
     [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFrame.j
ava:207)
     [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedGraphF
rame.java:95)
     [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFrame.j
ava:121)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraphTable
au.java:108)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTableau(
ActorGraphTableau.java:163)
     [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Ptolemy
TableauFactory.java:100)
     [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFactory
.java:122)
     [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Configur
ation.java:215)
     [java]     at ptolemy.vergil.VergilApplication$1.run(VergilApplication.java
:440)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:141)
     [java]     at java.awt.Dialog$1.run(Dialog.java:540)
     [java]     at java.awt.Dialog.show(Dialog.java:561)
     [java]     at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:840
)
     [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessageHan
dler.java:175)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:973)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100
)
     [java] java.lang.NullPointerException
     [java]     at org.kepler.objectmanager.ActorMetadata.getActorAsNamedObj(Act
orMetadata.java:571)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:668)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibrary(L
ibraryIndex.java:540)
     [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPane.jav
a:72)
     [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPane(Ta
bbedLibraryPane.java:228)
     [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(LibraryPa
neFactory.java:121)
     [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFrame.j
ava:352)
     [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedGraphF
rame.java:95)
     [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFrame.j
ava:121)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraphTable
au.java:108)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTableau(
ActorGraphTableau.java:163)
     [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Ptolemy
TableauFactory.java:100)
     [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFactory
.java:122)
     [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Configur
ation.java:215)
     [java]     at ptolemy.vergil.VergilApplication$1.run(VergilApplication.java
:440)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:141)
     [java]     at java.awt.Dialog$1.run(Dialog.java:540)
     [java]     at java.awt.Dialog.show(Dialog.java:561)
     [java]     at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:840
)
     [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessageHan
dler.java:175)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:973)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100
)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibrary(L
ibraryIndex.java:540)
     [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPane.jav
a:72)
     [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPane(Ta
bbedLibraryPane.java:228)
     [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(LibraryPa
neFactory.java:121)
     [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFrame.j
ava:352)
     [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedGraphF
rame.java:95)
     [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFrame.j
ava:121)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraphTable
au.java:108)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTableau(
ActorGraphTableau.java:163)
     [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Ptolemy
TableauFactory.java:100)
     [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFactory
.java:122)
     [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Configur
ation.java:215)
     [java]     at ptolemy.vergil.VergilApplication$1.run(VergilApplication.java
:440)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:141)
     [java]     at java.awt.Dialog$1.run(Dialog.java:540)
     [java]     at java.awt.Dialog.show(Dialog.java:561)
     [java]     at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:840
)
     [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessageHan
dler.java:175)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:973)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100
)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibrary(L
ibraryIndex.java:540)
     [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPane.jav
a:72)
     [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPane(Ta
bbedLibraryPane.java:228)
     [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(LibraryPa
neFactory.java:121)
     [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFrame.j
ava:352)
     [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedGraphF
rame.java:95)
     [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFrame.j
ava:121)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraphTable
au.java:108)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTableau(
ActorGraphTableau.java:163)
     [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Ptolemy
TableauFactory.java:100)
     [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFactory
.java:122)
     [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Configur
ation.java:215)
     [java]     at ptolemy.vergil.VergilApplication$1.run(VergilApplication.java
:440)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:141)
     [java]     at java.awt.Dialog$1.run(Dialog.java:540)
     [java]     at java.awt.Dialog.show(Dialog.java:561)
     [java]     at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:840
)
     [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessageHan
dler.java:175)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:973)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100
)
     [java] ptolemy.kernel.util.IllegalActionException: Error building tree mode
l: Error building tree model: Error building tree model: null
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:689)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeModel(
LibraryIndex.java:661)
     [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibrary(L
ibraryIndex.java:540)
     [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPane.jav
a:72)
     [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPane(Ta
bbedLibraryPane.java:228)
     [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(LibraryPa
neFactory.java:121)
     [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFrame.j
ava:352)
     [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedGraphF
rame.java:95)
     [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFrame.j
ava:121)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraphTable
au.java:108)
     [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTableau(
ActorGraphTableau.java:163)
     [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Ptolemy
TableauFactory.java:100)
     [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFactory
.java:122)
     [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Configur
ation.java:215)
     [java]     at ptolemy.vergil.VergilApplication$1.run(VergilApplication.java
:440)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:141)
     [java]     at java.awt.Dialog$1.run(Dialog.java:540)
     [java]     at java.awt.Dialog.show(Dialog.java:561)
     [java]     at javax.swing.JOptionPane.showOptionDialog(JOptionPane.java:840
)
     [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessageHan
dler.java:175)
     [java]     at ptolemy.gui.Top._executeDeferredActions(Top.java:973)
     [java]     at ptolemy.gui.Top.access$000(Top.java:124)
     [java]     at ptolemy.gui.Top$4.run(Top.java:236)
     [java]     at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:
178)
     [java]     at java.awt.EventQueue.dispatchEvent(EventQueue.java:454)
     [java]     at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDi
spatchThread.java:201)
     [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDisp
atchThread.java:151)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:145)
     [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.j
ava:137)
     [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.java:100
)




--------

    Hi, Christopher:
    
    I draft this email couple days ago:
    
    Thanks for modification. Now the nil token works as same as before(i.g. 
    kepler/workflows/test/test-eml-missing-value-field.xml works).
    
    But it still doesn't work for the ArrayToken which has nil element (e.g. 
    {nil, 1, 4}), the non-strict-test actor couldn't configure it out. The 
    example is in 
    kepler/workflows/test/test-eml-missing-value-column-vector.xml
    
    Thanks.
    
    Jing
    
    Jing Tao
    National Center for Ecological
    Analysis and Synthesis (NCEAS)
    735 State St. Suite 204
    Santa Barbara, CA 93101
    
    On Wed, 29 Mar 2006, Christopher Brooks wrote:
    
    > Date: Wed, 29 Mar 2006 23:53:18 -0800
    > From: Christopher Brooks <cxh at eecs.berkeley.edu>
    > To: Tristan King <tristan.king at jcu.edu.au>
    > Cc: kepler-dev at ecoinformatics.org
    > Subject: Re: [kepler-dev] NIL token
    > 
    > Hi Tristan,
    > About empty arrays, what's the type of the elements of an empty array?
    > Hint: it is the sound of one hand clapping. :-)
    >
    > (Sorry, it is late here in California)
    >
    > You could try disabling the check in ArrayToken for empty arrays
    > and see what happens when you create an empty array and try
    > to perform an operation on it.  My guess is that the type
    > system will not be able to resolve the type of elements.
    >
    > I think the issue is that the way the type system works depends on
    > having some element of the array have a type.  If there are no
    > elements, then it is unclear what the type of the elements would be.
    >
    > I think we need to differentiate between ArrayTokens that have
    > one or more nil elements, but also have non-nil elements and
    > ArrayTokens that are themselves nil, that is, they have no non-nil
    > elements.  Another case is where an array has one or more nil
    > elements and non non-nil elements
    >
    > In other words:
    > {1, nil} or {nil, 1}   An array of 2 IntTokens, one of which is nil
    > {nil}		       Is this an empty array or an array of size 1?
    > {nil, nil}	       This would be an array of size 2.
    >
    >
    > I'm starting to see nil tokens as the universal token.
    >
    > I just checked in some changes so that some of the Tokens have their own 
   NIL
    > token. Token.NIL, DoubleToken.NIL, IntToken.NIL, LongToken.NIL and all
    > of these NILs are of a new type, "NilType".  NilType is losslessly
    > convertible to (from?) DoubleType, IntType, LongType etc.
    >
    > I think we need these Token specific NILs so that the convert()
    > method will work.
    >
    > For example, IntToken.convert() looks like:
    >
    >    public static IntToken convert(Token token) throws IllegalActionExcept
   ion {
    >
    > If the Token argument is Token.NIL, we can't just do:
    >        if (token == null || token.isNil()) {
    >            return (IntToken)Token.NIL;
    >        }
    > because Token.NIL is not an IntToken and we will get a cast exception
    > at runtime.
    >
    > Instead, we must do:
    >        if (token == null || token.isNil()) {
    >            return Intoken.NIL;
    >        }
    >
    > Anyway, if we figure out how the basetypes work, then we can
    > figure out how to better handle empty arrays.
    > It could be that an ArrayToken with no elements is a nil
    > ArrayToken {nil}
    >
    > Anyway, I checked in a modified version of Jing's example as
    > $PTII/ptolemy/actor/lib/test/auto/NilTokenTypeTest.xml
    > This test has a Const with value nil connected to a Test.
    > However, the output port of the Const is set to type int by
    > using the configure ports dialog
    >
    > With my most recent changes, this now test passes.
    >
    > [There seems to be a bug in the dialog where setting the port back from
    > int to nothing does not work, the error message still says int]
    >
    > I'll need to do some cleanup tomorrow on my most recent changes.
    >
    >
    > _Christopher
    >
    > --------
    >
    >    How about ArrayTokens? I've got a problem where my workflow goes into
    >    deadlock if an ArrayToken with no values (which of course can't exist)
    >    needs to be sent. And as you should know (or if i'm doing something
    >    wrong), a Token can't be cast to an ArrayToken.
    >
    >    Currently I just have a 2nd output port which sends a boolean indicati
   ng
    >    if there are no tokens being sent on the 1st port and have my other
    >    actors check this port before trying to get values from the 1st port.
    >    This works, but I find the extra relations needed can make the workflo
   w
    >    look quite messy, and i don't feel that having programming logic like
    >    this in the workflow is good practice.
    >
    >    I've not been able to find a good explanation for why ArrayTokens can'
   t
    >    be constructed with empty arrays, if someone knows the reason for this
    >    can I get an explanation please?
    >
    >    Christopher Brooks wrote:
    >    > Hi Jing,
    >    > Thanks for the stack trace.  I am tied up with getting Ptolemy II
    >    > ready shipping, so time is short.  Also, I wanted Edward to see the
    >    > stack trace.  If I had a small test, I could check it in to the tree
   .
    >    > Yep, I should start up kepler . . .
    >    >
    >    > The problem is that TypeLattice.compare() returning
    >    > either CPO.HIGHER or CPO.INCOMPARABLE.
    >    >
    >    >     protected void _checkType(Token token) throws IllegalActionExcep
   tion
    >   {
    >    >         int compare = TypeLattice.compare(token.getType(), _resolved
   Type)
    >   ;
    >    >
    >    >         if ((compare == CPO.HIGHER) || (compare == CPO.INCOMPARABLE)
   ) {
    >    >             throw new IllegalActionException(this,
    >    > Line 741:             "Run-time type checking failed. Token " + toke
   n
    >    >                             + " with type " + token.getType()
    >    >                             + " is incompatible with port type: "
    >    >                             + getType().toString());
    >    >         }
    >    >     }
    >    >
    >    > One hack would be to modify the code so that we check to see
    >    > if the Token is nil before calling TypeLattice.compare().
    >    > This seems a bit brute force and would require changing at least
    >    > 112 calls to TypeLattice.compare() in the Ptolemy tree.
    >    >
    >    > Another idea would be for each Token to have its own NIL token.
    >    > This seems inelegant.
    >    >
    >    > Perhaps the NIL token needs to have a getType() method that returns
    >    > something that the type lattice will properly type check.  A NIL
    >    > token is the univesal token, it can be used anywhere.
    >    >
    >    > Modifying ptolemy.data.Token so it redefines getType might work:
    >    >
    >    >     /** A token that represents a missing value.
    >    >      *  Null or missing tokens are common in analytical systems
    >    >      *  like R and SAS where they are used to handle sparsely popula
   ted d
    >   ata
    >    >      *  sources.  In database parlance, missing tokens are sometimes
    call
    >   ed
    >    >      *  null tokens.  Since null is a Java keyword, we use the term 
   "nil"
    >   .
    >    >      *  The toString() method on a nil token returns the string "nil
   ".
    >    >      */
    >    >     public static final Token NIL = new Token() {
    >    >             /** Return the type of this token.
    >    >              *  @return BaseType.UNKNOWN;
    >    >              */
    >    >             public Type getType() {
    >    >                 return BaseType.UNKNOWN;
    >    >             }
    >    >         };
    >    >
    >    > However, I think we need to instead add a new type, which is the
    >    > type that is specific to NIL.  This type is in some ways in
    >    > comparable, but operations such as add can be performed on it.
    >    > TypeLattice.compare() would need to be modified so if one
    >    > of the arguments is the newly defind NIL type, then it returns
    >    > ptolemy.graph.CPO.SAME.
    >    > This seems like a scary change that could affect performance.
    >    >
    >    > If you can send me a small test case that I can add to the Ptolemy
    >    > tree, I can see about hacking something in.
    >    >
    >    > Comments?
    >    >
    >    > _Christopher
    >    >
    >    > --------
    >    >
    >    >     Hi, Christopher:
    >    >
    >    >     The test workflow is alreay in
    >    >     kepler/workflows/test/test-eml-missing-value-field.xml. You may 
   run i
    >   t and
    >    >     to see what will happen. The stack trace is:
    >    >
    >    >     ptolemy.kernel.util.IllegalActionException: Run-time type checki
   ng fa
    >   iled.
    >    >     Token nil with type general is incompatible with port type: doub
   le
    >    >        in .test-eml-missing-value-field.Missing Value.Column2
    >    >      	at ptolemy.actor.TypedIOPort._checkType(TypedIOPort.jav
   a:741)
    >    >      	at ptolemy.actor.TypedIOPort.send(TypedIOPort.java:463)
    >    >      	at
    >    >     org.ecoinformatics.seek.datasource.eml.eml2.Eml200OutputTypeFiel
   d.fir
    >   e(Eml2
    >    >    00OutputTypeField.java:103)
    >    >      	at
    >    >     org.ecoinformatics.seek.datasource.eml.eml2.Eml200DataSource.fir
   e(Eml
    >   200Dat
    >    >    aSource.java:552)
    >    >      	at ptolemy.actor.AtomicActor.iterate(AtomicActor.java:3
   09)
    >    >      	at
    >    >     ptolemy.actor.sched.StaticSchedulingDirector.fire(StaticScheduli
   ngDir
    >   ector.
    >    >    java:170)
    >    >      	at ptolemy.actor.CompositeActor.fire(CompositeActor.jav
   a:331)
    >    >      	at ptolemy.actor.Manager.iterate(Manager.java:613)
    >    >      	at ptolemy.actor.Manager.execute(Manager.java:322)
    >    >      	at ptolemy.actor.Manager.run(Manager.java:985)
    >    >      	at ptolemy.actor.Manager$3.run(Manager.java:1026)
    >    >
    >    >
    >    >     Thanks,
    >    >
    >    >     Jing
    >    >
    >    >     Jing Tao
    >    >     National Center for Ecological
    >    >     Analysis and Synthesis (NCEAS)
    >    >     735 State St. Suite 204
    >    >     Santa Barbara, CA 93101
    >    >
    >    >     On Wed, 29 Mar 2006, Christopher Brooks wrote:
    >    >
    >    >     > Date: Wed, 29 Mar 2006 11:04:25 -0800
    >    >     > From: Christopher Brooks <cxh at eecs.berkeley.edu>
    >    >     > To: Jing Tao <tao at nceas.ucsb.edu>
    >    >     > Cc: kepler-dev at ecoinformatics.org
    >    >     > Subject: Re: [kepler-dev] NIL token
    >    >     >
    >    >     > Hi Jing,
    >    >     >
    >    >     > Good question, I was afraid there might be issues surrounding
    >    >     > Nil tokens and types.  My previous design had nil-ness being a
    >    >     > property of the token, so we had a DoubleToken that was of
    >    >     > type double and was nil.  Now we have just one token which is 
   nil.
    >    >     >
    >    >     > Can you construct a small model that has a similar failure?
    >    >     >
    >    >     > Also, what's the stack trace of the current failure?
    >    >     > Perhaps where the types are being checked needs to be updated 
   to
    >    >     > handle nilness
    >    >     >
    >    >     > _Christopher
    >    >     >
    >    >     > --------
    >    >     >
    >    >     >    hi, Christopher:
    >    >     >
    >    >     >    According to the changes you made in ptolemy about nil toke
   n, I
    >   made t
    >    >    he
    >    >     >    changes in kepler for missing value too.
    >    >     >
    >    >     >    Since currently we only have one public static variable NIL
    in T
    >   oken c
    >    >    lass
    >    >     >    (NIL is a generic type and there is no any other nil in sub
    toke
    >   n
    >    >     >    classes), I think every missing value element should be rep
   laced
    >    by th
    >    >    e
    >    >     >    NIL token no matter what the data type it is. But when I ru
   n the
    >    workf
    >    >    low
    >    >     >    test, I got some error:
    >    >     >
    >    >     >    Workflow workflows/test/test-ecogrid-eml-gce-data.xml FAILE
   D:
    >    >     >    [java] ptolemy.kernel.util.IllegalActionException: Run-time
    type
    >    check
    >    >    ing
    >    >     >    failed. Token nil with type general is
    >    >     >    incompatible with port type: int
    >    >     >
    >    >     >    So it seems the NIL token is not compatible to int port typ
   e. Di
    >   d I mi
    >    >    ss
    >    >     >    something? How can I make the NIL token to compatible int p
   ort t
    >   ype?
    >    >     >
    >    >     >    Thanks,
    >    >     >
    >    >     >    Jing
    >    >     >
    >    >     >    Jing Tao
    >    >     >    National Center for Ecological
    >    >     >    Analysis and Synthesis (NCEAS)
    >    >     >    735 State St. Suite 204
    >    >     >    Santa Barbara, CA 93101
    >    >     >    _______________________________________________
    >    >     >    Kepler-dev mailing list
    >    >     >    Kepler-dev at ecoinformatics.org
    >    >     >    http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listin
   fo/ke
    >   pler-d
    >    >    ev
    >    >     > --------
    >    >     >
    >    >     >
    >    > --------
    >    > _______________________________________________
    >    > Kepler-dev mailing list
    >    > Kepler-dev at ecoinformatics.org
    >    > http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler
   -dev
    >    >
    >
    >    --
    >    Tristan King                            | Ph: (07) 4781 6911
    >    DART project team                       | Email: Tristan.King at jcu.edu.
   au
    >    James Cook University                   | Web: http://dart.edu.au
    >    Townsville QLD 4814                     | http://plone.jcu.edu.au/dart
   /
    >    Australia                               |
    >    _______________________________________________
    >    Kepler-dev mailing list
    >    Kepler-dev at ecoinformatics.org
    >    http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-d
   ev
    > --------
    > _______________________________________________
    > Kepler-dev mailing list
    > Kepler-dev at ecoinformatics.org
    > http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
    >
    >
    >
--------


More information about the Kepler-dev mailing list