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 23:55:31 UTC

svn commit: r587274 - in /incubator/cxf/trunk: rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ systests/src/test/java/org/apache/cxf/systest/aegis/ testutils/src/mai...

Author: dkulp
Date: Mon Oct 22 14:55:31 2007
New Revision: 587274

URL: http://svn.apache.org/viewvc?rev=587274&view=rev
Log:
[CXF-922] Fix for problems with nillables with Aegis not closing the elements

Modified:
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ElementDataWriter.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataWriter.java
    incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/AegisClientServerTest.java
    incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/authservice/AuthServiceImpl.java

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ElementDataWriter.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ElementDataWriter.java?rev=587274&r1=587273&r2=587274&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ElementDataWriter.java (original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ElementDataWriter.java Mon Oct 22 14:55:31 2007
@@ -97,6 +97,7 @@
             MessageWriter w2 = writer.getElementWriter(part.getConcreteName());
             if (type.isNillable() && type.isWriteOuter() && obj == null) {
                 w2.writeXsiNil();
+                w2.close();
                 return;
             }
 

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataWriter.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataWriter.java?rev=587274&r1=587273&r2=587274&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataWriter.java (original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataWriter.java Mon Oct 22 14:55:31 2007
@@ -94,6 +94,7 @@
             MessageWriter w2 = writer.getElementWriter(part.getConcreteName());
             if (type.isNillable() && type.isWriteOuter() && obj == null) {
                 w2.writeXsiNil();
+                w2.close();
                 return;
             }
 

Modified: incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java?rev=587274&r1=587273&r2=587274&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java (original)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java Mon Oct 22 14:55:31 2007
@@ -29,6 +29,7 @@
 import org.apache.cxf.aegis.util.NamespaceHelper;
 import org.apache.cxf.aegis.xml.AbstractMessageWriter;
 import org.apache.cxf.aegis.xml.MessageWriter;
+import org.apache.cxf.common.util.StringUtils;
 
 /**
  * LiteralWriter
@@ -99,10 +100,10 @@
             String decPrefix = writer.getNamespaceContext().getPrefix(namespace);
 
             // If the user didn't specify a prefix, create one
-            if (prefix == null && decPrefix == null) {
+            if (StringUtils.isEmpty(prefix) && decPrefix == null) {
                 declare = true;
                 prefix = NamespaceHelper.getUniquePrefix(writer);
-            } else if (prefix == null) {
+            } else if (StringUtils.isEmpty(prefix)) {
                 prefix = decPrefix;
             } else if (!prefix.equals(decPrefix)) {
                 declare = true;

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/AegisClientServerTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/AegisClientServerTest.java?rev=587274&r1=587273&r2=587274&view=diff
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/AegisClientServerTest.java (original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/aegis/AegisClientServerTest.java Mon Oct 22 14:55:31 2007
@@ -56,6 +56,7 @@
         AuthService service = (AuthService) proxyFactory.create();
         assertTrue(service.authenticate("Joe", "Joe", "123"));
         assertFalse(service.authenticate("Joe1", "Joe", "fang"));      
+        assertTrue(service.authenticate("Joe", null, "123"));
         List<String> list = service.getRoles("Joe");
         assertEquals(3, list.size());
         assertEquals("Joe", list.get(0));
@@ -85,6 +86,7 @@
         AuthService service = (AuthService) proxyFactory.create();
         assertTrue(service.authenticate("Joe", "Joe", "123"));
         assertFalse(service.authenticate("Joe1", "Joe", "fang"));      
+        assertTrue(service.authenticate("Joe", null, "123"));
         List<String> list = service.getRoles("Joe");
         assertEquals(3, list.size());
         assertEquals("Joe", list.get(0));

Modified: incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/authservice/AuthServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/authservice/AuthServiceImpl.java?rev=587274&r1=587273&r2=587274&view=diff
==============================================================================
--- incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/authservice/AuthServiceImpl.java (original)
+++ incubator/cxf/trunk/testutils/src/main/java/org/apache/cxf/authservice/AuthServiceImpl.java Mon Oct 22 14:55:31 2007
@@ -29,6 +29,10 @@
 public class AuthServiceImpl implements AuthService {
 
     public boolean authenticate(String sid, String uid, String pwd) {
+        if (uid == null) {
+            //test to make sure a "middle" param can be null
+            return pwd != null;
+        }
         return sid.equals(uid);
     }