[
https://issues.apache.org/jira/browse/GROOVY-11813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18043589#comment-18043589
]
Eric Milles commented on GROOVY-11813:
--------------------------------------
You could set the system property "groovy.indy.logging" to true for your script
runner process to get some more info about the call site binding. In order for
the TimeCategory to be considered for "minus" overload,
{{GroovyCategorySupport.hasCategoryInCurrentThread()}} must return true. It
seems logical that this is the case since the "months" property also requires
the time category. If the line runs successfully at least once, all the
indexing is in place. If it stops working after some time, then I suspect some
of the indy guards or fallback is running into trouble.
> groovy.lang.MissingMethodException: No signature of method: minus for class:
> java.util.Date is applicable for argument types:
> (groovy.time.DatumDependentDuration)
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: GROOVY-11813
> URL: https://issues.apache.org/jira/browse/GROOVY-11813
> Project: Groovy
> Issue Type: Question
> Affects Versions: 5.0.2
> Reporter: Saravanan Subiramaniam
> Priority: Major
>
> Could you please help me with TimeCategory? The following script worked fine
> in Groovy 4.0.x, but fails after we upgraded to 5.0.2.
> {code}
> use(groovy.time.TimeCategory) {
> new Date() - 7.months
> }
> {code}
> Please note that this script works when running using standalone Groovy (eg:
> using groovy command), but fails in our application (Java based) with this
> error. Both groovy-dateutil and groovy-datetime dependencies are in the
> classpath. Our application uses Java 21.
> {code}
> Dynamic logic TESTUNIT_2:
> 1: *ERROR* --> use(groovy.time.TimeCategory) {
> 2: new Date() - 7.months
> 3: }
> groovy.lang.MissingMethodException: No signature of method: minus for class:
> java.util.Date is applicable for argument types:
> (groovy.time.DatumDependentDuration) values: [7 months]
> Possible solutions: minus(java.util.Date), minus(int), find(),
> find(groovy.lang.Closure), is(java.lang.Object), plus(int)
> at
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:74)
> at
> org.codehaus.groovy.vmplugin.v8.IndyGuardsFiltersAndSignatures.unwrap(IndyGuardsFiltersAndSignatures.java:163)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:344)
> at
> custom.dynamiclogic.testunit_2.TESTUNIT_2$_run_closure1.doCall(custom.dynamiclogic.testunit_2.TESTUNIT_2.groovy:2)
> at
> custom.dynamiclogic.testunit_2.TESTUNIT_2$_run_closure1.doCall(custom.dynamiclogic.testunit_2.TESTUNIT_2.groovy)
> at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at
> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:338)
> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:274)
> at
> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:270)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008)
> at groovy.lang.Closure.call(Closure.java:471)
> at groovy.lang.Closure.call(Closure.java:450)
> at
> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:124)
> at
> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:262)
> at
> org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:17206)
> at org.codehaus.groovy.runtime.dgm$1263.doMethodInvoke(Unknown Source)
> at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1235)
> at
> org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:344)
> at
> custom.dynamiclogic.testunit_2.TESTUNIT_2.run(custom.dynamiclogic.testunit_2.TESTUNIT_2.groovy:1)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)