[jbossws-commits] JBossWS SVN: r2444 - in trunk/jbossws-core/src/main/java/org/jboss/ws: metadata/builder/jaxrpc and 2 other directories.
jbossws-commits at lists.jboss.org
jbossws-commits at lists.jboss.org
Thu Feb 22 22:03:43 EST 2007
Author: jason.greene at jboss.com
Date: 2007-02-22 22:03:43 -0500 (Thu, 22 Feb 2007)
New Revision: 2444
Modified:
trunk/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java
trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxrpc/JAXRPCMetaDataBuilder.java
trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/WrappedParameter.java
Log:
Merge 2435 and 2437 from 1.2.0
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java 2007-02-23 03:00:03 UTC (rev 2443)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/core/EndpointInvocation.java 2007-02-23 03:03:43 UTC (rev 2444)
@@ -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)
{
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxrpc/JAXRPCMetaDataBuilder.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxrpc/JAXRPCMetaDataBuilder.java 2007-02-23 03:00:03 UTC (rev 2443)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxrpc/JAXRPCMetaDataBuilder.java 2007-02-23 03:03:43 UTC (rev 2444)
@@ -651,7 +651,13 @@
if (! "OUT".equals(parameterMode))
wrappedParameters.add(wrapped);
if (! "IN".equals(parameterMode))
+ {
+ wrapped.setHolder(true);
+ // wrapped parameters can not be shared between request/response objects (accessors)
+ if ("INOUT".equals(parameterMode))
+ wrapped = new WrappedParameter(wrapped);
wrappedResponseParameters.add(wrapped);
+ }
}
inMetaData.setWrappedParameters(wrappedParameters);
wsdlPosition = wrappedParameters.size();
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java 2007-02-23 03:00:03 UTC (rev 2443)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/builder/jaxws/JAXWSMetaDataBuilder.java 2007-02-23 03:03:43 UTC (rev 2444)
@@ -624,10 +624,15 @@
if (mode != ParameterMode.OUT)
wrappedParameters.add(wrappedParameter);
+
if (mode != ParameterMode.IN)
{
+ wrappedParameter.setHolder(true);
+
+ // WrappedParameters can not be shared between request/response objects (accessors)
+ if (mode == ParameterMode.INOUT)
+ wrappedParameter = new WrappedParameter(wrappedParameter);
wrappedOutputParameters.add(wrappedParameter);
- wrappedParameter.setHolder(true);
}
}
else
Modified: trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/WrappedParameter.java
===================================================================
--- trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/WrappedParameter.java 2007-02-23 03:00:03 UTC (rev 2443)
+++ trunk/jbossws-core/src/main/java/org/jboss/ws/metadata/umdm/WrappedParameter.java 2007-02-23 03:03:43 UTC (rev 2444)
@@ -42,6 +42,17 @@
private int index = -2;
private Accessor accessor;
+ public WrappedParameter(WrappedParameter wrapped)
+ {
+ this.name = wrapped.name;
+ this.type = wrapped.type;
+ this.typeArguments = wrapped.typeArguments;
+ this.variable = wrapped.variable;
+ this.holder = wrapped.holder;
+ this.index = wrapped.index;
+ this.accessor = wrapped.accessor;
+ }
+
public WrappedParameter(QName name, String type, String variable, int index)
{
this.setName(name);
More information about the jbossws-commits
mailing list