Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-2133

Static imports not working inside closures

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.1-beta-3
    • 1.1-rc-1
    • None
    • None

    Description

      It looks like static imports don't work inside closures:

      C:\Documents and Settings\Guillaume Laforge>groovysh
      Groovy Shell (1.1-beta-3, JVM: 1.6.0_02-b06)
      Type 'help' or '\h' for help.
      -------------------------------------------------------------------------------------------------------------
      groovy:(0):000> import static java.lang.Math.*
      groovy:(0):000> random()
      001> random()
      ===> 0.35025511331429426

      Outside closures, things work just fine, but inside closures:

      groovy:(0):000> c =

      { random() }
      001> c = { random() }

      ERROR groovy.lang.MissingMethodException: No signature of method: groovysh_evaluate.random() is applicable for
      argument types: () values: {}
      at groovy.lang.MetaClassImpl.invokeMissingMethod (MetaClassImpl.java:574)
      at groovy.lang.MetaClassImpl.invokeMissingMethod (MetaClassImpl.java:545)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:787)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:537)
      at groovy.lang.GroovyObjectSupport.invokeMethod (GroovyObjectSupport.java:44)
      at groovy.lang.Script.invokeMethod (Script.java:78)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeOnDelegationObjects (ClosureMetaClass.
      java:326)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:287)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN (ScriptBytecodeAdapter.jav
      a:66)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrent0 (ScriptBytecodeAdapter.jav
      a:99)
      at groovysh_evaluate$_run_closure1.doCall (groovysh_evaluate:2)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:224)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at groovy.lang.Closure.call (Closure.java:292)
      at groovy.lang.GString.writeTo (GString.java:155)
      at groovy.lang.GString.toString (GString.java:133)
      at org.codehaus.groovy.reflection.CachedClass.coerceGString (CachedClass.java:95)
      at org.codehaus.groovy.reflection.ParameterTypes.coerceArgumentsToClasses (ParameterTypes.java:92)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:535)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at org.codehaus.groovy.runtime.Invoker.invokePojoMethod (Invoker.java:87)
      at org.codehaus.groovy.runtime.Invoker.invokeMethod (Invoker.java:75)
      at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod (InvokerHelper.java:74)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN (ScriptBytecodeAdapter.java:158)
      at org.codehaus.groovy.tools.shell.Groovysh.setLastResult (Groovysh.groovy:92)
      at org.codehaus.groovy.tools.shell.Groovysh.this$3$setLastResult (Groovysh.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.setProperty (MetaClassImpl.java:1764)
      at groovy.lang.MetaClassImpl.setProperty (MetaClassImpl.java:2412)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at org.codehaus.groovy.runtime.Invoker.invokePojoMethod (Invoker.java:87)
      at org.codehaus.groovy.runtime.Invoker.invokeMethod (Invoker.java:75)
      at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod (InvokerHelper.java:74)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN (ScriptBytecodeAdapter.java:158)
      at org.codehaus.groovy.tools.shell.Shell.setProperty (Shell.groovy)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setGroovyObjectProperty (ScriptBytecodeAdapter.ja
      va:571)
      at org.codehaus.groovy.tools.shell.Groovysh.execute (Groovysh.groovy:182)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN (ScriptBytecodeAdapter.jav
      a:66)
      at org.codehaus.groovy.tools.shell.Shell.leftShift (Shell.groovy:121)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at org.codehaus.groovy.runtime.Invoker.invokePogoMethod (Invoker.java:98)
      at org.codehaus.groovy.runtime.Invoker.invokeMethod (Invoker.java:79)
      at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod (InvokerHelper.java:74)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN (ScriptBytecodeAdapter.java:158)
      at org.codehaus.groovy.tools.shell.ShellRunner.work (ShellRunner.groovy:88)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN (ScriptBytecodeAdapter.jav
      a:66)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrent0 (ScriptBytecodeAdapter.jav
      a:99)
      at org.codehaus.groovy.tools.shell.ShellRunner.run (ShellRunner.groovy:57)
      at org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$run (InteractiveShellRunner.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN (ScriptBytecodeAdapter.java:
      118)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0 (ScriptBytecodeAdapter.java:
      142)
      at org.codehaus.groovy.tools.shell.InteractiveShellRunner.run (InteractiveShellRunner.groovy:64)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at org.codehaus.groovy.runtime.Invoker.invokePogoMethod (Invoker.java:98)
      at org.codehaus.groovy.runtime.Invoker.invokeMethod (Invoker.java:79)
      at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod (InvokerHelper.java:74)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN (ScriptBytecodeAdapter.java:158)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethod0 (ScriptBytecodeAdapter.java:201)
      at org.codehaus.groovy.tools.shell.Groovysh.run (Groovysh.groovy:446)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.runtime.metaclass.ReflectionMetaMethod.invoke (ReflectionMetaMethod.java:64)
      at org.codehaus.groovy.runtime.MetaClassHelper.doMethodInvoke (MetaClassHelper.java:537)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:772)
      at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:614)
      at org.codehaus.groovy.runtime.Invoker.invokePogoMethod (Invoker.java:98)
      at org.codehaus.groovy.runtime.Invoker.invokeMethod (Invoker.java:79)
      at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod (InvokerHelper.java:74)
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN (ScriptBytecodeAdapter.java:158)
      at org.codehaus.groovy.tools.shell.Groovysh.main (Groovysh.groovy:591)
      at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke (Method.java:597)
      at org.codehaus.groovy.tools.GroovyStarter.rootLoader (GroovyStarter.java:101)
      at org.codehaus.groovy.tools.GroovyStarter.main (GroovyStarter.java:130)
      groovy:(0):000>

      Attachments

        Activity

          People

            paulk Paul King
            guillaume Guillaume Sauthier
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: