[kepler-dev] [Bug 3451] New: - RExpression actor can get typing wrong for incoming numeric vector /array on first workflow run

bugzilla-daemon at ecoinformatics.org bugzilla-daemon at ecoinformatics.org
Mon Jul 14 13:28:44 PDT 2008


http://bugzilla.ecoinformatics.org/show_bug.cgi?id=3451

           Summary: RExpression actor can get typing wrong for incoming
                    numeric vector /array on first workflow run
           Product: Kepler
           Version: 1.0.0rc1
          Platform: Other
        OS/Version: All
            Status: NEW
          Keywords: REAP
          Severity: normal
          Priority: P2
         Component: actors
        AssignedTo: barseghian at nceas.ucsb.edu
        ReportedBy: barseghian at nceas.ucsb.edu
         QAContact: kepler-dev at ecoinformatics.org


If the sink ports receiving data from an R actor are not compatible with the
token type (using isCompatible), the R actor sets the sink port type to the
token type. This is a workaround for what seems to be the automatic typing
system not setting port types properly on the first few runs of a workflow.
This works pretty well, but there is a subtle problem that can still occur, on
the first run of a workflow, with numeric vectors:

Since, for example, sink port type: arrayType(string) is compatible with token
type: arrayType(double,132), on the first run of such a workflow a numeric
vector comes into a sink R actor with all its values in quotes, and when you do
numeric comparisons with these, the quotes will give you problems , eg,
"250.25" > 2000. On the second run of the workflow the typing is right, and so
you're comparing numbers as you expect, eg 250.25 < 2000.

I have changed from isCompatible to isEquals for when to change a sink port
type and things seem to work on first runs. I will test it on a few more
workflows before checking it it.


More information about the Kepler-dev mailing list