[ 
https://issues.apache.org/jira/browse/GROOVY-8708?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brongniart Jérôme updated GROOVY-8708:
--------------------------------------
    Description: 
We are facing an issue when using the following groovy script is used as a 
ScriptBaseClass with version 2.3.0 or greater:
{code:java}
abstract class Templates extends Script {
    def test() {
        def a = [];
        return a;
    }
}
{code}
 Error:
{noformat}
Script1.groovy: 1: A transform used a generics containing ClassNode Templates 
for the super class Script1 directly. You are not supposed to do this. Please 
create a new ClassNode referring to the old ClassNode and use the new ClassNode 
instead of the old one. Otherwise the compiler will create wrong descriptors 
and a potential NullPointerException in TypeResolver in the OpenJDK. If this is 
not your own doing, please report this bug to the writer of the transform.
{noformat}
The error happens when calling the following example (This example is working 
as expected when using Groovy 2.2.2):
{code:java}
import java.io.IOException;
import org.codehaus.groovy.control.CompilationFailedException;
import org.codehaus.groovy.control.CompilerConfiguration;
import groovy.lang.GroovyShell;
import groovy.lang.Script;

public class GroovyTest {
        
        public static void main(String[] args) throws 
CompilationFailedException, IOException {

                CompilerConfiguration groovyCompilerConfiguration = new 
CompilerConfiguration();
                groovyCompilerConfiguration.setScriptBaseClass("Templates");
                groovyCompilerConfiguration.setDebug(true);
                groovyCompilerConfiguration.setVerbose(true);
                
                GroovyShell shell = new 
GroovyShell(groovyCompilerConfiguration);
                Script script = shell.parse("print \"test\"");
        }

}
{code}
Is this an issue from Groovy or is this change expected?

Thanks and regards

  was:
We are facing an issue when using the following groovy script is used as a 
ScriptBaseClass with version 2.3.0 or greater:
{code:java}
abstract class Templates extends Script {
    def test() {
        def a = [];
        return a;
    }
}
{code}
 Error:
{noformat}
Script1.groovy: 1: A transform used a generics containing ClassNode Templates 
for the super class Script1 directly. You are not supposed to do this. Please 
create a new ClassNode referring to the old ClassNode and use the new ClassNode 
instead of the old one. Otherwise the compiler will create wrong descriptors 
and a potential NullPointerException in TypeResolver in the OpenJDK. If this is 
not your own doing, please report this bug to the writer of the transform.
{noformat}
The error happens when calling the following example (This example is working 
as expected when using Groovy 2.2.2):
{code:java}
import java.io.IOException;
import org.codehaus.groovy.control.CompilationFailedException;
import org.codehaus.groovy.control.CompilerConfiguration;
import groovy.lang.GroovyShell;
import groovy.lang.Script;

public class GroovyTest {
        
        public static void main(String[] args) throws 
CompilationFailedException, IOException {

                CompilerConfiguration groovyCompilerConfiguration = new 
CompilerConfiguration();
                groovyCompilerConfiguration.setScriptBaseClass("Templates");
                groovyCompilerConfiguration.setDebug(true);
                groovyCompilerConfiguration.setVerbose(true);
                
                GroovyShell shell = new 
GroovyShell(groovyCompilerConfiguration);
                Script script = shell.parse("print \"test\"");
        }

}
{code}
If this an issue from Groovy or is this change expected?

Thanks and regards


> SyntaxException when extending groovy.lang.Script
> -------------------------------------------------
>
>                 Key: GROOVY-8708
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8708
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 2.3.0
>            Reporter: Brongniart Jérôme
>            Priority: Major
>
> We are facing an issue when using the following groovy script is used as a 
> ScriptBaseClass with version 2.3.0 or greater:
> {code:java}
> abstract class Templates extends Script {
>     def test() {
>         def a = [];
>         return a;
>     }
> }
> {code}
>  Error:
> {noformat}
> Script1.groovy: 1: A transform used a generics containing ClassNode Templates 
> for the super class Script1 directly. You are not supposed to do this. Please 
> create a new ClassNode referring to the old ClassNode and use the new 
> ClassNode instead of the old one. Otherwise the compiler will create wrong 
> descriptors and a potential NullPointerException in TypeResolver in the 
> OpenJDK. If this is not your own doing, please report this bug to the writer 
> of the transform.
> {noformat}
> The error happens when calling the following example (This example is working 
> as expected when using Groovy 2.2.2):
> {code:java}
> import java.io.IOException;
> import org.codehaus.groovy.control.CompilationFailedException;
> import org.codehaus.groovy.control.CompilerConfiguration;
> import groovy.lang.GroovyShell;
> import groovy.lang.Script;
> public class GroovyTest {
>       
>       public static void main(String[] args) throws 
> CompilationFailedException, IOException {
>               CompilerConfiguration groovyCompilerConfiguration = new 
> CompilerConfiguration();
>               groovyCompilerConfiguration.setScriptBaseClass("Templates");
>               groovyCompilerConfiguration.setDebug(true);
>               groovyCompilerConfiguration.setVerbose(true);
>               
>               GroovyShell shell = new 
> GroovyShell(groovyCompilerConfiguration);
>               Script script = shell.parse("print \"test\"");
>       }
> }
> {code}
> Is this an issue from Groovy or is this change expected?
> Thanks and regards



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to