Author: jason.greene(a)jboss.com
Date: 2007-02-21 18:54:20 -0500 (Wed, 21 Feb 2007)
New Revision: 2435
Modified:
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java
Log:
Fix wrapped non-header OUT parameter initialization
Modified:
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java
===================================================================
---
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java 2007-02-21
23:46:45 UTC (rev 2434)
+++
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java 2007-02-21
23:54:20 UTC (rev 2435)
@@ -307,7 +307,7 @@
if (opMetaData.isDocumentWrapped() && !paramMetaData.isInHeader()&&
!paramMetaData.isSwA() && !paramMetaData.isMessageType())
{
outParameters = ParameterWrapping.unwrapRequestParameters(paramMetaData,
paramValue, payload);
- syncOutWrappedParameters(targetParameterTypes);
+ syncOutWrappedParameters(targetParameterTypes, payload);
}
else
{
@@ -338,7 +338,7 @@
}
}
- private void syncOutWrappedParameters(Class[] targetParameterTypes)
+ private void syncOutWrappedParameters(Class[] targetParameterTypes, Object[] payload)
{
ParameterMetaData returnMetaData = opMetaData.getReturnParameter();
if (returnMetaData != null)
@@ -347,8 +347,13 @@
{
try
{
- if (param.getIndex() >= 0 &&
!outParameters.containsKey(param.getIndex()) )
- outParameters.put(param.getIndex(),
targetParameterTypes[param.getIndex()].newInstance());
+ // only OUT parameters need to be initialized
+ if (param.getIndex() >= 0 &&
!outParameters.containsKey(param.getIndex()))
+ {
+ Object holder = targetParameterTypes[param.getIndex()].newInstance();
+ payload[param.getIndex()] = holder;
+ outParameters.put(param.getIndex(), holder);
+ }
}
catch (Exception e)
{
Show replies by date