You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Jochen Kemnade (JIRA)" <ji...@apache.org> on 2017/07/05 10:14:00 UTC

[jira] [Updated] (GROOVY-8115) Reported start time for timed-out executions is sometimes wrong

     [ https://issues.apache.org/jira/browse/GROOVY-8115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jochen Kemnade updated GROOVY-8115:
-----------------------------------
    Affects Version/s:     (was: 2.4.9)
                       2.5.0-beta-1
                       2.4.12

> Reported start time for timed-out executions is sometimes wrong
> ---------------------------------------------------------------
>
>                 Key: GROOVY-8115
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8115
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.5.0-beta-1, 2.4.12
>            Reporter: Jochen Kemnade
>
> Sorry for the somewhat fuzzy report, i haven't been able to find out what exactly causes the error.
> Consider the following script:
> {code:java}
> def c = new GroovyClassLoader().parseClass('''
>     import groovy.transform.TimedInterrupt
>     import groovy.util.NodeBuilder
>     @TimedInterrupt(checkOnMethodStart = false, value = 1L)
>     class MyClass {
>       def myMethod() {
>         def b = new NodeBuilder()
>         b.foo {
>           while(true){
>           }
>         }
>       }
>       def getProperty(String name){ null }
>     }
> ''')
>     
> c.newInstance().myMethod()
> {code}
> If I run it, the execution is correctly aborted after a second. The error message states: 
> {{Execution timed out after 1 units. Start time: null}}.
> If I don't override {{getProperty}}, the error message is {{Execution timed out after 1 units. Start time: Thu Mar 09 14:35:55 CET 2017}}.
> Something is wrong with the access to the start time field in {{TimedInterruptibleASTTransformation.createInterruptStatement}} (https://github.com/apache/groovy/blob/GROOVY_2_4_9/src/main/org/codehaus/groovy/transform/TimedInterruptibleASTTransformation.groovy#L191).
> Taking a wild guess, I assume that it has something to do with the different property resolution inside builder closures.
> I would have expected the transformation to use {{fieldX(startTimeField)}} rather than {{propX(varX("this"), basename + '$startTime')}}, but when I tried that, it just broke horribly.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)