You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/05/16 09:23:50 UTC

svn commit: r775423 - in /cxf/trunk: rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java

Author: dkulp
Date: Sat May 16 07:23:50 2009
New Revision: 775423

URL: http://svn.apache.org/viewvc?rev=775423&view=rev
Log:
[CXF-2221] Fix for code generation of out of band headers set in
multiple bindings causing them to always be OUT only

Modified:
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
    cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java?rev=775423&r1=775422&r2=775423&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java (original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapBindingFactory.java Sat May 16 07:23:50 2009
@@ -516,7 +516,12 @@
                 || part.getName().equals(partNameFilter)) {
             
                 QName pqname = new QName(minfo.getName().getNamespaceURI(), part.getName());
-                MessagePartInfo pi = minfo.addOutOfBandMessagePart(pqname);
+                MessagePartInfo pi = minfo.getMessagePart(pqname);
+                if (pi != null
+                    && pi.getMessageInfo().getName().equals(msg.getQName())) {
+                    continue;
+                }
+                pi = minfo.addOutOfBandMessagePart(pqname);
                 
                 if (!minfo.getName().equals(msg.getQName())) {
                     pi.setMessageContainer(new MessageInfo(minfo.getOperation(), null, msg.getQName()));

Modified: cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java
URL: http://svn.apache.org/viewvc/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java?rev=775423&r1=775422&r2=775423&view=diff
==============================================================================
--- cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java (original)
+++ cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java Sat May 16 07:23:50 2009
@@ -32,6 +32,7 @@
 import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.tools.common.ToolException;
+import org.apache.cxf.tools.common.model.JavaType.Style;
 
 public class JavaMethod implements JavaAnnotatable {
     private static final Logger LOG = LogUtils.getL7dLogger(JavaMethod.class);
@@ -150,6 +151,9 @@
         int index = ((ArrayList)parameters).indexOf(p1);
         parameters.remove(index);
         parameters.add(index, p2);
+        if ((p1.isIN() && p2.isOUT()) || p1.isINOUT()) {
+            p2.setStyle(Style.INOUT);
+        }
     }
 
     private boolean isEquiv(String c1, String c2) {