[ https://issues.apache.org/jira/browse/GROOVY-8278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16125027#comment-16125027 ]
John Wagenleitner commented on GROOVY-8278: ------------------------------------------- I am not able to reproduce the issue. Do you have any [profile scripts|http://www.groovy-lang.org/groovysh.html#GroovyShell-UserProfileScriptsandState] that might run or some custom preferences (:show preferences)? {code} ~/projects/ASF/groovy (master)$ ~/java/groovy-2.4.12/bin/groovysh Groovy Shell (2.4.12, JVM: 1.8.0_144) Type ':help' or ':h' for help. ----------------------------------------------------------------------------------------------------------------------- groovy:000> class C { } ===> true groovy:000> instance = new C() ===> C@51549490 groovy:000> :show preferences No preferences are set groovy:000> :exit {code} > Groovysh: unable to resolve previously declared classes > ------------------------------------------------------- > > Key: GROOVY-8278 > URL: https://issues.apache.org/jira/browse/GROOVY-8278 > Project: Groovy > Issue Type: Bug > Components: Groovysh > Affects Versions: 2.4.12 > Environment: Linux x86-64, > java version "1.8.0_144" > Java(TM) SE Runtime Environment (build 1.8.0_144-b01) > Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) > Reporter: Øyvind Stegard > > Classes declared in a Groovysh session cannot be used properly later on. > This fails with error "unable to resolve class C": > {code:java} > class C { } > instance = new C() > {code} > However, this clunky workaround works: > {code:java} > class C { } > new C() > instance = _ > assert instance.getClass() == C.class > {code} > Groovysh session showing the issue: > {noformat} > groovysh -d > DEBUG [org.codehaus.groovy.tools.shell.BufferManager] Created new buffer with > index: 0 > DEBUG [org.codehaus.groovy.tools.shell.BufferManager] Buffers reset > DEBUG [org.codehaus.groovy.tools.shell.Parser] Using parser flavor: rigid > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: ? > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :help > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :quit > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :exit > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > import > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :display > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :clear > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :show > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :inspect > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :purge > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :edit > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: . > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :load > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :save > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :record > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :history > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :alias > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :set > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :register > DEBUG [org.codehaus.groovy.tools.shell.CommandRegistry] Registered command: > :doc > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Using history > file: /home/oyvind/.groovy/groovysh.history > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Terminal > (jline.UnixTerminal@d737b89) > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Supported: true > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] ECHO: (enabled: > false) > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] H x W: 64 x 115 > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] ANSI: true > Groovy Shell (2.4.12, JVM: 1.8.0_144) > Type ':help' or ':h' for help. > ------------------------------------------------------------------------------------------------------------------ > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[1] for command: :help > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[2] for command: ? > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[3] for command: :exit > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[4] for command: :quit > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[5] for command: import > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[6] for command: :display > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[7] for command: :clear > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[8] for command: :show > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[9] for command: :inspect > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[10] for command: :purge > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[11] for command: :edit > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[12] for command: :load > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[13] for command: . > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[14] for command: :save > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[15] for command: :record > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[16] for command: :history > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[17] for command: :alias > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[18] for command: :set > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[19] for command: :register > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Added > completer[20] for command: :doc > DEBUG [org.codehaus.groovy.tools.shell.CommandsMultiCompleter] Refreshing the > completer list > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Running > groovy:000> class C { } > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Read line: > class C { } > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parsing: > class C { } > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parse complete > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Evaluating buffer... > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Compiled script: > groovysh_evaluate@4b213651 > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Evaluation result: true > (class java.lang.Boolean) > ===> true > groovy:000> C > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Read line: C > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parsing: > C > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parse complete > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Evaluating buffer... > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Compiled script: > groovysh_evaluate@5d066c7d > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Evaluation result: class > C (class java.lang.Class) > ===> class C > groovy:000> instance = new C() > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Read line: > instance = new C() > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parsing: > instance = new C() > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parse complete > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Evaluating buffer... > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Work failed: > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > script15020841055791703884630.groovy: 1: unable to resolve class C > @ line 1, column 12. > instance = new C() > ^ > 1 error > org.codehaus.groovy.control.MultipleCompilationErrorsException: startup > failed: > script15020841055791703884630.groovy: 1: unable to resolve class C > @ line 1, column 12. > instance = new C() > ^ > 1 error > at > org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310) > at > org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:958) > at > org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:605) > at > org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:554) > at > groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:254) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:211) > at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:221) > at groovy.lang.GroovyClassLoader$parseClass.call(Unknown Source) > at > org.codehaus.groovy.tools.shell.util.ScriptVariableAnalyzer.getBoundVars(ScriptVariableAnalyzer.groovy:110) > at > org.codehaus.groovy.tools.shell.util.ScriptVariableAnalyzer$getBoundVars.call(Unknown > Source) > at > org.codehaus.groovy.tools.shell.Groovysh.evaluateWithStoredBoundVars(Groovysh.groovy:235) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) > at org.codehaus.groovy.tools.shell.Groovysh.execute(Groovysh.groovy:194) > at org.codehaus.groovy.tools.shell.Shell.leftShift(Shell.groovy:122) > at org.codehaus.groovy.tools.shell.Shell$leftShift$0.call(Unknown > Source) > at > org.codehaus.groovy.tools.shell.ShellRunner.work(ShellRunner.groovy:95) > at > org.codehaus.groovy.tools.shell.InteractiveShellRunner.super$2$work(InteractiveShellRunner.groovy) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152) > at > org.codehaus.groovy.tools.shell.InteractiveShellRunner.work(InteractiveShellRunner.groovy:124) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158) > at > org.codehaus.groovy.tools.shell.ShellRunner.run(ShellRunner.groovy:59) > 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:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132) > at > org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuper0(ScriptBytecodeAdapter.java:152) > at > org.codehaus.groovy.tools.shell.InteractiveShellRunner.run(InteractiveShellRunner.groovy:83) > at java_lang_Runnable$run.call(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117) > at org.codehaus.groovy.tools.shell.Groovysh.run(Groovysh.groovy:596) > at org.codehaus.groovy.tools.shell.Groovysh$run$0.callCurrent(Unknown > Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166) > at org.codehaus.groovy.tools.shell.Groovysh.run(Groovysh.groovy:561) > at org.codehaus.groovy.tools.shell.Groovysh$run.call(Unknown Source) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) > at org.codehaus.groovy.tools.shell.Main.startGroovysh(Main.groovy:186) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210) > at > org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:71) > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133) > at org.codehaus.groovy.tools.shell.Main.main(Main.groovy:152) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109) > at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131) > ERROR org.codehaus.groovy.control.MultipleCompilationErrorsException: > script15020841055791703884630.groovy: 1: unable to resolve class C > @ line 1, column 12. > instance = new C() > ^ > groovy:000> new C() > DEBUG [org.codehaus.groovy.tools.shell.InteractiveShellRunner] Read line: new > C() > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parsing: > new C() > DEBUG [org.codehaus.groovy.tools.shell.RigidParser] Parse complete > DEBUG [org.codehaus.groovy.tools.shell.Groovysh] Evaluating buffer... > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Compiled script: > groovysh_evaluate@64a40280 > DEBUG [org.codehaus.groovy.tools.shell.Interpreter] Evaluation result: > C@42b02722 (class C) > ===> C@42b02722 > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)