You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@airavata.apache.org by "Kenno Vanommeslaeghe (JIRA)" <ji...@apache.org> on 2013/08/16 02:57:47 UTC

[jira] [Comment Edited] (AIRAVATA-779) Xbaya: handling of StringArray is not consistent with URIArray

    [ https://issues.apache.org/jira/browse/AIRAVATA-779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13741737#comment-13741737 ] 

Kenno Vanommeslaeghe edited comment on AIRAVATA-779 at 8/16/13 12:56 AM:
-------------------------------------------------------------------------

This problem is still causing us (PARAMCHEM) pain. We have a service that accepts 3 arrays. Because Airavata doesn't delimit the arrays, there's no way of knowing for sure where one array stops and the next one starts. Obviously, we implemented a workaround for this, but it is somewhat brittle; if something unexpected happens, the arrays flow into each other leading to a situation that is confusing to debug. I still feel quoting the arrays would be the best solution, ie. the back-end application is called as follows:

application "array1_element1 array1_element2 ..." "array2_element1 array2_element2 ..."

This is very easy to parse with basic shell commands; the following sample shell script is way simpler than the big ugly complicated parser I had to put in place to work around the problem.

{code:language=bash}
#!/bin/sh
array1="$1"
array2="$2"

parse_array () {
  arrnam=$1
  shift 1
  for i in `seq $#` ; do
    eval ${arrnam}$i=\"\$$i\"
   done
}

parse_array array1_element $array1
parse_array array2_element $array2

# Example
echo $array1_element3
echo $array2_element2
{code}
                
      was (Author: kenno):
    This problem is still causing us (PARAMCHEM) pain. We have a service that accepts 3 arrays. Because Airavata doesn't delimit the arrays, there's no way of knowing for sure where one array stops and the next one starts. Obviously, we implemented a workaround for this, but it is somewhat brittle; if something unexpected happens, the arrays flow into each other leading to a situation that is confusing to debug. I still feel quoting the arrays would be the best solution, ie. the back-end application is called as follows:

application "array1_element1 array1_element2 ..." "array2_element1 array2_element2 ..."

This is very easy to parse with basic shell commands; the following sample shell script is way simpler than the big ugly complicated parser I had to put in place to work around the problem.

#!/bin/sh
array1="$1"
array2="$2"

parse_array () {
  arrnam=$1
  shift 1
  for i in `seq $#` ; do
    eval ${arrnam}$i=\"\$$i\"
   done
}

parse_array array1_element $array1
parse_array array2_element $array2

# Example
echo $array1_element3
echo $array2_element2
                  
> Xbaya: handling of StringArray is not consistent with URIArray
> --------------------------------------------------------------
>
>                 Key: AIRAVATA-779
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-779
>             Project: Airavata
>          Issue Type: Bug
>          Components: GFac, XBaya
>            Reporter: Suresh Marru
>             Fix For: 0.9
>
>
> Reported by Airavata user at - https://gateways.atlassian.net/browse/PARAMCHEM-115

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira