Paul King created GROOVY-8060:
---------------------------------

             Summary: @Log annotation does not check logging enablement inside 
closures which are arguments to methods
                 Key: GROOVY-8060
                 URL: https://issues.apache.org/jira/browse/GROOVY-8060
             Project: Groovy
          Issue Type: Bug
          Components: groovy-runtime
    Affects Versions: 2.2.0, 2.3.3
         Environment: Windows 7, Groovy 2.3.3, JDK 1.8.0_05
            Reporter: Shorn
            Assignee: Paul King
            Priority: Minor
             Fix For: 2.4.8


Groovy doesn't do a check for whether the log level is enabled when the log 
statement is made from inside a closure.

I believe the attached script should not print "called with 3".

Result on my machine is:
Groovy version: 2.3.3
Java version: 1.8.0_05-b13
OS: Windows 7

called with 1
12:03:30.119 [main] INFO  TestCode - blah: 1
called with 3

Script:
{code}
@Grapes([
  @Grab(group='org.slf4j', module='slf4j-api', version='1.7+'),
  @Grab(group='ch.qos.logback', module='logback-classic', version='1.+')])
import groovy.util.logging.Slf4j

new TestCode().doSomethingThatLogs()

@Slf4j
class TestCode {
  void doSomethingThatLogs(){
    println "Groovy version: ${GroovySystem.version}"
    println "Java version: ${System.properties["java.runtime.version"]}"
    println "OS: ${System.properties["os.name"]}"
    println ""

    log.info createLogString(1)
    log.trace createLogString(2)
    Closure c = { log.trace createLogString(3) }
    c()
  }

  String createLogString(int p){
    println "called with $p"
    return "blah: $p"
  }
}
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to