Alan
 thank you for looking into this!
the following may explain why your script works: are you supplying the value to in0 through a workflow input? because I just found out that the problem occurs _only_ when the value to input in0 is supplied through a /constant/ processor (with value equal to the file name) -- if I replace the constant with a user input, I get a correct result... which is probably the way you have done it? it's either something in the way the constant value is passed on along the arc that connects to the input port of my processor, but not sure what...? so what happens if you supply "C:/Users/alanrw" to your script through a constant? I'm puzzled...

attached is a version of your script that receives input from a constant processor -- and it doesn't work. I may be just doing something silly...

cheers! -Paolo

Alan R Williams wrote:
I've just tried out the following script with input port in0 and
output ports out0 and out1.

File f0 = new File(in0);

if (f0.exists()) {
        out0 = "input port true";
} else {
        out0 = "input port false";
}

File f1 = new File("C:/Users/alanrw");
if (f1.exists()) {
        out1 = "string specified true";
}
else {
        out1 = "string specified false";
}

and both out1 and out2 generate the "true" values.

Paolo, can you try that (with a different string value) and see what
you get?

Alan


<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow"; version="1"><dataflow 
id="4525b065-9bab-41d9-ba94-a6ddc4a462ed" 
role="top"><name>Workflow37</name><inputPorts 
/><outputPorts><port><name>out0</name></port><port><name>out1</name></port></outputPorts><processors><processor><name>Beanshell</name><inputPorts><port><name>in0</name><depth>0</depth></port></inputPorts><outputPorts><port><name>out0</name><depth>0</depth><granularDepth>0</granularDepth></port><port><name>out1</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>beanshell-activity</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.activities.beanshell.BeanshellActivity</class><inputMap><map
 from="in0" to="in0" /></inputMap><outputMap><map from="out1" to="out1" /><map 
from="out0" to="out0" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean
 xmlns="">
  <script>File f0 = new File(in0);

if (f0.exists()) {
        out0 = "input port true";
} else {
        out0 = "input port false";
}

File f1 = new File("/Users/paolo/Documents/myGRID/OPM/PC3/SampleData/J062941");
if (f1.exists()) {
        out1 = "string specified true";
}
else {
        out1 = "string specified false";
}

</script>
  <dependencies />
  <classLoaderSharing>workflow</classLoaderSharing>
  <localDependencies />
  <artifactDependencies />
  <inputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
      <handledReferenceSchemes />
      <translatedElementType>java.lang.String</translatedElementType>
      <allowsLiteralValues>true</allowsLiteralValues>
      <name>in0</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
  </inputs>
  <outputs>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>0</granularDepth>
      <name>out0</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
    
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
      <granularDepth>0</granularDepth>
      <name>out1</name>
      <depth>0</depth>
      <mimeTypes>
        <string>text/plain</string>
      </mimeTypes>
    
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
  </outputs>
</net.sf.taverna.t2.activities.beanshell.BeanshellActivityConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port
 name="in0" depth="0" 
/></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>String_constant</name><inputPorts
 
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap
 /><outputMap><map from="value" to="value" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean
 xmlns="">
  <value>~/Documents/myGRID/OPM/PC3/SampleData/J062941</value>
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>0.6-SNAPSHOT</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy
 /></iteration></iterationStrategyStack></processor></processors><conditions 
/><datalinks><datalink><sink 
type="processor"><processor>Beanshell</processor><port>in0</port></sink><source 
type="processor"><processor>String_constant</processor><port>value</port></source></datalink><datalink><sink
 type="dataflow"><port>out0</port></sink><source 
type="processor"><processor>Beanshell</processor><port>out0</port></source></datalink><datalink><sink
 type="dataflow"><port>out1</port></sink><source 
type="processor"><processor>Beanshell</processor><port>out1</port></source></datalink></datalinks><annotations
 /></dataflow></workflow>
------------------------------------------------------------------------------
_______________________________________________
taverna-hackers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/taverna-hackers
Developers Guide: http://www.mygrid.org.uk/usermanual1.7/dev_guide.html
FAQ: http://www.mygrid.org.uk/wiki/Mygrid/TavernaFaq

Reply via email to