This is an automated email from the ASF dual-hosted git repository.

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git


The following commit(s) were added to refs/heads/master by this push:
     new 1d0f792  Avoid super call in NSAwareElement.normalize()
1d0f792 is described below

commit 1d0f792f6ba49d8b4833caabc3637f5fc575949e
Author: Andreas Veithen <[email protected]>
AuthorDate: Wed May 20 21:03:05 2020 +0100

    Avoid super call in NSAwareElement.normalize()
    
    Super call don't play nicely with mixins.
---
 .../src/main/java/org/apache/axiom/dom/DOMNode.java           |  2 +-
 .../java/org/apache/axiom/dom/DOMProcessingInstruction.java   |  2 +-
 .../org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj    |  4 ++++
 .../apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj |  4 ++++
 .../org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj     |  5 ++++-
 .../apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj  |  4 ++++
 .../org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj     |  4 ++++
 .../java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj    |  6 ------
 .../org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj   |  7 +++++--
 .../mixin/NSUnawareElementSupport.aj}                         | 11 ++++++-----
 .../java/org/apache/axiom/om/impl/dom/NSAwareElement.java     |  3 +--
 11 files changed, 34 insertions(+), 18 deletions(-)

diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
index 1e0a9a5..b84d15a 100644
--- a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
+++ b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
@@ -35,5 +35,5 @@ public interface DOMNode extends Node, CoreNode {
      */
     CoreElement getNamespaceContext();
 
-    void normalize(DOMConfigurationImpl config);
+    void normalizeRecursively(DOMConfigurationImpl config);
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
index 2ccd054..9afc2a2 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
@@ -21,6 +21,6 @@ package org.apache.axiom.dom;
 import org.apache.axiom.shared.IProcessingInstruction;
 import org.w3c.dom.ProcessingInstruction;
 
-public interface DOMProcessingInstruction extends DOMChildNode, 
ProcessingInstruction, IProcessingInstruction {
+public interface DOMProcessingInstruction extends DOMLeafNode, 
ProcessingInstruction, IProcessingInstruction {
 
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
index 51bb6eb..875ce91 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMAttributeSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
 import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.dom.DOMAttribute;
+import org.apache.axiom.dom.DOMConfigurationImpl;
 import org.apache.axiom.dom.DOMExceptionUtil;
 import org.apache.axiom.dom.DOMSemantics;
 import org.w3c.dom.DOMException;
@@ -99,4 +100,7 @@ public aspect DOMAttributeSupport {
         // TODO
         throw new UnsupportedOperationException();
     }
+
+    public final void DOMAttribute.normalize(DOMConfigurationImpl config) {
+    }
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
index d53cf44..12d0552 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentFragmentSupport.aj
@@ -23,6 +23,7 @@ import static 
org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
 import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
 import org.apache.axiom.core.ElementAction;
+import org.apache.axiom.dom.DOMConfigurationImpl;
 import org.apache.axiom.dom.DOMDocumentFragment;
 import org.apache.axiom.dom.DOMExceptionUtil;
 import org.apache.axiom.dom.DOMSemantics;
@@ -94,4 +95,7 @@ public aspect DOMDocumentFragmentSupport {
             throw DOMExceptionUtil.toUncheckedException(ex);
         }
     }
+
+    public final void DOMDocumentFragment.normalize(DOMConfigurationImpl 
config) {
+    }
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
index f01a294..aecd6f1 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentSupport.aj
@@ -181,7 +181,7 @@ public aspect DOMDocumentSupport {
                 || domConfig.isEnabled(DOMConfigurationImpl.WELLFORMED)) {
             throw new UnsupportedOperationException("TODO");
         } else {
-            normalize(domConfig);
+            normalizeRecursively(domConfig);
         }
     }
     
@@ -427,4 +427,7 @@ public aspect DOMDocumentSupport {
     public final void DOMDocument.setStrictErrorChecking(boolean 
strictErrorChecking) {
         this.strictErrorChecking = strictErrorChecking;
     }
+
+    public final void DOMDocument.normalize(DOMConfigurationImpl config) {
+    }
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
index 0c8f95f..71e305b 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMEntityReferenceSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
 import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
 
 import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.dom.DOMConfigurationImpl;
 import org.apache.axiom.dom.DOMEntityReference;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
@@ -115,4 +116,7 @@ public aspect DOMEntityReferenceSupport {
     public final Node DOMEntityReference.replaceChild(Node newChild, Node 
oldChild) throws DOMException {
         throw newDOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR);
     }
+
+    public final void 
DOMEntityReference.normalizeRecursively(DOMConfigurationImpl config) {
+    }
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
index f1d1775..c790e58 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMLeafNodeSupport.aj
@@ -21,6 +21,7 @@ package org.apache.axiom.dom.impl.mixin;
 import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
 
 import org.apache.axiom.core.CoreElement;
+import org.apache.axiom.dom.DOMConfigurationImpl;
 import org.apache.axiom.dom.DOMLeafNode;
 import org.apache.axiom.dom.EmptyNodeList;
 import org.w3c.dom.DOMException;
@@ -101,4 +102,7 @@ public aspect DOMLeafNodeSupport {
     public final CoreElement DOMLeafNode.getNamespaceContext() {
         return coreGetParentElement();
     }
+
+    public final void DOMLeafNode.normalizeRecursively(DOMConfigurationImpl 
config) {
+    }
 }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
index 30b6de6..089dbd3 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMNodeSupport.aj
@@ -20,7 +20,6 @@ package org.apache.axiom.dom.impl.mixin;
 
 import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.CoreModelException;
-import org.apache.axiom.dom.DOMConfigurationImpl;
 import org.apache.axiom.dom.DOMDocument;
 import org.apache.axiom.dom.DOMExceptionUtil;
 import org.apache.axiom.dom.DOMNode;
@@ -29,11 +28,6 @@ import org.apache.axiom.dom.DOMSemantics;
 import org.w3c.dom.Node;
 
 public aspect DOMNodeSupport {
-    // TODO: should eventually have package access
-    public void DOMNode.normalize(DOMConfigurationImpl config) {
-        // Default: do nothing
-    }
-
     public final boolean DOMNode.isSupported(String feature, String version) {
         return 
((DOMNodeFactory)coreGetNodeFactory()).getDOMImplementation().hasFeature(feature,
 version);
     }
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
index db19183..01b18da 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/DOMParentNodeSupport.aj
@@ -91,11 +91,12 @@ public aspect DOMParentNodeSupport {
         }
     }
 
-    public void DOMParentNode.normalize(DOMConfigurationImpl config) {
+    public final void DOMParentNode.normalizeRecursively(DOMConfigurationImpl 
config) {
         try {
+            normalize(config);
             CoreChildNode child = coreGetFirstChild();
             while (child != null) {
-                ((DOMNode)child).normalize(config);
+                ((DOMNode)child).normalizeRecursively(config);
                 child = child.coreGetNextSibling();
             }
         } catch (CoreModelException ex) {
@@ -103,6 +104,8 @@ public aspect DOMParentNodeSupport {
         }
     }
 
+    public abstract void DOMParentNode.normalize(DOMConfigurationImpl config);
+
     private void DOMParentNode.checkNewChild(Node newChild) {
         if (newChild instanceof DOMNode) {
             DOMNode newDomChild = (DOMNode)newChild;
diff --git 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
similarity index 74%
copy from 
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
copy to 
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
index 2ccd054..801276b 100644
--- 
a/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMProcessingInstruction.java
+++ 
b/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/impl/mixin/NSUnawareElementSupport.aj
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.dom;
+package org.apache.axiom.dom.impl.mixin;
 
-import org.apache.axiom.shared.IProcessingInstruction;
-import org.w3c.dom.ProcessingInstruction;
-
-public interface DOMProcessingInstruction extends DOMChildNode, 
ProcessingInstruction, IProcessingInstruction {
+import org.apache.axiom.dom.DOMConfigurationImpl;
+import org.apache.axiom.dom.DOMNSUnawareElement;;
 
+public aspect NSUnawareElementSupport {
+    public final void DOMNSUnawareElement.normalize(DOMConfigurationImpl 
config) {
+    }
 }
diff --git 
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
 
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
index 822373f..30fd181 100644
--- 
a/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
+++ 
b/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
@@ -27,7 +27,7 @@ import org.apache.axiom.om.impl.intf.AxiomElement;
 /** Implementation of the org.w3c.dom.Element and org.apache.axiom.om.Element 
interfaces. */
 public class NSAwareElement extends ElementImpl implements DOMNSAwareElement, 
AxiomElement {
     
-    public void normalize(DOMConfigurationImpl config) {
+    public final void normalize(DOMConfigurationImpl config) {
         if (config.isEnabled(DOMConfigurationImpl.NAMESPACES)) {
             OMNamespace namespace = getNamespace();
             if (namespace == null) {
@@ -41,6 +41,5 @@ public class NSAwareElement extends ElementImpl implements 
DOMNSAwareElement, Ax
                 }
             }
         }
-        super.normalize(config);
     }
 }

Reply via email to