You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Pruteanu Dragos (JIRA)" <ji...@apache.org> on 2018/11/13 07:58:00 UTC
[jira] [Commented] (GROOVY-8875) NullObject.metaClass
[ https://issues.apache.org/jira/browse/GROOVY-8875?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16684832#comment-16684832 ]
Pruteanu Dragos commented on GROOVY-8875:
-----------------------------------------
I found by myself the solution for this: use getMetaClass() instead of .metaClass.
It would be nice if the error message would be more relevant ( instead of 'semantic analysis')
> NullObject.metaClass
> --------------------
>
> Key: GROOVY-8875
> URL: https://issues.apache.org/jira/browse/GROOVY-8875
> Project: Groovy
> Issue Type: Bug
> Reporter: Pruteanu Dragos
> Priority: Blocker
> Fix For: 3.x
>
>
> Hi,
> I execute this. The third shell.evaluate throws an exception:
> final GroovyShell shell = new GroovyShell( binding, FormsGroovyConfiguration.CONFIG );
> // THIS WILL FORCE NULL VARIABLES TO PRINT AS '' INSTEAD OF NULL
> // http://stackoverflow.com/questions/10517817/how-to-get-rid-of-null-when-concating-string-in-groovy
> shell.evaluate("org.codehaus.groovy.runtime.NullObject.metaClass.toString = \{return ''}");
>
> And got the next exception. This used to work in Java 10 and before, it crashes under Java 11. Could have something to do with java modules ?
>
>
> Exception in thread "JavaFX Application Thread" BUG! exception in phase 'semantic analysis' in source unit 'Script1.groovy' null
> at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:970)
> at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:633)
> at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:582)
> at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:324)
> at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:294)
> at groovy.lang.GroovyShell.parseClass(GroovyShell.java:558)
> at groovy.lang.GroovyShell.parse(GroovyShell.java:570)
> at groovy.lang.GroovyShell.evaluate(GroovyShell.java:454)
> at groovy.lang.GroovyShell.evaluate(GroovyShell.java:493)
> at groovy.lang.GroovyShell.evaluate(GroovyShell.java:464)
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)