You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reload should happend without exception. This was still working in Grails 5.1.8
Actual Behaviour
Exception in console:
File /home/david/_throwaway/myapp/grails-app/controllers/myapp/UrlMappings.groovy changed, recompiling...
Exception in thread "Thread-10" java.lang.StackOverflowError
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:113)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2839)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3854)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:219)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:496)
at grails.util.Environment.setCurrentReloadError(Environment.groovy:238)
at jdk.internal.reflect.GeneratedMethodAccessor152.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2839)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3854)
at org.codehaus.groovy.runtime.InvokerHelper.setProperty(InvokerHelper.java:219)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:496)
at grails.util.Environment.setCurrentReloadError(Environment.groovy:238)
The following code from grails.util.Environment seems to trigger an infinite recursion:
This is affecting me as well. The StackOverflowError occurs (sometimes) when JRebel reloads modified classes. It looks like the new version of groovy has changed how it interprets the ambiguous reference to either the member 'currentReloadError' or the setter 'setCurrentReloadError'. Looking back at the older version of Environment.groovy, the same code used to work and now doesn't
Actually, I've just realized that the previous version of the Environment enum was actually written in Java, and in 5.2 has been converted to groovy, hence the new behavior
Expected Behavior
Reload should happend without exception. This was still working in Grails 5.1.8
Actual Behaviour
Exception in console:
The following code from
grails.util.Environment
seems to trigger an infinite recursion:Steps To Reproduce
grails create-app myapp
cd myapp
./gradlew -Dgrails.reload.enabled=true bootRun
Grails application running at http://localhost:8080 in environment: development
appearstouch grails-app/controllers/myapp/UrlMappings.groovy
Environment Information
Example Application
No response
Version
5.2.0
The text was updated successfully, but these errors were encountered: