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

Jochen Kemnade commented on GROOVY-7074:
----------------------------------------

What about changing {{DelegatingScript}} to call 
{{InvokerHelper.invokeMethod(delegate, name, args)}} instead of 
{{metaClass.invokeMethod(delegate,name,args)}}?

> DelegatingScript does not work with Builder as delegate
> -------------------------------------------------------
>
>                 Key: GROOVY-7074
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7074
>             Project: Groovy
>          Issue Type: Bug
>          Components: GroovyScriptEngine
>    Affects Versions: 2.4.0-beta-3
>         Environment: Windows 7, Linux Mint 16 Petra
>            Reporter: Tobias Schulte
>
> DelegatingScript does not work, if the delegate is e.g. a MarkupBuilder 
> instance.
>     import org.codehaus.groovy.control.CompilerConfiguration
>     import groovy.xml.MarkupBuilder
>     def cc = new CompilerConfiguration()
>     cc.scriptBaseClass = DelegatingScript.class.name
>     def sh = new GroovyShell(new Binding(), cc)
>     def script = sh.parse('''
>     foo {
>         bar()
>     }
>     ''')
>     def markupBuilder = new MarkupBuilder()
>     script.setDelegate(markupBuilder)
>     script.run()
> does throw a groovy.lang.MissingMethodException. If I change the script to
>     delegate.foo {
>         bar()
>     }
> it works.



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

Reply via email to