You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/05/02 14:24:54 UTC
svn commit: r1741973 - in /webservices/axiom/trunk:
aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java
Author: veithen
Date: Mon May 2 12:24:54 2016
New Revision: 1741973
URL: http://svn.apache.org/viewvc?rev=1741973&view=rev
Log:
Fix broken test case as well as the code being tested.
Modified:
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj?rev=1741973&r1=1741972&r2=1741973&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj Mon May 2 12:24:54 2016
@@ -21,6 +21,7 @@ package org.apache.axiom.om.impl.mixin;
import org.apache.axiom.core.Builder;
import org.apache.axiom.core.ClonePolicy;
import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.core.CoreNode;
import org.apache.axiom.core.DeferredParsingException;
import org.apache.axiom.core.impl.builder.BuilderImpl;
@@ -34,10 +35,10 @@ import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.OMDataSourceExt;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
import org.apache.axiom.om.QNameAwareOMDataSource;
import org.apache.axiom.om.impl.common.AxiomExceptionTranslator;
+import org.apache.axiom.om.impl.common.AxiomSemantics;
import org.apache.axiom.om.impl.common.DeferredNamespace;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.common.util.OMDataSourceUtil;
@@ -51,8 +52,6 @@ import javax.xml.namespace.QName;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import java.util.Iterator;
-
/**
* <p>Element backed by an arbitrary data source. When necessary, this element will be expanded by
* creating a parser from the data source.</p>
@@ -429,24 +428,23 @@ public aspect AxiomSourcedElementSupport
* setOMDataSource
*/
public OMDataSource AxiomSourcedElement.setDataSource(OMDataSource dataSource) {
- if (!isExpanded()) {
- OMDataSource oldDS = this.dataSource;
- this.dataSource = dataSource;
- return oldDS; // Caller is responsible for closing the data source
- } else {
- // TODO
- // Remove the entire subtree and replace with
- // new datasource. There maybe a more performant way to do this.
- OMDataSource oldDS = this.dataSource;
- for (Iterator<OMNode> it = getChildren(); it.hasNext(); ) {
- it.next();
- it.remove();
- }
- this.dataSource = dataSource;
- coreSetState(INCOMPLETE);
- isExpanded = false;
- coreSetInputContext(null);
- return oldDS;
+ // TODO: the semantics of this method are not clear; is the assumption that the name of the element remains unchanged?
+ try {
+ if (!isExpanded()) {
+ OMDataSource oldDS = this.dataSource;
+ this.dataSource = dataSource;
+ return oldDS; // Caller is responsible for closing the data source
+ } else {
+ OMDataSource oldDS = this.dataSource;
+ coreSetInputContext(null);
+ // TODO: remove attributes?
+ coreRemoveChildren(AxiomSemantics.INSTANCE);
+ isExpanded = false;
+ this.dataSource = dataSource;
+ return oldDS;
+ }
+ } catch (CoreModelException ex) {
+ throw AxiomExceptionTranslator.translate(ex);
}
}
Modified: webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java?rev=1741973&r1=1741972&r2=1741973&view=diff
==============================================================================
--- webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java (original)
+++ webservices/axiom/trunk/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/sourcedelement/TestSetDataSource.java Mon May 2 12:24:54 2016
@@ -39,11 +39,6 @@ public class TestSetDataSource extends A
}
protected void runTest() throws Throwable {
- // TODO Auto-generated method stub
-
- }
-
- public void testOMSEReplacement() throws Exception {
String ENCODING = "utf-8";
String payload1 = "<tns:myPayload xmlns:tns=\"urn://test\">Payload One</tns:myPayload>";
String payload2 = "<tns:myPayload xmlns:tns=\"urn://test\">Payload Two</tns:myPayload>";