A fix is available

Subscribe

You can track all active APARs for this component.

APAR status

Closed as program error.

Error description

At WebSphere Message Broker v6.0 and below the XMLNSC parser had
no support for XML entities. This meant that if an XML entity
such as ? appeared in the input message then this entity would
be represented as the ascii string containing ? in the message
tree. This had the side effect that XML entities present in
the input message would therefore always be present, in ascii,
in the output message. At v6.1 XML entity support was introduced
meaning that the ? XML entity is represented as the actual
Euro character in the message tree. This has the side effect
that if the message is then serialized to a codepage which
does not contain the Euro character it can result in a BIP2136
ParserException indicating that the buffer contained an
"Unconvertable character".

Local fix

Problem summary

****************************************************************
USERS AFFECTED:
All users of WebSphere Message Broker V8.0 or higher using xml
entities with the XMLNSC parser.
Platforms affected:
z/OS, MultiPlatform
****************************************************************
PROBLEM SUMMARY:
At WebSphere Message Broker v6.0 and below the XMLNSC parser had
no support for XML entities. This meant that if an XML entity
such as ? appeared in the input message then this entity would
be represented as the ascii string containing ? in the message
tree. This had the side effect that XML entities present in
the input message would therefore always be present, in ascii,
in the output message. At v6.1 XML entity support was introduced
meaning that the ? XML entity is represented as the actual
Euro character in the message tree. This has the side effect
that if the message is then serialized to a codepage which
does not contain the Euro character it can result in a BIP2136
ParserException indicating that the buffer contained an
"Unconvertable character".

Problem conclusion

This APAR introduces a new parameter
"invalidCharacterEscapeType" on the
ComIbmGenericXmlParserFactory which allows characters which
can not be represented in the serialization codepage to be
replaced with one of three entity types. This property can
take the values "unicode", "hex" or "decimal".
When set to "unicode" the character is rendered in the form
{U+XXXX} where XXXX is the unicode codepoint associated with the
character. For example for the Euro character this is {U+20AC}.
When set to "hex" the character is rendered in the form XXXX;
where XXXX is the unicode codepoint associated with the
character. For example for the Euro character this is ?.
When set to decimal the character is rendered in the form
&#DDDD; where DDDD is the unicode codepoint associated with
the character expressed in decimal. For example for the Euro
character this is #8364;.
This property can be set at the execution group level using
mqsichangeproperties for example:
mqsichangeproperties -e -o ComIbmGenericXmlParserFactory -n
invalidCharacterEscapeType -v
---------------------------------------------------------------
The fix is targeted for delivery in the following:
Version v8.0
-------- --------------------
Fix available in: 8.0.0.2
The latest available maintenance can be obtained from:
http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27009742
If the maintenance level is not yet available, information on
its planned availability can be found on:
http://www-1.ibm.com/support/docview.wss?rs=849&uid=swg27006308
---------------------------------------------------------------