ReflectionProxyHandler creates an Element even for a null parameter
-------------------------------------------------------------------
Key: MUSE-238
URL: https://issues.apache.org/jira/browse/MUSE-238
Project: Muse
Issue Type: Bug
Reporter: Vinh Nguyen
Assignee: Dan Jemiolo
There is a bug in ReflectionProxyHandler.toXML(). It creates an element node
for an operation parameter even if the parameter value is null. This causes
errors on the server when an operation allows a null parameter, but the Muse
serializers throw an error because they receive an actual Element for the
parameter.
I noticed this because in the Subscribe operation, I can specify a null
expiration date, and the corresponding element does not show up in the SOAP
request. So it goes thru fine. But if I define an Unsubscribe operation, the
generated proxy uses the ReflectionProxyHandler, and I get errors.
I attempted to test my Unsubscribe by passing a null EPR, and the SOAP request
looked like this:
<soap:Body>
<pfx0:Unsubscribe xmlns:pfx0="http://docs.oasis-open.org/wsn/b-2">
<pfx0:EndpointReference/>
</pfx0:Unsubscribe>
</soap:Body>
Then on the server side, the EndpointReference serializer threw this error:
[ID = 'InvalidAddressURI'] Invalid wsa:Address URI: null
org.apache.muse.ws.addressing.EndpointReference.initializeFromXML(EndpointReference.java:541)
org.apache.muse.ws.addressing.EndpointReference.<init>(EndpointReference.java:132)
org.apache.muse.ws.addressing.EndpointReference.<init>(EndpointReference.java:91)
com.cisco.nm.cmp.nbi.wsdm.common.serializer.addressing.EndpointReferenceSerializer.fromXML(EndpointReferenceSerializer.java:36)
org.apache.muse.core.routing.ReflectionMessageHandler.fromXML(ReflectionMessageHandler.java:132)
So there is some inconsistencies between the proxy handlers used within Muse
code, and the ReflectionProxyHandler used in the wsdl2java generated proxies.
The simple fix is at the end of the ReflectionProxyHandler.toXML() method where
it loops thru and calls serialize() for each parameter name/value. It should
first check if a value is null, it doesn't need to create the corresponding
Element to insert into the final request message.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]