IBM Support

IC77873: WMQFTE V7.0.3 AGENT GETS JAVA.LANG.ILLEGALARGUMENTEXCEPTION WHEN SENDING FILE WITH NON-TRANSLATABLE CHARACTERS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • An IBM WebSphere MQ File Transfer Edition agent which specifies
    textReplacementCharacterSequence in the agent.properties file
    experiences an IllegalArgumentException every time the agent
    tries to send a file with non-translatable characters it fails
    with:
    
    java.lang.IllegalArgumentException
      at java.nio.Buffer.position(Buffer.java:218)
      at com.ibm.icu.charset.Charset88591$CharsetEncoder88591.
    encodeLoopCoreOptimized(Charset88591.java:84)
      at com.ibm.icu.charset.CharsetASCII$CharsetEncoderASCII.
    encodeLoop(CharsetASCII.java:236)
      at com.ibm.icu.charset.CharsetEncoderICU.
    fromUnicodeWithCallback(CharsetEncoderICU.java:432)
      at com.ibm.icu.charset.CharsetEncoderICU.encode
    (CharsetEncoderICU.java:352)
      at com.ibm.icu.charset.CharsetEncoderICU.encodeLoop
    (CharsetEncoderICU.java:257)
      at java.nio.charset.CharsetEncoder.encode
    (CharsetEncoder.java:544)
      at com.ibm.wmqfte.io.text.FTECharsetEncoder.encode
    (FTECharsetEncoder.java:286)
      at com.ibm.wmqfte.io.text.TextWriter.write
    (TextWriter.java:408)
      at com.ibm.wmqfte.io.text.TextWriter.writeLine
    (TextWriter.java:471)
      at com.ibm.wmqfte.io.text.GenericTextConverter.convertLines
    (GenericTextConverter.java:584)
      at com.ibm.wmqfte.io.text.GenericTextConverter.convert0
    (GenericTextConverter.java:486)
      at com.ibm.wmqfte.io.text.GenericTextConverter.convert
    (GenericTextConverter.java:400)
      at com.ibm.wmqfte.io.impl.FTETextFileChannelImpl.write
    (FTETextFileChannelImpl.java:287)
      at com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiver
    Impl.writeSlice(TransferFrameReceiverImpl.java:516)
      at com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiver
    Impl.processChunk(TransferFrameReceiverImpl.java:458)
      at com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiver
    Impl.access$100(TransferFrameReceiverImpl.java:73)
      at com.ibm.wmqfte.transfer.frame.impl.TransferFrameReceiver
    Impl$ChunkProcessor.doWorkImpl(TransferFrameReceiverImpl.
    java:149)
      at com.ibm.wmqfte.io.impl.FTEFileIOWorker.doWork
    (FTEFileIOWorker.java:100)
      at com.ibm.wmqfte.io.impl.FTEFileIORequestQueue.run
    (FTEFileIORequestQueue.java:227)
      at java.lang.Thread.run(Thread.java:619)
      at com.ibm.wmqfte.thread.FTEThread.run(FTEThread.java:52)
    .
    
    ICU = International Components for Unicode
    The ICU component is disabled by default on WMQ FTE version
    7.0.2.1. On WMQ FTE 7.0.3 it is enabled by default.
    ADDITIONAL KEYWORDS: ICU4J CCSID CHARACTER SET CHAR
    

Local fix

  • Prior to starting the FTE agent set the property
    com.ibm.wmqfte.disableICU=true
    
    The disableICU property is a Java system property. The command
    to set it (before running fteStartAgent) is as follows:
    
    export FTE_JVM_PROPERTIES="-Dcom.ibm.wmqfte.disableICU=true"
    

Problem summary

  • When executing a text transfer where the destination codepage is
    ISO_88591-1 and the input file contains a non-translatable
    character the agent abends. The following exception and stack
    trace is shown in the abend file
    
    java.lang.IllegalArgumentException at
    java.nio.Buffer.position(Buffer.java:218) at
    com.ibm.icu.charset.Charset88591$CharsetEncoder88591.encodeLoopC
    oreOptimized(Charset88591.java:84) at
    com.ibm.icu.charset.CharsetASCII$CharsetEncoderASCII.encodeLoop(
    CharsetASCII.java:236) at
    com.ibm.icu.charset.CharsetEncoderICU.fromUnicodeWithCallback(Ch
    arsetEncoderICU.java:432) at
    com.ibm.icu.charset.CharsetEncoderICU.encode(CharsetEncoderICU.j
    ava352) at
    com.ibm.icu.charset.CharsetEncoderICU.encodeLoop(CharsetEncoderI
    CU.java:257) at
    java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:544)
    at
    com.ibm.wmqfte.io.text.FTECharsetEncoder.encode(FTECharsetEncode
    r.java:286)
    
    USERS AFFECTED:
    Users performing text transfers with a destination code page of
    ISO-88591-1
    
    PLATFORMS AFFECTED:
    All
    

Problem conclusion

  • The ICU4J libraries the product ships with have been updated to
    include a fix resolving this issue.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC77873

  • Reported component name

    WMQ FILE TRANSF

  • Reported component ID

    5724R1000

  • Reported release

    703

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-08-02

  • Closed date

    2011-08-31

  • Last modified date

    2011-08-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

    WMQ FILE TRANSF

  • Fixed component ID

    5724R1000

Applicable component levels

  • R703 PSY

       UP

  • R704 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSEP7X","label":"WebSphere MQ File Transfer Edition"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.2","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
31 August 2011