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 2012/12/05 19:29:14 UTC

svn commit: r1417571 - in /cxf/trunk/rt: core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java

Author: dkulp
Date: Wed Dec  5 18:29:13 2012
New Revision: 1417571

URL: http://svn.apache.org/viewvc?rev=1417571&view=rev
Log:
[CXF-4301] Fix a couple issues when using out of band headers

Modified:
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
    cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java?rev=1417571&r1=1417570&r2=1417571&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/service/factory/ReflectionServiceFactoryBean.java Wed Dec  5 18:29:13 2012
@@ -815,6 +815,13 @@ public class ReflectionServiceFactoryBea
             }
             if (part == null && isHeader && o.isUnwrapped()) {
                 part = ((UnwrappedOperationInfo)o).getWrappedOperation().getInput().getMessagePart(name);
+                if (part == null) {
+                    QName name2 = this.getInParameterName(o, method, i);
+                    part = o.getInput().getMessagePart(name2);
+                    if (part != null) {
+                        name = name2;
+                    }
+                }
                 if (part != null) {
                     //header part in wsdl, need to get this mapped in to the unwrapped form
                     MessagePartInfo inf = o.getInput().addMessagePart(part.getName());
@@ -848,12 +855,16 @@ public class ReflectionServiceFactoryBea
         } else if (isIn && isOut) {
             QName name = getInPartName(o, method, i);
             part = o.getInput().getMessagePart(name);
+            if (part == null && isHeader && o.isUnwrapped()) {
+                QName name2 = this.getInParameterName(o, method, i);
+                part = o.getInput().getMessagePart(name2);
+                if (part != null) {
+                    name = name2;
+                }
+            }
             if (part == null && this.isFromWsdl()) {
                 part = o.getInput().getMessagePartByIndex(i);
             }
-            if (part == null && isHeader && o.isUnwrapped()) {
-                part = o.getUnwrappedOperation().getInput().getMessagePart(name);
-            }
             if (part == null) {
                 return false;
             }

Modified: cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java?rev=1417571&r1=1417570&r2=1417571&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java (original)
+++ cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java Wed Dec  5 18:29:13 2012
@@ -171,6 +171,10 @@ public class WrapperClassOutInterceptor 
         }
 
         for (MessagePartInfo p : messageInfo.getMessageParts()) {
+            if (p.getTypeClass() == null) {
+                //WSDL part wasn't mapped to a parameter
+                continue;
+            }
             ensureSize(partNames, p.getIndex());
             ensureSize(elTypeNames, p.getIndex());
             ensureSize(partClasses, p.getIndex());