You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Robert Kasanicky (JIRA)" <ji...@apache.org> on 2018/08/14 17:16:00 UTC

[jira] [Created] (GROOVY-8752) "gradle run" throws groovy.lang.MissingMethodExcpeption after 2.5.1->2.5.2 groovy upgrade

Robert Kasanicky created GROOVY-8752:
----------------------------------------

             Summary: "gradle run" throws groovy.lang.MissingMethodExcpeption after 2.5.1->2.5.2 groovy upgrade
                 Key: GROOVY-8752
                 URL: https://issues.apache.org/jira/browse/GROOVY-8752
             Project: Groovy
          Issue Type: Bug
    Affects Versions: 2.5.2
         Environment: ubuntu 18.04, oracle java 1.8.0_181, groovy 2.5.2, gradle 4.9
            Reporter: Robert Kasanicky
         Attachments: 252bug.zip

Initializing a class field using a GDK method somehow became problematic in combination with gradle's application plugin. There was no such problem until the 2.5.2 groovy version (also switching gradle versions doesn't make a difference).
{code:java}
/*
 * This Groovy source file was generated by the Gradle 'init' task.
 */
class App {

    def today = new Date().format('yyyy-MM-dd')

    String getGreeting() {
        return 'Hello world.'
    }

    static void main(String[] args) {
        println new App().greeting
    }
}
{code}
{code:java}
$ groovy src/main/groovy/App.groovy 
Hello world.
$ ./gradlew run
Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: java.util.Date.format() is applicable for argument types: (String) values: [yyyy-MM-dd] Possible solutions: from(java.time.Instant), toYear(), getAt(java.lang.String), parse(java.lang.String), print(java.lang.Object), print(java.io.PrintWriter)         at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:72)         at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:48)         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)         at App.<init>(App.groovy:6)         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)         at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)         at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)         at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:238)         at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:242)         at App.main(App.groovy:13)
{code}
 

Runnable project including the code listed above is attached.



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