IBM Support

PM31785: StrLib.getNextToken throws Type mismatch conversion error in RBD v8

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Environment: Windows
    
    Product name: IBM? Rational? Business Developer
    
    Program Version    :  8.0.1
    Description.
    Using StrLib.getNextToken in an EGL web service with SOAP
    bindings deployed to Tomcat produces a Java code generation
    error.
    
    Sample EGL Code:
    function testGetNextToken()
     str String = '100, 1000, 10000, 100000, 1000000, 10000000';
     tokenIndex int = 1;
    
     tokenCount int = StrLib.getTokenCount(str, ',');
    
     for (i int from 1 to tokenCount by 1)
      token String = StrLib.getNextToken(str, tokenIndex, ',');
    
      SysLib.writeStdout(token);
     end
    end
    
    
    
    This produces the generated Java code with an error, the
    problems view shows:
    'Type mismatch: cannot convert from String to StringValue'
    pointing at the following lines and statement ie
    
    for ( ; (i ?= tokenCount); i =
    com.ibm.javart.operations.AssignToInt.run(
    ezeProgram, com.ibm.javart.operations.Add.run( ezeProgram, i,
    (short)1 ) ) )
    {
      // token STRING;
      java.lang.String token = '';
      // token = StrLib.getNextToken(str, tokenIndex, ',');
    // error for following line in problems view
      token = ezeProgram.egl__core__StrLib.getNextToken( ezeProgram,
    com.ibm.javart.operations.Assign.run( ezeProgram, new
    com.ibm.javart.StringItem( 'source',
    com.ibm.javart.Value.SQL_NOT_NULLABLE,
    com.ibm.javart.Constants.SIGNATURE_STRING ), str ), tokenIndex,
    com.ibm.javart.operations.Assign.run( ezeProgram, new
    com.ibm.javart.StringItem( 'delimiters',
    com.ibm.javart.Value.SQL_NOT_NULLABLE,
    com.ibm.javart.Constants.SIGNATURE_STRING ), ',' ) );
    
      // SysLib.writeStdout(token);
      System.out.println( token );
    }
    
    The ezeProgram.egl__core__StrLib.getNextToken does not return a
    java.lang.String but a com.ibm.javart.StringValue.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    In some cases, generated Java code for an invocation of
    StrLib.getNextToken will not compile.  There are several
    versions of the function.  This problem only occurs when you
    use the version with three arguments.
    

Problem conclusion

  • The problem has been fixed.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM31785

  • Reported component name

    RATL BUS DEV

  • Reported component ID

    5724S5000

  • Reported release

    801

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-02-02

  • Closed date

    2011-03-31

  • Last modified date

    2011-03-31

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    RATL BUS DEV

  • Fixed component ID

    5724S5000

Applicable component levels

  • R801 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSMQ79","label":"Rational Business Developer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.1","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
31 March 2011