[kepler-dev] NIL token

Christopher Brooks cxh at eecs.berkeley.edu
Fri Apr 7 15:25:28 PDT 2006


Hi Jing,

Sorry, that was way too hectic.  The remote machine I was rebuilding on
must have rebooted five times from underneath me.

Ok, I was able to start Kepler from a clean build, my local tree must
be messed up.

The model
    kepler/workflows/test/test-eml-missing-value-column-vector.xml
outputs records to a Test actor.

The short answer is that records and nils are not supported.
I'll see if I can do anything here.  I'll hack a test for records.

I checked the model in with dimensions compatible with my lowly
1024x768 laptop.

_Christopher



--------

    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\U
   serLi
    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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.  Not
   e 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.getActorAsNamedOb
   j(Act
    orMetadata.java:571)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:668)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.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.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.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.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.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.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.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 tre
   e mod
    el: null
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.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 tre
   e mod
    el: null
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.getLibrary
   (Libr
    aryIndex.java:567)
         [java]     at org.kepler.moml.KSWLibraryBuilder.buildLibrary(KSWLibrar
   yBuil
    der.java:161)
         [java]     at ptolemy.vergil.VergilApplication.openLibrary(VergilAppli
   catio
    n.java:216)
         [java]     at ptolemy.vergil.VergilApplication._createDefaultConfigura
   tion(
    VergilApplication.java:410)
         [java]     at ptolemy.vergil.VergilApplication._createEmptyConfigurati
   on(Ve
    rgilApplication.java:427)
         [java]     at ptolemy.actor.gui.MoMLApplication._parseArgs(MoMLApplica
   tion.
    java:903)
         [java]     at ptolemy.vergil.VergilApplication._parseArgs(VergilApplic
   ation
    .java:527)
         [java]     at ptolemy.actor.gui.MoMLApplication.<init>(MoMLApplication
   .java
    :210)
         [java]     at ptolemy.vergil.VergilApplication.<init>(VergilApplicatio
   n.jav
    a:107)
         [java]     at org.kepler.gui.KeplerApplication.main(KeplerApplication.
   java:
    34)
         [java] java.lang.Exception:
    
         [java] Kepler TableauFrame._getDefaultIconImage(): currentThread: Thre
   ad[AW
    T-EventQueue-0,6,main] isEventDispatchThread: true
         [java]     at ptolemy.actor.gui.TableauFrame._getDefaultIconImage(Tabl
   eauFr
    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>(BasicGraphFr
   ame.j
    ava:207)
         [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedG
   raphF
    rame.java:95)
         [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFr
   ame.j
    ava:121)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraph
   Table
    au.java:108)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTab
   leau(
    ActorGraphTableau.java:163)
         [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Pt
   olemy
    TableauFactory.java:100)
         [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFa
   ctory
    .java:122)
         [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Con
   figur
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    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.jav
   a:840
    )
         [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessa
   geHan
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:145)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:137)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.jav
   a:100
    )
         [java] java.lang.NullPointerException
         [java]     at org.kepler.objectmanager.ActorMetadata.getActorAsNamedOb
   j(Act
    orMetadata.java:571)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:668)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibr
   ary(L
    ibraryIndex.java:540)
         [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPan
   e.jav
    a:72)
         [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPa
   ne(Ta
    bbedLibraryPane.java:228)
         [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(Libr
   aryPa
    neFactory.java:121)
         [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFr
   ame.j
    ava:352)
         [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedG
   raphF
    rame.java:95)
         [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFr
   ame.j
    ava:121)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraph
   Table
    au.java:108)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTab
   leau(
    ActorGraphTableau.java:163)
         [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Pt
   olemy
    TableauFactory.java:100)
         [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFa
   ctory
    .java:122)
         [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Con
   figur
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    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.jav
   a:840
    )
         [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessa
   geHan
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:145)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:137)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.jav
   a:100
    )
         [java] ptolemy.kernel.util.IllegalActionException: Error building tree
    mode
    l: null
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibr
   ary(L
    ibraryIndex.java:540)
         [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPan
   e.jav
    a:72)
         [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPa
   ne(Ta
    bbedLibraryPane.java:228)
         [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(Libr
   aryPa
    neFactory.java:121)
         [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFr
   ame.j
    ava:352)
         [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedG
   raphF
    rame.java:95)
         [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFr
   ame.j
    ava:121)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraph
   Table
    au.java:108)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTab
   leau(
    ActorGraphTableau.java:163)
         [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Pt
   olemy
    TableauFactory.java:100)
         [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFa
   ctory
    .java:122)
         [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Con
   figur
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    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.jav
   a:840
    )
         [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessa
   geHan
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:145)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:137)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.jav
   a:100
    )
         [java] ptolemy.kernel.util.IllegalActionException: Error building tree
    mode
    l: Error building tree model: null
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibr
   ary(L
    ibraryIndex.java:540)
         [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPan
   e.jav
    a:72)
         [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPa
   ne(Ta
    bbedLibraryPane.java:228)
         [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(Libr
   aryPa
    neFactory.java:121)
         [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFr
   ame.j
    ava:352)
         [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedG
   raphF
    rame.java:95)
         [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFr
   ame.j
    ava:121)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraph
   Table
    au.java:108)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTab
   leau(
    ActorGraphTableau.java:163)
         [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Pt
   olemy
    TableauFactory.java:100)
         [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFa
   ctory
    .java:122)
         [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Con
   figur
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    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.jav
   a:840
    )
         [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessa
   geHan
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:145)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:137)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.jav
   a: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.buildTreeM
   odel(
    LibraryIndex.java:689)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.buildTreeM
   odel(
    LibraryIndex.java:661)
         [java]     at org.kepler.objectmanager.library.LibraryIndex.createLibr
   ary(L
    ibraryIndex.java:540)
         [java]     at org.kepler.gui.TabbedLibraryPane.<init>(TabbedLibraryPan
   e.jav
    a:72)
         [java]     at org.kepler.gui.TabbedLibraryPane$Factory.createLibraryPa
   ne(Ta
    bbedLibraryPane.java:228)
         [java]     at org.kepler.gui.LibraryPaneFactory.createLibraryPane(Libr
   aryPa
    neFactory.java:121)
         [java]     at ptolemy.vergil.basic.BasicGraphFrame.<init>(BasicGraphFr
   ame.j
    ava:352)
         [java]     at ptolemy.vergil.basic.ExtendedGraphFrame.<init>(ExtendedG
   raphF
    rame.java:95)
         [java]     at ptolemy.vergil.actor.ActorGraphFrame.<init>(ActorGraphFr
   ame.j
    ava:121)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau.<init>(ActorGraph
   Table
    au.java:108)
         [java]     at ptolemy.vergil.actor.ActorGraphTableau$Factory.createTab
   leau(
    ActorGraphTableau.java:163)
         [java]     at ptolemy.actor.gui.PtolemyTableauFactory.createTableau(Pt
   olemy
    TableauFactory.java:100)
         [java]     at ptolemy.actor.gui.TableauFactory.createTableau(TableauFa
   ctory
    .java:122)
         [java]     at ptolemy.actor.gui.Configuration.createPrimaryTableau(Con
   figur
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    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.jav
   a:840
    )
         [java]     at ptolemy.gui.GraphicalMessageHandler$2.run(GraphicalMessa
   geHan
    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(Ev
   entDi
    spatchThread.java:201)
         [java]     at java.awt.EventDispatchThread.pumpEventsForHierarchy(Even
   tDisp
    atchThread.java:151)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:145)
         [java]     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThr
   ead.j
    ava:137)
         [java]     at java.awt.EventDispatchThread.run(EventDispatchThread.jav
   a: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 al
   l
        > 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 IllegalActionEx
   cept
       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 fr
   om
        > 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 i
   nto
        >    deadlock if an ArrayToken with no values (which of course can't ex
   ist)
        >    needs to be sent. And as you should know (or if i'm doing somethin
   g
        >    wrong), a Token can't be cast to an ArrayToken.
        >
        >    Currently I just have a 2nd output port which sends a boolean indi
   cati
       ng
        >    if there are no tokens being sent on the 1st port and have my othe
   r
        >    actors check this port before trying to get values from the 1st po
   rt.
        >    This works, but I find the extra relations needed can make the wor
   kflo
       w
        >    look quite messy, and i don't feel that having programming logic l
   ike
        >    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 I
   I
        >    > 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 IllegalActionE
   xcep
       tion
        >   {
        >    >         int compare = TypeLattice.compare(token.getType(), _reso
   lved
       Type)
        >   ;
        >    >
        >    >         if ((compare == CPO.HIGHER) || (compare == CPO.INCOMPARA
   BLE)
       ) {
        >    >             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 retu
   rns
        >    > 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 po
   pula
       ted d
        >   ata
        >    >      *  sources.  In database parlance, missing tokens are somet
   imes
        call
        >   ed
        >    >      *  null tokens.  Since null is a Java keyword, we use the t
   erm 
       "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 Ptole
   my
        >    > 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 ch
   ecki
       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.Eml200OutputType
   Fiel
       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(StaticSche
   duli
       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 surround
   ing
        >    >     > Nil tokens and types.  My previous design had nil-ness bei
   ng 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 upda
   ted 
       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 F
   AILE
       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 i
   nt 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/li
   stin
       fo/ke
        >   pler-d
        >    >    ev
        >    >     > --------
        >    >     >
        >    >     >
        >    > --------
        >    > _______________________________________________
        >    > Kepler-dev mailing list
        >    > Kepler-dev at ecoinformatics.org
        >    > http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/ke
   pler
       -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/kepl
   er-d
       ev
        > --------
        > _______________________________________________
        > Kepler-dev mailing list
        > Kepler-dev at ecoinformatics.org
        > http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-
   dev
        >
        >
        >
    --------
    _______________________________________________
    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