Это когда он попадает в линию:
this.metaClass.mixin script
Загруженный скрипт, вероятно, имеет ссылку на класс, который его загрузил (этот класс), поэтому при попытке смешать его вы получите бесконечный цикл.
Обходной путь должен сделать:
def gse = new groovy.util.GroovyScriptEngine( '/tmp' )
def script = gse.loadScriptByName( 'say.groovy' )
script.newInstance().with {
say("bye")
}
[править]
Кажется, это работает, если вы используете свой оригинальный скрипт, но измените say.groovy
на
class Say {
def say( msg ) {
println msg
}
}