You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Hudson (JIRA)" <ji...@apache.org> on 2016/02/01 01:13:39 UTC

[jira] [Commented] (AXIOM-11) OMElement.getChildrenWithName(QName) breaks customers dependent on the old semantics

    [ https://issues.apache.org/jira/browse/AXIOM-11?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15125579#comment-15125579 ] 

Hudson commented on AXIOM-11:
-----------------------------

SUCCESS: Integrated in axiom-trunk #2470 (See [https://builds.apache.org/job/axiom-trunk/2470/])
Remove the legacy behavior implemented by AXIOM-11 in getChildrenWithName. (veithen: rev 1727870)
* axiom/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMChildrenLegacyQNameIterator.java
* axiom/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
* axiom/src/site/markdown/release-notes/1.3.0.md
* axiom/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/element/TestGetChildrenWithName4.java


> OMElement.getChildrenWithName(QName) breaks customers dependent on the old semantics
> ------------------------------------------------------------------------------------
>
>                 Key: AXIOM-11
>                 URL: https://issues.apache.org/jira/browse/AXIOM-11
>             Project: Axiom
>          Issue Type: Bug
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
>         Attachments: patch.txt
>
>
> Background:
>   OMElement.getChildrenWithName(QName searchQName) relies on OMChildrenQNameIterator to get the child elements that have a matching qname.
>   The OMChildrenQNameIterator had a "loose" interpretation of equality.  If the child element's local name matched the searchQName local name, then the child was returned.
>   
>   The OMChildrenQNameIterator semantic was changed to a proper, "strict" interpretation.  (http://svn.apache.org/viewvc?view=rev&revision=522259)
> Problem:
> Some customers built applications that relied on the old "loose" interpretation.   Many of these customers cannot change their applications because they are in a shipped product.  When they upgrade to the new Axiom levels, their applications fail.  (Since Axiom is close to the bottom of the stack, it is difficult to diagnose these failures).
> Solution:
>    I want to keep the OMChildrenQNameIterator intact.  It will continue to use the "strict" interpretation.
>    In OMElementImpl.getChildrenWithName, I want to use the "strict" interpretation if a fully qualified searchQName is provided.
>    However,  in the case where the searchQName has no namespace, I want to have a fallback.   
>    If there are no child elements that match the unqualified qname, then I would like the code to fallback to the old semantic.
>    
>    I feel that this tactical approach is the best compromise between the correct "strict" semantics, but also tolerates customers that relied on the old behavior.
>    I will provide a patch containing both the new code, trace, and validation testcase.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org