You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by sc...@apache.org on 2009/12/16 17:29:35 UTC
svn commit: r891290 - in /webservices/commons/trunk/modules/axiom/modules:
axiom-api/src/main/java/org/apache/axiom/om/impl/
axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/
Author: scheu
Date: Wed Dec 16 16:29:34 2009
New Revision: 891290
URL: http://svn.apache.org/viewvc?rev=891290&view=rev
Log:
WSCOMMONS-512
Contributor:Rich Scheuerle
Corrected code for the case where the parser switch occurs directly after the OMSourcedElement
Added a validation test.
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNavigator.java
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/SwitchingWrapper.java
webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/OMSerializerTest.java
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNavigator.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNavigator.java?rev=891290&r1=891289&r2=891290&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNavigator.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/OMNavigator.java Wed Dec 16 16:29:34 2009
@@ -153,12 +153,12 @@
*/
private boolean isLeaf(OMNode n) {
if (n instanceof OMElement) {
- if (this.isDataSourceALeaf && (n instanceof OMSourcedElement)) {
+ if (this.isDataSourceALeaf && (n instanceof OMSourcedElement) && n != root) {
OMDataSource ds = null;
try {
ds = ((OMSourcedElement) n).getDataSource();
} catch (UnsupportedOperationException e) {
- ; // Operation unsupported for DOM impl
+ ; // Operation unsupported for some implementations
}
if (ds != null) {
return true;
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/SwitchingWrapper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/SwitchingWrapper.java?rev=891290&r1=891289&r2=891290&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/SwitchingWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/om/impl/SwitchingWrapper.java Wed Dec 16 16:29:34 2009
@@ -1558,12 +1558,18 @@
* @return OMDataSource associated with the current node or Null
*/
public OMDataSource getDataSource() {
+ if (getEventType() != XMLStreamReader.START_ELEMENT ||
+ !(state == this.NAVIGABLE ||
+ state == this.SWITCH_AT_NEXT)) {
+ return null;
+ }
OMDataSource ds = null;
if (lastNode != null &&
lastNode instanceof OMSourcedElement) {
try {
ds = ((OMSourcedElement) lastNode).getDataSource();
} catch (UnsupportedOperationException e) {
+ // Some implementations throw an UnsupportedOperationException.
ds =null;
}
if (log.isDebugEnabled()) {
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/OMSerializerTest.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/OMSerializerTest.java?rev=891290&r1=891289&r2=891290&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/OMSerializerTest.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-tests/src/test/java/org/apache/axiom/om/impl/serializer/OMSerializerTest.java Wed Dec 16 16:29:34 2009
@@ -297,9 +297,13 @@
String outputString = new String(byteArrayOutputStream.toByteArray());
assertTrue("Expected output was incorrect. Received:" + outputString,
outputString != null && !"".equals(outputString) && outputString.length() > 1);
+ int indexHelloWorld = outputString.indexOf("Hello World");
assertTrue("Expected output was incorrect. Received:" + outputString,
- outputString.contains("Hello World"));
-
+ indexHelloWorld > 0);
+ int indexHelloWorld2 = outputString.indexOf("Hello World", indexHelloWorld+1);
+ assertTrue("Expected output was incorrect. Received:" + outputString,
+ indexHelloWorld2 < 0);
+
assertTrue("Expectation is that an OMSourcedElement was created for the payload",
omse != null);
assertTrue("Expectation is that the OMSourcedElement was not expanded by serialization ",