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/09/28 17:57:32 UTC

svn commit: r819616 - in /cxf/branches/2.2.x-fixes: ./ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java

Author: dkulp
Date: Mon Sep 28 15:57:31 2009
New Revision: 819616

URL: http://svn.apache.org/viewvc?rev=819616&view=rev
Log:
Merged revisions 819599 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r819599 | dkulp | 2009-09-28 11:44:07 -0400 (Mon, 28 Sep 2009) | 2 lines
  
  [CXF-2448] With provider/dispatch services, only the first part should
  be mapped (since invoke only has a single param)
........

Modified:
    cxf/branches/2.2.x-fixes/   (props changed)
    cxf/branches/2.2.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
    cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java

Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.2.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java?rev=819616&r1=819615&r2=819616&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java (original)
+++ cxf/branches/2.2.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java Mon Sep 28 15:57:31 2009
@@ -89,31 +89,32 @@
         boolean supportsNode = this.supportsDataReader(message, Node.class);
         for (SoapHeaderInfo header : headers) {
             MessagePartInfo mpi = header.getPart();
-            Header param = findHeader(message, mpi);
-            
-            Object object = null;
-            if (param != null) {
-                message.getHeaders().remove(param);
+            if (mpi.getTypeClass() != null) {
+
+                Header param = findHeader(message, mpi);
                 
-                if (param.getDataBinding() == null) {
-                    Node source = (Node)param.getObject();
-                    if (supportsNode) {
-                        object = getNodeDataReader(message).read(mpi, source);
+                Object object = null;
+                if (param != null) {
+                    message.getHeaders().remove(param);
+                    
+                    if (param.getDataBinding() == null) {
+                        Node source = (Node)param.getObject();
+                        if (supportsNode) {
+                            object = getNodeDataReader(message).read(mpi, source);
+                        } else {
+                            W3CDOMStreamReader reader = new W3CDOMStreamReader((Element)source);
+                            try {
+                                reader.nextTag(); //advance into the first tag
+                            } catch (XMLStreamException e) {
+                                //ignore
+                            } 
+                            object = getDataReader(message, XMLStreamReader.class).read(mpi, reader);
+                        }
                     } else {
-                        W3CDOMStreamReader reader = new W3CDOMStreamReader((Element)source);
-                        try {
-                            reader.nextTag(); //advance into the first tag
-                        } catch (XMLStreamException e) {
-                            //ignore
-                        } 
-                        object = getDataReader(message, XMLStreamReader.class).read(mpi, reader);
+                        object = param.getObject();
                     }
-                } else {
-                    object = param.getObject();
+                    
                 }
-                
-            }
-            if (mpi.getTypeClass() != null) {
                 parameters.put(mpi, object);
             }
         }

Modified: cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java?rev=819616&r1=819615&r2=819616&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java (original)
+++ cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/support/JaxWsServiceFactoryBean.java Mon Sep 28 15:57:31 2009
@@ -280,6 +280,7 @@
                             }
                             for (MessagePartInfo inf : o.getInput().getMessageParts()) {
                                 inf.setTypeClass(c);
+                                break;
                             }
                         }
                         if (o.getOutput() != null) {
@@ -291,6 +292,7 @@
                             }
                             for (MessagePartInfo inf : o.getOutput().getMessageParts()) {
                                 inf.setTypeClass(c);
+                                break;
                             }
                         }
                         getMethodDispatcher().bind(o, invoke);