[prev in list] [next in list] [prev in thread] [next in thread] 

List:       groovy-scm
Subject:    [groovy-scm] [scm-git][2/8] GROOVY-6373: 'log' field introduced via @Slf4j not accessible in inner c
From:       Paul King <git () codehaus ! org>
Date:       2014-05-31 20:56:40
Message-ID: 20140531205640.099C0B10BA () codehaus01 ! managed ! contegix ! com
[Download RAW message or body]

commit 8b810509fb50da99f50ef05ab93d0b736fd02d35
Author:     Paul King <paulk@asert.com.au>
AuthorDate: Wed, 28 May 2014 13:57:02 +1000
Commit:     Paul King <paulk@asert.com.au>
CommitDate: Wed, 28 May 2014 13:57:02 +1000

    GROOVY-6373: 'log' field introduced via @Slf4j not accessible in inner class of \
@CompileStatic class

diff --git a/src/main/org/codehaus/groovy/transform/LogASTTransformation.java \
b/src/main/org/codehaus/groovy/transform/LogASTTransformation.java index \
                bc4b51d..a73434e 100644
--- a/src/main/org/codehaus/groovy/transform/LogASTTransformation.java
+++ b/src/main/org/codehaus/groovy/transform/LogASTTransformation.java
@@ -156,14 +156,8 @@ public class LogASTTransformation extends \
AbstractASTTransformation implements C  };
         transformer.visitClass(classNode);
 
-        // TODO can we replace GROOOVY-6373 fix with something simpler? breaks tests \
                ATM
-        // new VariableScopeVisitor(sourceUnit, true).visitClass(classNode);
-        // GROOVY-6373: added log field is already a field node in inner classes by \
                now
-        VariableScopeVisitor scopeVisitor = new VariableScopeVisitor(sourceUnit, \
                true);
-        Iterator<InnerClassNode> innerClasses = classNode.getInnerClasses();
-        while (innerClasses.hasNext()) {
-            scopeVisitor.visitClass(innerClasses.next());
-        }
+        // GROOVY-6373: references to 'log' field are normally already FieldNodes by \
now, so revisit scoping +        new VariableScopeVisitor(sourceUnit, \
true).visitClass(classNode);  }
 
     private String lookupLogFieldName(AnnotationNode logAnnotation) {
diff --git a/src/test/groovy/util/logging/CommonsTest.groovy \
b/src/test/groovy/util/logging/CommonsTest.groovy index abbbb09..a211b89 100644
--- a/src/test/groovy/util/logging/CommonsTest.groovy
+++ b/src/test/groovy/util/logging/CommonsTest.groovy
@@ -152,13 +152,20 @@ class CommonsTest extends GroovyTestCase {
             @groovy.util.logging.Commons
             class MyClass {
                 boolean traceCalled = false
-                MyClass() {
-                    log = new LogDecorator().wrap(log) as \
                org.apache.commons.logging.Log
-                }
 
                 def loggingMethod() {
+                    overrideLog()
                     log.trace (traceCalled = true)
                 }
+
+                def overrideLog() {
+                    def field = MyClass.getDeclaredField('log')
+                    field.accessible = true
+                    def modifiersField = \
java.lang.reflect.Field.getDeclaredField("modifiers") +                    \
modifiersField.accessible = true +                    modifiersField.setInt(field, \
field.modifiers & ~java.lang.reflect.Modifier.FINAL) +                    \
field.set(null, new LogDecorator().wrap(log) as org.apache.commons.logging.Log) +     \
}  }
             def o = new MyClass()
             o.loggingMethod()


[Attachment #3 (text/html)]

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" \
"http://www.w3.org/TR/REC-html40/loose.dtd"> <html style="font-size: 12px;">
<head><meta http-equiv="Content-type" content="text/html; charset=utf-8"></head>
<body style="font-size: 12px;">
<style type="text/css">
dt:after { content: ':' !important; }
> </style>
<dl class="title" style="font-size: 12px; font-family: Verdana; background-color: \
#ddd; padding: 10px;"> <dt style="font-size: 12px; float: left; font-weight: bold; \
min-width: 6em;">Commit</dt> <dd style="font-size: \
12px;">8b810509fb50da99f50ef05ab93d0b736fd02d35</dd> <dt style="font-size: 12px; \
float: left; font-weight: bold; min-width: 6em;">Branch</dt> <dd style="font-size: \
12px;">master</dd> <dt style="font-size: 12px; float: left; font-weight: bold; \
min-width: 6em;">Author</dt> <dd style="font-size: 12px;">Paul King \
&lt;paulk@asert.com.au&gt;</dd> <dt style="font-size: 12px; float: left; font-weight: \
bold; min-width: 6em;">Date</dt> <dd style="font-size: 12px;">Wed, 28 May 2014 \
13:57:02 +1000</dd> <dt style="font-size: 12px; float: left; font-weight: bold; \
min-width: 6em;">Message</dt> <dd class="" style="font-size: 12px;">GROOVY-6373: \
'log' field introduced via @Slf4j not accessible in inner class of @CompileStatic \
class</dd> </dl>
<h2 id="src/main/org/codehaus/groovy/transform/LogASTTransformation.java" \
style="font-size: 12px; font-family: Verdana; font-weight: bold; line-height: 25px; \
margin-bottom: 2px; padding-left: 5px; background-color: #bbb;">Changed file \
src/main/org/codehaus/groovy/transform/LogASTTransformation.java</h2>

<table style="font-size: 12px; width: 100%; border-collapse: collapse;">
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">156</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">156</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                  };</td> \
</tr> <tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">157</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">157</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                  \
transformer.visitClass(classNode);</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">158</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">158</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">  </td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">159</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  //  TODO  can  we  \
replace  GROOOVY-6373  fix  with  something  simpler?  breaks  tests  ATM</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">160</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  //  new  \
VariableScopeVisitor(sourceUnit,  true).visitClass(classNode);</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">161</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  //  GROOVY-6373:  \
added  log  field  is  already  a  field  node  in  inner  classes  by  now</td> \
</tr> <tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">162</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  VariableScopeVisitor \
scopeVisitor  =  new  VariableScopeVisitor(sourceUnit,  true);</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">163</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  \
Iterator&lt;InnerClassNode&gt;  innerClasses  =  classNode.getInnerClasses();</td> \
</tr> <tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">164</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  while  \
(innerClasses.hasNext())  {</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">165</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                          \
scopeVisitor.visitClass(innerClasses.next());</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">166</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                  }</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">159</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                  //  \
GROOVY-6373:  references  to  'log'  field  are  normally  already  FieldNodes  by  \
now,  so  revisit  scoping</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">160</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                  new  \
VariableScopeVisitor(sourceUnit,  true).visitClass(classNode);</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">167</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">161</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">          }</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">168</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">162</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">  </td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">169</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">163</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">          private  String  \
lookupLogFieldName(AnnotationNode  logAnnotation)  {</td> </tr>
</table>
<h2 id="src/test/groovy/util/logging/CommonsTest.groovy" style="font-size: 12px; \
font-family: Verdana; font-weight: bold; line-height: 25px; margin-bottom: 2px; \
padding-left: 5px; background-color: #bbb;">Changed file \
src/test/groovy/util/logging/CommonsTest.groovy</h2>

<table style="font-size: 12px; width: 100%; border-collapse: collapse;">
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">152</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">152</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                          \
@groovy.util.logging.Commons</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">153</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">153</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                          \
class  MyClass  {</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">154</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">154</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
boolean  traceCalled  =  false</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">155</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                                  \
MyClass()  {</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">156</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                                       \
log  =  new  LogDecorator().wrap(log)  as  org.apache.commons.logging.Log</td> </tr>
<tr class="r" style="font-size: 12px; background-color: #fdd;" bgcolor="#fdd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">157</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc"></td> <td style="font-size: 12px; color: #000; font-family: 'Bitstream \
Vera Sans Mono','Monaco','Courier',monospace;">                                  \
}</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">158</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">155</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">  </td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">159</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">156</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
def  loggingMethod()  {</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">157</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
overrideLog()</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">160</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">158</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
log.trace  (traceCalled  =  true)</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">161</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">159</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
}</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">160</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">  </td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">161</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
def  overrideLog()  {</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">162</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
def  field  =  MyClass.getDeclaredField('log')</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">163</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
field.accessible  =  true</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">164</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
def  modifiersField  =  java.lang.reflect.Field.getDeclaredField("modifiers")</td> \
</tr> <tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">165</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
modifiersField.accessible  =  true</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">166</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
modifiersField.setInt(field,  field.modifiers  &amp;  \
~java.lang.reflect.Modifier.FINAL)</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">167</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
field.set(null,  new  LogDecorator().wrap(log)  as  \
org.apache.commons.logging.Log)</td> </tr>
<tr class="a" style="font-size: 12px; background-color: #dfd;" bgcolor="#dfd">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc"></td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">168</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                            \
}</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">162</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">169</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                          \
}</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">163</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">170</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                          \
def  o  =  new  MyClass()</td> </tr>
<tr style="font-size: 12px;">
<td class="ln" style="font-size: 12px; color: #000; font-family: 'Bitstream Vera Sans \
Mono','Monaco','Courier',monospace; width: 23px; text-align: right; background-color: \
#ccc;" align="right" bgcolor="#ccc">164</td> <td class="ln" style="font-size: 12px; \
color: #000; font-family: 'Bitstream Vera Sans Mono','Monaco','Courier',monospace; \
width: 23px; text-align: right; background-color: #ccc;" align="right" \
bgcolor="#ccc">171</td> <td style="font-size: 12px; color: #000; font-family: \
'Bitstream Vera Sans Mono','Monaco','Courier',monospace;">                          \
o.loggingMethod()</td> </tr>
</table>
<br style="font-size: 12px;"><br style="font-size: 12px;">
</body>
</html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic