You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "John Wagenleitner (JIRA)" <ji...@apache.org> on 2016/04/24 18:36:12 UTC
[jira] [Resolved] (GROOVY-6696) @attribute on groovy.util.Node does
not work when meta class is modified
[ https://issues.apache.org/jira/browse/GROOVY-6696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Wagenleitner resolved GROOVY-6696.
---------------------------------------
Resolution: Fixed
Assignee: John Wagenleitner
Resolving this since I can't reproduce. Please reopen if it's still an issue.
> @attribute on groovy.util.Node does not work when meta class is modified
> ------------------------------------------------------------------------
>
> Key: GROOVY-6696
> URL: https://issues.apache.org/jira/browse/GROOVY-6696
> Project: Groovy
> Issue Type: Bug
> Components: XML Processing
> Affects Versions: 2.2.2
> Reporter: Baptiste Mesta
> Assignee: John Wagenleitner
> Priority: Minor
>
> if a closure is added to the meta class it seems that the node.@attribute is not working anymore
> however it is still working when we use quotes, i.e. node.'@attribute'
> here is some tests that reproduce the probleme, they have to be run alone
> {code:java}
> @Test
> public void working() throws Exception {
> //given
> def root = new XmlParser().parseText('''<node id="12">value</node>''')
> //when
> String id = root.@id;
> //then
> assertEquals("12", id);
> }
> @Test
> public void notWorking() throws Exception {
> //given
> Node.metaClass.findParent = { closure ->
> def parent = delegate.parent()
> if(parent == null){
> return null
> }
> if(closure(parent)){
> return parent
> }
> return parent.findParent(closure)
> }
> def root = new XmlParser().parseText('''<node id="12">value</node>''')
> //when
> String id = root.@id;
> //then
> assertEquals("12", id);
> }
> @Test
> public void workingOnlyWithQuotes() throws Exception {
> //given
> Node.metaClass.findParent = { closure ->
> def parent = delegate.parent()
> if(parent == null){
> return null
> }
> if(closure(parent)){
> return parent
> }
> return parent.findParent(closure)
> }
> def root = new XmlParser().parseText('''<node id="12">value</node>''')
> //when
> String id = root.'@id';
> //then
> assertEquals("12", id);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)