PQ93183: WSIF not using FormatHandler to parse null response message

 Fixes are available

5.1.1.8: WebSphere Application Server 5.1.1 Cumulative Fix 8 for AIX
5.1.1.8: WebSphere Application Server 5.1.1 Cumulative Fix 8 for Windows
5.1.1.8: WebSphere Application Server 5.1.1 Cumulative Fix 8 for HP-UX
5.1.1.8: WebSphere Application Server 5.1.1 Cumulative Fix 8 for Solaris
5.1.1.6: WebSphere Application Server Version 5.1.1 Cumulative Fix 6
5.1.1.7: WebSphere Application Server Version 5.1.1 Cumulative Fix 7
5.1.1.4: WebSphere Application Server Version 5.1.1 Cumulative Fix 4
5.1.1.8: WebSphere Application Server 5.1.1 Cumulative Fix 8 for Linux



APAR status
Closed as program error.

Error description
This WSIF client proxy has trouble parsing the response message
because of a null response message received.
[30/07/04 17:30:06:948 EST] 4491ec5e WebGroup      I SRVE0180I:
[CIMTestWeb] [/CIMTest] [Servlet.LOG]: /TestProxy.jsp: init
[30/07/04 17:30:07:354 EST] 4491ec5e SystemOut     O requestMsg
=
com.ibm.cim.customer.locate.request.CustomerLocateInquiryRequest
Type@33d
12c5a
[30/07/04 17:30:09:011 EST] 2b75ec4b CIMServerStub I
com.ibm.cim.customer.locate.CIMServerStubBean
JMS Message class: jms_text
  JMSType:         null
  JMSDeliveryMode: 2
  JMSExpiration:   0
  JMSPriority:     4
  JMSMessageID:
ID:414d51205741535f6c6f63616c686f730000000000000011
  JMSTimestamp:    1091172608886
  JMSCorrelationID:null
  JMSDestination:  queue:///WQ_CUSTOMER.LOCATE.INQUIRY
  JMSReplyTo:
queue://WAS_localhost_server1/AMQ.10000000?persistence=1
  JMSRedelivered:  false
  JMSXDeliveryCount:1
  JMS_IBM_MsgType:1
  JMSXAppID:Application Developer
  JMS_IBM_Format:MQSTR
  JMS_IBM_PutApplType:28
  WSDLInput:CustomerLocateInquiryRequest
  JMSXUserID:user
  WSDLOperation:CustomerLocateInquiry
  WSDLOutput:CustomerLocateInquiryResponse
  JMS_IBM_PutTime:07300891
  JMS_IBM_PutDate:20040730
com.ib.cim.customer.locate.request.CustomerLocateInquiryRequestt
Type@33d
12c5a
[30/07/04 17:30:09:026 EST] 2b75ec4b CIMServerStub I
com.ibm.cim.customer.locate.CIMServerStubBean
com.ibm.cim.customer.locate.request.CustomerLocateInquiryRequest
Type@33d
12c5a
[30/07/04 17:30:09:604 EST] 4491ec5e SystemErr     R
java.lang.NullPointerException
[30/07/04 17:30:09:604 EST] 4491ec5e SystemErr     R  at
org.apache.jsp._TestProxy._jspService(_TestProxy.java:135)
[30/07/04 17:30:09:620 EST] 4491ec5e SystemErr     R  at
com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspB
ase.java
:89)
Local fix Problem summary
****************************************************************
* USERS AFFECTED: Users of WebSphere Studio Application        *
*                 Developer Integration Edition who generate   *
*                 an Enterprise Service client proxy to invoke *
*                 a service from WebSphere Message Broker.     *
****************************************************************
* PROBLEM DESCRIPTION: The problem occurs when an Enterprise   *
*                      Service client proxy is generated from  *
*                      within WebSphere Studio Application     *
*                      Developer Integration Edition, using    *
*                      WSDL provided by WebSphere Message      *
*                      Broker. When the client proxy is used   *
*                      to invoke the service, the following    *
*                      error is returned:                      *
*                                                              *
*                      java.lang.NullPointerException          *
*                      at org.apache.wsif.providers.jms.       *
*                       JMSMessage.getFormatHandler            *
*                       (JMSMessage.java:736)                  *
*                      at org.apache.wsif.providers.jms.       *
*                       JMSMessage.read(JMSMessage.java:512)   *
*                      at org.apache.wsif.providers.jms.       *
*                       JMSMessage.read(JMSMessage.java:433)   *
*                      at org.apache.wsif.providers.jms.       *
*                       JMSFormatter.unformatResponse          *
*                       (JMSFormatter.java:413)                *
*                      at org.apache.wsif.providers.jms.       *
*                       WSIFOperation_Jms.receiveJmsMessage    *
*                       (WSIFOperation_Jms.java:549)           *
*                      at org.apache.wsif.providers.jms.       *
*                       WSIFOperation_Jms.                     *
*                       executeRequestResponseOperation        *
*                       (WSIFOperation_Jms.java:255)           *
****************************************************************
* RECOMMENDATION:                                              *
****************************************************************
The cause of this problem is in the
JMSMessage.read(JMSTextMessage) method. In the method WSIF
decides if the response is a wsif formatted message or not.
In this case WSIF decides incorrectly that it is a wsif
formatted message and so it tries processing it.  However
because it isn't a WSIF formatted message, a
NullPointerException is thrown.

In the original code, WSIF examines the Local name of the top
level XML element in the response message (the Document
Element), where the "Local name" is the element name without
the namespace. If this Local name is the same as the Local name
of the WSDL response Message, WSIF assumes the response message
is "WSIF formatted" and incorrectly processes it. For example,
take the WSDL response message to be:

<message name="CustomerLocateInquiryResponse">
    <part element="response:CustomerLocateInquiryResponse"
name="CustomerLocateInquiryResponse"/>
</message>

If the response XML is:

<CustomerLocateInquiryResponse>
 <Contents>10</Contents>
</CustomerLocateInquiryResponse>

Then WSIF would assume this response was "WSIF formatted" and
would not use a the FormatHandler for
"CustomerLocateInquiryResponse".
Problem conclusion
The WSIF code has been changed to expect a "WSIF formatted"
message only if there is more than 1 part in the WSDL
response message.

It is recommended that customers encountering this problem
should install WebSphere Application Server V5.1.1 with
cumulative fix 2, WebSphere Application Server V5.0.2 with
cumulative fix 9.
Temporary fix Comments
APAR information
APAR number PQ93183
Reported component name WAS ENTERPRISE
Reported component ID 5630A3700
Reported release 00W
Status CLOSED PER
PE NoPE
HIPER NoHIPER
Special Attention NoSpecatt
Submitted date 2004-08-23
Closed date 2004-11-16
Last modified date 2004-11-16

APAR is sysrouted FROM one or more of the following:

APAR is sysrouted TO one or more of the following:

Modules/Macros

Publications Referenced

Fix information

Applicable component levels
R003 PSY    UP
R00A PSY    UP
R00H PSY    UP
R00I PSY    UP
R00S PSY    UP
R00W PSY    UP


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > Enterprise Edition (EE)
Operating system(s):
Software version: 00W
Software edition:
Reference #: PQ93183
IBM Group: Software Group
Modified date: Nov 16, 2004