You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2011/03/27 14:41:47 UTC
svn commit: r1085927 - in
/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader:
ADBXMLStreamReaderImpl.java WrappingXMLStreamReader.java
Author: veithen
Date: Sun Mar 27 12:41:46 2011
New Revision: 1085927
URL: http://svn.apache.org/viewvc?rev=1085927&view=rev
Log:
Fixed the ADB code so that it no longer depends on the incorrect behavior described in AXIOM-358.
Modified:
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java
Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java?rev=1085927&r1=1085926&r2=1085927&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java (original)
+++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java Sun Mar 27 12:41:46 2011
@@ -962,9 +962,8 @@ public class ADBXMLStreamReaderImpl impl
}
}
- ADBXMLStreamReader reader = new ADBXMLStreamReaderImpl(propertyQName,
+ childReader = new ADBXMLStreamReaderImpl(propertyQName,
objects.toArray(), new ArrayList().toArray(), typeTable, qualified);
- childReader = new WrappingXMLStreamReader(reader);
}
} else if (propertyValue instanceof ADBBean) {
//ADBbean has it's own method to get a reader
@@ -991,9 +990,9 @@ public class ADBXMLStreamReaderImpl impl
} else {
//all special possiblilities has been tried! Let's treat
//the thing as a bean and try generating events from it
- childReader = new WrappingXMLStreamReader
- (BeanUtil.getPullParser(propertyValue,
- propertyQName, typeTable, qualified, false));
+ childReader = (ADBXMLStreamReader)
+ BeanUtil.getPullParser(propertyValue,
+ propertyQName, typeTable, qualified, false);
//we cannot register the namespace context here
}
Modified: axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java?rev=1085927&r1=1085926&r2=1085927&view=diff
==============================================================================
--- axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java (original)
+++ axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/WrappingXMLStreamReader.java Sun Mar 27 12:41:46 2011
@@ -28,17 +28,15 @@ import javax.xml.stream.XMLStreamReader;
public class WrappingXMLStreamReader implements ADBXMLStreamReader {
private XMLStreamReader reader;
+ private int depth;
+ private boolean done;
public WrappingXMLStreamReader(XMLStreamReader reader) {
this.reader = reader;
}
public boolean isDone() {
- try {
- return !hasNext();
- } catch (XMLStreamException e) {
- throw new RuntimeException(e);
- }
+ return done;
}
public Object getProperty(String string) throws IllegalArgumentException {
@@ -46,7 +44,16 @@ public class WrappingXMLStreamReader imp
}
public int next() throws XMLStreamException {
- return reader.next();
+ int event = reader.next();
+ if (event == START_ELEMENT) {
+ depth++;
+ } else if (event == END_ELEMENT) {
+ depth--;
+ if (depth == 0) {
+ done = true;
+ }
+ }
+ return event;
}
public void require(int i, String string, String string1) throws XMLStreamException {