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 2007/10/22 19:51:58 UTC

svn commit: r587171 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/message/ distribution/ distribution/manifest/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/i...

Author: dkulp
Date: Mon Oct 22 10:51:55 2007
New Revision: 587171

URL: http://svn.apache.org/viewvc?rev=587171&view=rev
Log:
[CXF-1129] Fix issues with out of band headers causing marshalling issues
Re-add asm jars to distribution

Modified:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/MessageContentsList.java
    incubator/cxf/trunk/distribution/manifest/pom.xml
    incubator/cxf/trunk/distribution/pom.xml
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java
    incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperHelper.java

Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/MessageContentsList.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/MessageContentsList.java?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/MessageContentsList.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/message/MessageContentsList.java Mon Oct 22 10:51:55 2007
@@ -59,7 +59,7 @@
     
     private void ensureSize(int idx) {
         while (idx >= size()) {
-            add(null);
+            add(REMOVED_MARKER);
         }
     }
     
@@ -69,6 +69,9 @@
     }
     
     public boolean hasValue(MessagePartInfo key) {
+        if (key.getIndex() >= size()) {
+            return false;
+        }
         return super.get(key.getIndex()) != REMOVED_MARKER;
     }
     

Modified: incubator/cxf/trunk/distribution/manifest/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/manifest/pom.xml?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/distribution/manifest/pom.xml (original)
+++ incubator/cxf/trunk/distribution/manifest/pom.xml Mon Oct 22 10:51:55 2007
@@ -220,6 +220,10 @@
             <artifactId>jettison</artifactId>
             <version>1.0-RC2</version>
         </dependency>
+        <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

Modified: incubator/cxf/trunk/distribution/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/pom.xml?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/distribution/pom.xml (original)
+++ incubator/cxf/trunk/distribution/pom.xml Mon Oct 22 10:51:55 2007
@@ -226,6 +226,10 @@
             <version>1.0-RC2</version>
         </dependency>
         <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+        </dependency>
+        <dependency>
             <groupId>${pom.groupId}</groupId>
             <artifactId>cxf-bundle</artifactId>
             <version>${pom.version}</version>

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/SoapHeaderInterceptor.java Mon Oct 22 10:51:55 2007
@@ -97,8 +97,9 @@
                 }
                 
             }
-            
-            parameters.put(mpi, object);
+            if (object != null && mpi.getTypeClass() != null) {
+                parameters.put(mpi, object);
+            }
         }
         if (parameters.size() > 0) {
             message.setContent(List.class, parameters);

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassInInterceptor.java Mon Oct 22 10:51:55 2007
@@ -21,6 +21,7 @@
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.logging.Logger;
 
@@ -120,10 +121,25 @@
             try {
                 newParams = new MessageContentsList(helper.getWrapperParts(wrappedObject));
                 
+                List<Integer> removes = null;
                 for (MessagePartInfo part : messageInfo.getMessageParts()) {
                     if (Boolean.TRUE.equals(part.getProperty(ReflectionServiceFactoryBean.HEADER))) {
                         MessagePartInfo mpi = wrappedMessageInfo.getMessagePart(part.getName());
-                        newParams.put(part, lst.get(mpi));
+                        if (lst.hasValue(mpi)) {
+                            newParams.put(part, lst.get(mpi));
+                        } else if (mpi.getTypeClass() == null) {
+                            //header, but not mapped to a param on the method
+                            if (removes == null) {
+                                removes = new ArrayList<Integer>();
+                            }
+                            removes.add(mpi.getIndex());
+                        }
+                    }
+                }
+                if (removes != null) {
+                    Collections.sort(removes, Collections.reverseOrder());
+                    for (Integer i : removes) {
+                        newParams.remove(i.intValue());
                     }
                 }
             } catch (Exception e) {

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperClassOutInterceptor.java Mon Oct 22 10:51:55 2007
@@ -109,7 +109,9 @@
                 for (MessagePartInfo p : messageInfo.getMessageParts()) {
                     if (Boolean.TRUE.equals(p.getProperty(ReflectionServiceFactoryBean.HEADER))) {
                         MessagePartInfo mpi = wrappedMsgInfo.getMessagePart(p.getName());
-                        newObjs.put(mpi, objs.get(p));
+                        if (objs.hasValue(p)) {
+                            newObjs.put(mpi, objs.get(p));
+                        }
                     }
                 }
 

Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperHelper.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperHelper.java?rev=587171&r1=587170&r2=587171&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperHelper.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WrapperHelper.java Mon Oct 22 10:51:55 2007
@@ -268,6 +268,9 @@
                 Object ret = wrapperType.newInstance();
 
                 for (int x = 0; x < setMethods.length; x++) {
+                    if (setMethods[x] == null && fields[x] == null) {
+                        continue;
+                    }
                     Object o = lst.get(x);
                     if (jaxbObjectMethods[x] != null) {
                         o = jaxbObjectMethods[x].invoke(objectFactory, o);