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/07/16 21:31:54 UTC
svn commit: r794794 - in /cxf/branches/2.2.x-fixes: ./
rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/
rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/
rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/
Author: dkulp
Date: Thu Jul 16 19:31:53 2009
New Revision: 794794
URL: http://svn.apache.org/viewvc?rev=794794&view=rev
Log:
Merged revisions 794771 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r794771 | bimargulies | 2009-07-16 14:10:28 -0400 (Thu, 16 Jul 2009) | 1 line
CXF-2309, avoid exposing unwanted XML element for Document mapping.
........
Added:
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/DOMMappingTest.java
- copied unchanged from r794771, cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/DOMMappingTest.java
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/BeanWithDOM.java
- copied unchanged from r794771, cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/BeanWithDOM.java
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/DocumentService.java
- copied unchanged from r794771, cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/DocumentService.java
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/IDocumentService.java
- copied unchanged from r794771, cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/IDocumentService.java
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/DocumentType.java
cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jul 16 19:31:53 2009
@@ -1 +1 @@
-/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728
+/cxf/trunk:782728-782730,783097,783294,783396,784059,784181-784184,784893,784895,785279-785282,785468,785621,785624,785651,785734,785866,786142,786271-786272,786395,786512,786514,786582-786583,786638,786647,786850,787200,787269,787277-787279,787290-787291,787305,787323,787366,787849,788030,788060,788187,788444,788451,788703,788752,788774,788819-788820,789013,789371,789387,789420,789527-789530,789704-789705,789788,789811,789896-789901,790074,790094,790134,790188,790294,790553,790637-790644,790868,791301,791354,791538,791753,791947,792007,792096,792183,792261-792265,792271,792604,792683-792685,792975,792985,793059,793570,794297,794396,794680,794728,794771
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/DocumentType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/DocumentType.java?rev=794794&r1=794793&r2=794794&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/DocumentType.java (original)
+++ cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/xml/DocumentType.java Thu Jul 16 19:31:53 2009
@@ -25,6 +25,7 @@
import javax.xml.stream.XMLStreamReader;
import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.apache.cxf.aegis.Context;
import org.apache.cxf.aegis.DatabindingException;
@@ -64,20 +65,32 @@
public Object readObject(MessageReader mreader, Context context) throws DatabindingException {
try {
XMLStreamReader reader = ((ElementReader)mreader).getXMLStreamReader();
- return StaxUtils.read(builder, new FragmentStreamReader(reader), true);
+ // we need to eat the surrounding element.
+ reader.nextTag();
+ Object tree = StaxUtils.read(builder, new FragmentStreamReader(reader), true);
+ reader.nextTag(); // eat the end tag.
+ return tree;
} catch (XMLStreamException e) {
throw new DatabindingException("Could not parse xml.", e);
}
}
@Override
- public void writeObject(Object object, MessageWriter writer,
+ public void writeObject(Object object, MessageWriter writer,
Context context) throws DatabindingException {
Document doc = (Document)object;
try {
- StaxUtils.writeElement(doc.getDocumentElement(), ((ElementWriter)writer).getXMLStreamWriter(),
- false);
+ Element docElement = doc.getDocumentElement();
+ if (docElement == null) {
+ if (isNillable()) {
+ writer.writeXsiNil();
+ } else {
+ throw new DatabindingException("Could not write xml: null document element.");
+ }
+ } else {
+ StaxUtils.writeElement(docElement, ((ElementWriter)writer).getXMLStreamWriter(), false);
+ }
} catch (XMLStreamException e) {
throw new DatabindingException("Could not write xml.", e);
}
Modified: cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java?rev=794794&r1=794793&r2=794794&view=diff
==============================================================================
--- cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java (original)
+++ cxf/branches/2.2.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java Thu Jul 16 19:31:53 2009
@@ -158,7 +158,7 @@
assertEquals("before items", arrayService.getBeforeValue());
assertEquals(3, arrayService.getW3cArray().length);
org.w3c.dom.Document e = arrayService.getW3cArray()[0];
- assertValid("/a:anyType/iam:walrus", e);
+ assertValid("/iam:walrus", e);
assertEquals("after items", arrayService.getAfterValue());
}