You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2023/02/08 19:42:10 UTC

[commons-beanutils] 08/08: Use static loggers when the class argument is hard-coded

This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git

commit f3c59529d53f5f4c904aa1676d036b64b0706620
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Feb 8 14:41:57 2023 -0500

    Use static loggers when the class argument is hard-coded
---
 .../BeanPropertyValueChangeConsumer.java           |  2 +-
 .../BeanPropertyValueEqualsPredicate.java          |  2 +-
 .../beanutils2/BeanToPropertyValueTransformer.java |  2 +-
 .../apache/commons/beanutils2/BeanUtilsBean.java   | 66 +++++++++++-----------
 .../commons/beanutils2/ConvertUtilsBean.java       | 36 ++++++------
 .../beanutils2/DefaultBeanIntrospector.java        |  2 +-
 .../apache/commons/beanutils2/LazyDynaBean.java    |  8 +--
 .../org/apache/commons/beanutils2/MethodUtils.java | 53 +++++++++--------
 .../commons/beanutils2/PropertyUtilsBean.java      | 30 +++++-----
 .../beanutils2/locale/LocaleBeanUtilsBean.java     | 16 +++---
 .../beanutils2/locale/LocaleConvertUtilsBean.java  | 22 ++++----
 .../locale/converters/DateLocaleConverter.java     |  6 +-
 .../locale/converters/DecimalLocaleConverter.java  |  4 +-
 .../locale/converters/StringLocaleConverter.java   |  4 +-
 .../commons/beanutils2/bugs/Jira157TestCase.java   |  8 +--
 .../commons/beanutils2/bugs/Jira273TestCase.java   | 14 ++---
 .../commons/beanutils2/bugs/Jira298TestCase.java   |  8 +--
 .../commons/beanutils2/bugs/Jira339TestCase.java   |  6 +-
 .../commons/beanutils2/bugs/Jira349TestCase.java   |  8 +--
 .../commons/beanutils2/bugs/Jira87TestCase.java    |  4 +-
 .../beanutils2/locale/LocaleBeanUtilsTestCase.java |  6 +-
 .../converters/DateLocaleConverterTestCase.java    | 12 ++--
 22 files changed, 159 insertions(+), 160 deletions(-)

diff --git a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java
index 7fa6a401..ea66c526 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueChangeConsumer.java
@@ -81,7 +81,7 @@ import org.apache.commons.logging.LogFactory;
  */
 public class BeanPropertyValueChangeConsumer<T, V> implements Consumer<T> {
 
-    /** For logging. */
+    /** For logging. Each subclass gets its own log instance. */
     private final Log log = LogFactory.getLog(this.getClass());
 
     /**
diff --git a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java
index 7123fa32..c6aea087 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanPropertyValueEqualsPredicate.java
@@ -112,7 +112,7 @@ import org.apache.commons.logging.LogFactory;
  */
 public class BeanPropertyValueEqualsPredicate<T, V> implements Predicate<T> {
 
-    /** For logging. */
+    /** For logging. Each subclass gets its own log instance. */
     private final Log log = LogFactory.getLog(this.getClass());
 
     /**
diff --git a/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java b/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java
index 4ed4b2fb..c9bf9190 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanToPropertyValueTransformer.java
@@ -73,7 +73,7 @@ import org.apache.commons.logging.LogFactory;
  */
 public class BeanToPropertyValueTransformer<T, R> implements Function<T, R> {
 
-    /** For logging. */
+    /** For logging. Each subclass gets its own log instance. */
     private final Log log = LogFactory.getLog(this.getClass());
 
     /** The name of the property that will be used in the transformation of the object. */
diff --git a/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java
index 0a7c683f..946459da 100644
--- a/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/BeanUtilsBean.java
@@ -81,7 +81,7 @@ public class BeanUtilsBean {
     /**
      * Logging for this instance
      */
-    private final Log log = LogFactory.getLog(BeanUtilsBean.class);
+    private static final Log LOG = LogFactory.getLog(BeanUtilsBean.class);
 
     /** Used to perform conversions between object types when setting properties */
     private final ConvertUtilsBean convertUtilsBean;
@@ -152,8 +152,8 @@ public class BeanUtilsBean {
     public Object cloneBean(final Object bean)
             throws IllegalAccessException, InstantiationException,
             InvocationTargetException, NoSuchMethodException {
-        if (log.isDebugEnabled()) {
-            log.debug("Cloning bean: " + bean.getClass().getName());
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Cloning bean: " + bean.getClass().getName());
         }
         Object newBean = null;
         if (bean instanceof DynaBean) {
@@ -217,8 +217,8 @@ public class BeanUtilsBean {
         if (orig == null) {
             throw new IllegalArgumentException("No origin bean specified");
         }
-        if (log.isDebugEnabled()) {
-            log.debug("BeanUtils.copyProperties(" + dest + ", " +
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("BeanUtils.copyProperties(" + dest + ", " +
                       orig + ")");
         }
 
@@ -303,7 +303,7 @@ public class BeanUtilsBean {
     public void copyProperty(final Object bean, String name, Object value)
         throws IllegalAccessException, InvocationTargetException {
         // Trace logging (if enabled)
-        if (log.isTraceEnabled()) {
+        if (LOG.isTraceEnabled()) {
             final StringBuilder sb = new StringBuilder("  copyProperty(");
             sb.append(bean);
             sb.append(", ");
@@ -327,7 +327,7 @@ public class BeanUtilsBean {
                 sb.append(value.toString());
             }
             sb.append(')');
-            log.trace(sb.toString());
+            LOG.trace(sb.toString());
         }
 
         // Resolve any nested expression to get the actual target bean
@@ -341,9 +341,9 @@ public class BeanUtilsBean {
                 return; // Skip this property setter
             }
         }
-        if (log.isTraceEnabled()) {
-            log.trace("    Target bean = " + target);
-            log.trace("    Target name = " + name);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("    Target bean = " + target);
+            LOG.trace("    Target name = " + name);
         }
 
         // Declare local variables we will require
@@ -374,15 +374,15 @@ public class BeanUtilsBean {
             type = descriptor.getPropertyType();
             if (type == null) {
                 // Most likely an indexed setter on a POJB only
-                if (log.isTraceEnabled()) {
-                    log.trace("    target type for property '" +
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("    target type for property '" +
                               propName + "' is null, so skipping ths setter");
                 }
                 return;
             }
         }
-        if (log.isTraceEnabled()) {
-            log.trace("    target propName=" + propName + ", type=" +
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("    target propName=" + propName + ", type=" +
                       type + ", index=" + index + ", key=" + key);
         }
 
@@ -464,8 +464,8 @@ public class BeanUtilsBean {
             return new java.util.HashMap<>();
         }
 
-        if (log.isDebugEnabled()) {
-            log.debug("Describing bean: " + bean.getClass().getName());
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Describing bean: " + bean.getClass().getName());
         }
 
         final Map<String, String> description = new HashMap<>();
@@ -745,8 +745,8 @@ public class BeanUtilsBean {
         if (bean == null || properties == null) {
             return;
         }
-        if (log.isDebugEnabled()) {
-            log.debug("BeanUtils.populate(" + bean + ", " +
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("BeanUtils.populate(" + bean + ", " +
                     properties + ")");
         }
 
@@ -796,7 +796,7 @@ public class BeanUtilsBean {
     public void setProperty(final Object bean, String name, final Object value)
         throws IllegalAccessException, InvocationTargetException {
         // Trace logging (if enabled)
-        if (log.isTraceEnabled()) {
+        if (LOG.isTraceEnabled()) {
             final StringBuilder sb = new StringBuilder("  setProperty(");
             sb.append(bean);
             sb.append(", ");
@@ -820,7 +820,7 @@ public class BeanUtilsBean {
                 sb.append(value.toString());
             }
             sb.append(')');
-            log.trace(sb.toString());
+            LOG.trace(sb.toString());
         }
 
         // Resolve any nested expression to get the actual target bean
@@ -837,9 +837,9 @@ public class BeanUtilsBean {
                 return; // Skip this property setter
             }
         }
-        if (log.isTraceEnabled()) {
-            log.trace("    Target bean = " + target);
-            log.trace("    Target name = " + name);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("    Target bean = " + target);
+            LOG.trace("    Target name = " + name);
         }
 
         // Declare local variables we will require
@@ -876,8 +876,8 @@ public class BeanUtilsBean {
             }
             if (descriptor instanceof MappedPropertyDescriptor) {
                 if (((MappedPropertyDescriptor) descriptor).getMappedWriteMethod() == null) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Skipping read-only property");
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Skipping read-only property");
                     }
                     return; // Read-only, skip this property setter
                 }
@@ -885,8 +885,8 @@ public class BeanUtilsBean {
                     getMappedPropertyType();
             } else if (index >= 0 && descriptor instanceof IndexedPropertyDescriptor) {
                 if (((IndexedPropertyDescriptor) descriptor).getIndexedWriteMethod() == null) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Skipping read-only property");
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Skipping read-only property");
                     }
                     return; // Read-only, skip this property setter
                 }
@@ -896,16 +896,16 @@ public class BeanUtilsBean {
                 type = Object.class;
             } else if (key != null) {
                 if (descriptor.getReadMethod() == null) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Skipping read-only property");
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Skipping read-only property");
                     }
                     return; // Read-only, skip this property setter
                 }
                 type = value == null ? Object.class : value.getClass();
             } else {
                 if (descriptor.getWriteMethod() == null) {
-                    if (log.isDebugEnabled()) {
-                        log.debug("Skipping read-only property");
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Skipping read-only property");
                     }
                     return; // Read-only, skip this property setter
                 }
@@ -1008,8 +1008,8 @@ public class BeanUtilsBean {
     protected <R> Object convert(final Object value, final Class<R> type) {
         final Converter<R> converter = getConvertUtils().lookup(type);
         if (converter != null) {
-            if (log.isTraceEnabled()) {
-                log.trace("        USING CONVERTER " + converter);
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("        USING CONVERTER " + converter);
             }
             return converter.convert(type, value);
         }
diff --git a/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java
index 6dc46312..45360b9a 100644
--- a/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/ConvertUtilsBean.java
@@ -191,7 +191,7 @@ public class ConvertUtilsBean {
     /**
      * The {@code Log} instance for this class.
      */
-    private final Log log = LogFactory.getLog(ConvertUtilsBean.class);
+    private static final Log LOG = LogFactory.getLog(ConvertUtilsBean.class);
 
     /** Constructs a bean with standard converters registered */
     public ConvertUtilsBean() {
@@ -244,19 +244,19 @@ public class ConvertUtilsBean {
      * @throws ConversionException if thrown by an underlying Converter
      */
     public <T> Object convert(final String value, final Class<T> clazz) {
-        if (log.isDebugEnabled()) {
-            log.debug("Convert string '" + value + "' to class '" + clazz.getName() + "'");
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Convert string '" + value + "' to class '" + clazz.getName() + "'");
         }
         Converter<T> converter = lookup(clazz);
         if (converter == null) {
             Converter<String> sConverter = lookup(String.class);
-            if (log.isTraceEnabled()) {
-                log.trace("  Using converter " + converter);
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("  Using converter " + converter);
             }
             return sConverter.convert(String.class, value);
         }
-        if (log.isTraceEnabled()) {
-            log.trace("  Using converter " + converter);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("  Using converter " + converter);
         }
         return converter.convert(clazz, value);
     }
@@ -280,16 +280,16 @@ public class ConvertUtilsBean {
         if (clazz.isArray()) {
             type = clazz.getComponentType();
         }
-        if (log.isDebugEnabled()) {
-            log.debug("Convert String[" + values.length + "] to class '" +
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Convert String[" + values.length + "] to class '" +
                       type.getName() + "[]'");
         }
         Converter converter = lookup(type);
         if (converter == null) {
             converter = lookup(String.class);
         }
-        if (log.isTraceEnabled()) {
-            log.trace("  Using converter " + converter);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("  Using converter " + converter);
         }
         final Object array = Array.newInstance(type, values.length);
         for (int i = 0; i < values.length; i++) {
@@ -313,11 +313,11 @@ public class ConvertUtilsBean {
     public Object convert(final Object value, final Class<?> targetType) {
         final Class<?> sourceType = value == null ? null : value.getClass();
 
-        if (log.isDebugEnabled()) {
+        if (LOG.isDebugEnabled()) {
             if (value == null) {
-                log.debug("Convert null value to type '" + targetType.getName() + "'");
+                LOG.debug("Convert null value to type '" + targetType.getName() + "'");
             } else {
-                log.debug("Convert type '" + sourceType.getName() + "' value '" + value + "' to type '"
+                LOG.debug("Convert type '" + sourceType.getName() + "' value '" + value + "' to type '"
                     + targetType.getName() + "'");
             }
         }
@@ -325,8 +325,8 @@ public class ConvertUtilsBean {
         Object converted = value;
         Converter converter = lookup(sourceType, targetType);
         if (converter != null) {
-            if (log.isTraceEnabled()) {
-                log.trace("  Using converter " + converter);
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("  Using converter " + converter);
             }
             converted = converter.convert(targetType, value);
         }
@@ -337,8 +337,8 @@ public class ConvertUtilsBean {
             // use the registered String Converter
             converter = lookup(String.class);
             if (converter != null) {
-                if (log.isTraceEnabled()) {
-                    log.trace("  Using converter " + converter);
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("  Using converter " + converter);
                 }
                 converted = converter.convert(String.class, converted);
             }
diff --git a/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java b/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
index 512b9f79..1aa378c9 100644
--- a/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
+++ b/src/main/java/org/apache/commons/beanutils2/DefaultBeanIntrospector.java
@@ -53,7 +53,7 @@ public class DefaultBeanIntrospector implements BeanIntrospector {
     /** Constant for arguments types of a method that expects a list argument. */
     private static final Class<?>[] LIST_CLASS_PARAMETER = new Class[] { java.util.List.class };
 
-    /** Log instance */
+    /** For logging. Each subclass gets its own log instance. */
     private final Log log = LogFactory.getLog(getClass());
 
     /**
diff --git a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
index 887fdb0a..242eb308 100644
--- a/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/LazyDynaBean.java
@@ -127,7 +127,7 @@ public class LazyDynaBean implements DynaBean, Serializable {
  /**
     * Commons Logging
     */
-    private transient Log logger = LogFactory.getLog(LazyDynaBean.class);
+    private static transient Log LOG = LogFactory.getLog(LazyDynaBean.class);
 
     /** BigInteger Zero */
     protected static final BigInteger BigInteger_ZERO = new BigInteger("0");
@@ -912,10 +912,10 @@ public class LazyDynaBean implements DynaBean, Serializable {
      * <p>Returns the {@code Log}.
      */
     private Log logger() {
-        if (logger == null) {
-            logger = LogFactory.getLog(LazyDynaBean.class);
+        if (LOG == null) {
+            LOG = LogFactory.getLog(LazyDynaBean.class);
         }
-        return logger;
+        return LOG;
     }
 
 }
diff --git a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
index 000c1b83..5f0553e2 100644
--- a/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
+++ b/src/main/java/org/apache/commons/beanutils2/MethodUtils.java
@@ -46,6 +46,8 @@ import org.apache.commons.logging.LogFactory;
  */
 public class MethodUtils {
 
+    private static final Log LOG = LogFactory.getLog(MethodUtils.class);
+
     /**
      * Only log warning about accessibility work around once.
      * <p>
@@ -895,9 +897,8 @@ public class MethodUtils {
                                                 final String methodName,
                                                 final Class<?>[] parameterTypes) {
         // trace logging
-        final Log log = LogFactory.getLog(MethodUtils.class);
-        if (log.isTraceEnabled()) {
-            log.trace("Matching name=" + methodName + " on " + clazz);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Matching name=" + methodName + " on " + clazz);
         }
         final MethodDescriptor md = new MethodDescriptor(clazz, methodName, parameterTypes, false);
 
@@ -911,9 +912,9 @@ public class MethodUtils {
             }
 
             method = clazz.getMethod(methodName, parameterTypes);
-            if (log.isTraceEnabled()) {
-                log.trace("Found straight match: " + method);
-                log.trace("isPublic:" + Modifier.isPublic(method.getModifiers()));
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("Found straight match: " + method);
+                LOG.trace("isPublic:" + Modifier.isPublic(method.getModifiers()));
             }
 
             setMethodAccessible(method); // Default access superclass workaround
@@ -932,9 +933,9 @@ public class MethodUtils {
         for (final Method method2 : methods) {
             if (method2.getName().equals(methodName)) {
                 // log some trace information
-                if (log.isTraceEnabled()) {
-                    log.trace("Found matching name:");
-                    log.trace(method2);
+                if (LOG.isTraceEnabled()) {
+                    LOG.trace("Found matching name:");
+                    LOG.trace(method2);
                 }
 
                 // compare parameters
@@ -943,13 +944,13 @@ public class MethodUtils {
                 if (methodParamSize == paramSize) {
                     boolean match = true;
                     for (int n = 0 ; n < methodParamSize; n++) {
-                        if (log.isTraceEnabled()) {
-                            log.trace("Param=" + parameterTypes[n].getName());
-                            log.trace("Method=" + methodsParams[n].getName());
+                        if (LOG.isTraceEnabled()) {
+                            LOG.trace("Param=" + parameterTypes[n].getName());
+                            LOG.trace("Method=" + methodsParams[n].getName());
                         }
                         if (!isAssignmentCompatible(methodsParams[n], parameterTypes[n])) {
-                            if (log.isTraceEnabled()) {
-                                log.trace(methodsParams[n] + " is not assignable from "
+                            if (LOG.isTraceEnabled()) {
+                                LOG.trace(methodsParams[n] + " is not assignable from "
                                             + parameterTypes[n]);
                             }
                             match = false;
@@ -961,8 +962,8 @@ public class MethodUtils {
                         // get accessible version of method
                         final Method method = getAccessibleMethod(clazz, method2);
                         if (method != null) {
-                            if (log.isTraceEnabled()) {
-                                log.trace(method + " accessible version of "
+                            if (LOG.isTraceEnabled()) {
+                                LOG.trace(method + " accessible version of "
                                             + method2);
                             }
                             setMethodAccessible(method); // Default access superclass workaround
@@ -973,16 +974,16 @@ public class MethodUtils {
                             }
                         }
 
-                        log.trace("Couldn't find accessible method.");
+                        LOG.trace("Couldn't find accessible method.");
                     }
                 }
             }
         }
-        if ( bestMatch != null ){
-                 cacheMethod(md, bestMatch);
+        if (bestMatch != null) {
+            cacheMethod(md, bestMatch);
         } else {
-        // didn't find a match
-               log.trace("No match found.");
+            // didn't find a match
+            LOG.trace("No match found.");
         }
 
         return bestMatch;
@@ -1016,7 +1017,6 @@ public class MethodUtils {
 
         } catch (final SecurityException se) {
             // log but continue just in case the method.invoke works anyway
-            final Log log = LogFactory.getLog(MethodUtils.class);
             if (!loggedAccessibleWarning) {
                 boolean vulnerableJVM = false;
                 try {
@@ -1034,13 +1034,13 @@ public class MethodUtils {
                     vulnerableJVM = true;
                 }
                 if (vulnerableJVM) {
-                    log.warn(
+                    LOG.warn(
                         "Current Security Manager restricts use of workarounds for reflection bugs "
                         + " in pre-1.4 JVMs.");
                 }
                 loggedAccessibleWarning = true;
             }
-            log.debug("Cannot setAccessible on method. Therefore cannot use jvm access bug workaround.", se);
+            LOG.debug("Cannot setAccessible on method. Therefore cannot use jvm access bug workaround.", se);
         }
     }
 
@@ -1208,9 +1208,8 @@ public class MethodUtils {
         if (Character.class.equals(wrapperType)) {
             return char.class;
         }
-        final Log log = LogFactory.getLog(MethodUtils.class);
-        if (log.isDebugEnabled()) {
-            log.debug("Not a known primitive wrapper class: " + wrapperType);
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Not a known primitive wrapper class: " + wrapperType);
         }
         return null;
     }
diff --git a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
index 4fa5d32a..89159c19 100644
--- a/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/PropertyUtilsBean.java
@@ -107,7 +107,7 @@ public class PropertyUtilsBean {
     private final WeakFastHashMap<Class<?>, Map> mappedDescriptorsCache;
 
     /** Log instance */
-    private final Log log = LogFactory.getLog(PropertyUtilsBean.class);
+    private static final Log LOG = LogFactory.getLog(PropertyUtilsBean.class);
 
     /** The list with BeanIntrospector objects. */
     private final List<BeanIntrospector> introspectors;
@@ -268,8 +268,8 @@ public class PropertyUtilsBean {
                             setSimpleProperty(dest, name, value);
                         }
                     } catch (final NoSuchMethodException e) {
-                        if (log.isDebugEnabled()) {
-                            log.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
+                        if (LOG.isDebugEnabled()) {
+                            LOG.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
                         }
                     }
                 }
@@ -285,8 +285,8 @@ public class PropertyUtilsBean {
                             setSimpleProperty(dest, name, entry.getValue());
                         }
                     } catch (final NoSuchMethodException e) {
-                        if (log.isDebugEnabled()) {
-                            log.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
+                        if (LOG.isDebugEnabled()) {
+                            LOG.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
                         }
                     }
                 }
@@ -304,8 +304,8 @@ public class PropertyUtilsBean {
                             setSimpleProperty(dest, name, value);
                         }
                     } catch (final NoSuchMethodException e) {
-                        if (log.isDebugEnabled()) {
-                            log.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
+                        if (LOG.isDebugEnabled()) {
+                            LOG.debug("Error writing to '" + name + "' on class '" + dest.getClass() + "'", e);
                         }
                     }
                 }
@@ -1521,11 +1521,11 @@ public class PropertyUtilsBean {
                 subscript[0] = Integer.valueOf(index);
                 subscript[1] = value;
                 try {
-                    if (log.isTraceEnabled()) {
+                    if (LOG.isTraceEnabled()) {
                         final String valueClassName =
                             value == null ? "<null>"
                                           : value.getClass().getName();
-                        log.trace("setSimpleProperty: Invoking method "
+                        LOG.trace("setSimpleProperty: Invoking method "
                                   + writeMethod +" with index=" + index
                                   + ", value=" + value
                                   + " (class " + valueClassName+ ")");
@@ -1685,10 +1685,10 @@ public class PropertyUtilsBean {
             final Object[] params = new Object[2];
             params[0] = key;
             params[1] = value;
-            if (log.isTraceEnabled()) {
+            if (LOG.isTraceEnabled()) {
                 final String valueClassName =
                     value == null ? "<null>" : value.getClass().getName();
-                log.trace("setSimpleProperty: Invoking method "
+                LOG.trace("setSimpleProperty: Invoking method "
                           + mappedWriteMethod + " with key=" + key
                           + ", value=" + value
                           + " (class " + valueClassName +")");
@@ -1952,9 +1952,9 @@ public class PropertyUtilsBean {
         // Call the property setter method
         final Object[] values = new Object[1];
         values[0] = value;
-        if (log.isTraceEnabled()) {
+        if (LOG.isTraceEnabled()) {
             final String valueClassName = value == null ? "<null>" : value.getClass().getName();
-            log.trace("setSimpleProperty: Invoking method " + writeMethod + " with value " + value + " (class " + valueClassName + ")");
+            LOG.trace("setSimpleProperty: Invoking method " + writeMethod + " with value " + value + " (class " + valueClassName + ")");
         }
         invokeMethod(writeMethod, bean, values);
     }
@@ -2012,7 +2012,7 @@ public class PropertyUtilsBean {
                 +   expectedString + "\""
                 );
             if (!BeanUtils.initCause(e, cause)) {
-                log.error("Method invocation failed", cause);
+                LOG.error("Method invocation failed", cause);
             }
             throw e;
         }
@@ -2056,7 +2056,7 @@ public class PropertyUtilsBean {
             try {
                 bi.introspect(ictx);
             } catch (final IntrospectionException iex) {
-                log.error("Exception during introspection", iex);
+                LOG.error("Exception during introspection", iex);
             }
         }
 
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsBean.java
index 7a26fe53..cbb72faa 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsBean.java
@@ -76,7 +76,7 @@ public class LocaleBeanUtilsBean extends BeanUtilsBean {
     }
 
     /** All logging goes through this logger */
-    private final Log log = LogFactory.getLog(LocaleBeanUtilsBean.class);
+    private static final Log LOG = LogFactory.getLog(LocaleBeanUtilsBean.class);
 
     /** Convertor used by this class */
     private final LocaleConvertUtilsBean localeConvertUtils;
@@ -601,7 +601,7 @@ public class LocaleBeanUtilsBean extends BeanUtilsBean {
                                     IllegalAccessException,
                                     InvocationTargetException {
         // Trace logging (if enabled)
-        if (log.isTraceEnabled()) {
+        if (LOG.isTraceEnabled()) {
             final StringBuilder sb = new StringBuilder("  setProperty(");
             sb.append(bean);
             sb.append(", ");
@@ -628,7 +628,7 @@ public class LocaleBeanUtilsBean extends BeanUtilsBean {
                 sb.append(value.toString());
             }
             sb.append(')');
-            log.trace(sb.toString());
+            LOG.trace(sb.toString());
         }
 
         // Resolve any nested expression to get the actual target bean
@@ -642,9 +642,9 @@ public class LocaleBeanUtilsBean extends BeanUtilsBean {
                 return; // Skip this property setter
             }
         }
-        if (log.isTraceEnabled()) {
-            log.trace("    Target bean = " + target);
-            log.trace("    Target name = " + name);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("    Target bean = " + target);
+            LOG.trace("    Target name = " + name);
         }
 
         // Declare local variables we will require
@@ -722,8 +722,8 @@ public class LocaleBeanUtilsBean extends BeanUtilsBean {
      * @return The converted value
      */
     protected Object convert(final Class<?> type, final int index, final Object value, final String pattern) {
-        if (log.isTraceEnabled()) {
-            log.trace("Converting value '" + value + "' to type:" + type);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Converting value '" + value + "' to type:" + type);
         }
 
         Object newValue = null;
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
index ac168a0d..564277a5 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/LocaleConvertUtilsBean.java
@@ -89,15 +89,15 @@ public class LocaleConvertUtilsBean {
         return LocaleBeanUtilsBean.getLocaleBeanUtilsInstance().getLocaleConvertUtils();
     }
 
+    /** The {@code Log} instance for this class. */
+    private static final Log LOG = LogFactory.getLog(LocaleConvertUtilsBean.class);
+
     /** The locale - default for conversion. */
     private Locale defaultLocale = Locale.getDefault();
 
     /** Indicate whether the pattern is localized or not */
     private boolean applyLocalized;
 
-    /** The {@code Log} instance for this class. */
-    private final Log log = LogFactory.getLog(LocaleConvertUtilsBean.class);
-
     /**
      * Every entry of the mapConverters is:
      * <ul>
@@ -192,8 +192,8 @@ public class LocaleConvertUtilsBean {
      * underlying Converter
      */
     public Object convert(final String value, final Class<?> clazz, final Locale locale, final String pattern) {
-        if (log.isDebugEnabled()) {
-            log.debug("Convert string " + value + " to class " +
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Convert string " + value + " to class " +
                     clazz.getName() + " using " + locale +
                     " locale and " + pattern + " pattern");
         }
@@ -205,8 +205,8 @@ public class LocaleConvertUtilsBean {
             converter = lookup(String.class, locale);
             targetClass = String.class;
         }
-        if (log.isTraceEnabled()) {
-            log.trace("  Using converter " + converter);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("  Using converter " + converter);
         }
 
         return converter.convert(targetClass, value, pattern);
@@ -263,8 +263,8 @@ public class LocaleConvertUtilsBean {
         if (clazz.isArray()) {
             type = clazz.getComponentType();
         }
-        if (log.isDebugEnabled()) {
-            log.debug("Convert String[" + values.length + "] to class " +
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Convert String[" + values.length + "] to class " +
                     type.getName() + "[] using " + locale +
                     " locale and " + pattern + " pattern");
         }
@@ -401,8 +401,8 @@ public class LocaleConvertUtilsBean {
     public <T> LocaleConverter<T> lookup(final Class<T> clazz, final Locale locale) {
         final LocaleConverter<T> converter = (LocaleConverter<T>) lookup(locale).get(clazz);
 
-        if (log.isTraceEnabled()) {
-            log.trace("LocaleConverter:" + converter);
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("LocaleConverter:" + converter);
         }
 
         return converter;
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverter.java b/src/main/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverter.java
index c7212ac3..8ce314b0 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverter.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverter.java
@@ -41,7 +41,7 @@ import org.apache.commons.logging.LogFactory;
 public class DateLocaleConverter extends BaseLocaleConverter<Date> {
 
     /** All logging goes through this logger */
-    private final Log log = LogFactory.getLog(DateLocaleConverter.class);
+    private static final Log LOG = LogFactory.getLog(DateLocaleConverter.class);
 
     /** Should the date conversion be lenient? */
     boolean isLenient;
@@ -301,8 +301,8 @@ public class DateLocaleConverter extends BaseLocaleConverter<Date> {
                                                 localChars,
                                                 DEFAULT_PATTERN_CHARS);
          } catch (final Exception ex) {
-             if (log.isDebugEnabled()) {
-                 log.debug("Converting pattern '" + localizedPattern + "' for " + locale, ex);
+             if (LOG.isDebugEnabled()) {
+                 LOG.debug("Converting pattern '" + localizedPattern + "' for " + locale, ex);
              }
          }
          return convertedPattern;
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java b/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
index ebab35ec..1e41ca79 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
@@ -40,7 +40,7 @@ import org.apache.commons.logging.LogFactory;
 public class DecimalLocaleConverter<T> extends BaseLocaleConverter<T> {
 
     /** All logging goes through this logger */
-    private final Log log = LogFactory.getLog(DecimalLocaleConverter.class);
+    private static final Log LOG = LogFactory.getLog(DecimalLocaleConverter.class);
 
     /**
      * Create a {@link org.apache.commons.beanutils2.locale.LocaleConverter}
@@ -226,7 +226,7 @@ public class DecimalLocaleConverter<T> extends BaseLocaleConverter<T> {
                 formatter.applyPattern(pattern);
             }
         } else {
-            log.debug("No pattern provided, using default.");
+            LOG.debug("No pattern provided, using default.");
         }
 
         return formatter.parse((String) value);
diff --git a/src/main/java/org/apache/commons/beanutils2/locale/converters/StringLocaleConverter.java b/src/main/java/org/apache/commons/beanutils2/locale/converters/StringLocaleConverter.java
index 2318879f..455dddda 100644
--- a/src/main/java/org/apache/commons/beanutils2/locale/converters/StringLocaleConverter.java
+++ b/src/main/java/org/apache/commons/beanutils2/locale/converters/StringLocaleConverter.java
@@ -42,7 +42,7 @@ import org.apache.commons.logging.LogFactory;
 public class StringLocaleConverter extends BaseLocaleConverter<String> {
 
     /** All logging goes through this logger */
-    private final Log log = LogFactory.getLog(StringLocaleConverter.class);     //msz fix
+    private static final Log LOG = LogFactory.getLog(StringLocaleConverter.class);
 
     /**
      * Create a {@link org.apache.commons.beanutils2.locale.LocaleConverter}
@@ -260,7 +260,7 @@ public class StringLocaleConverter extends BaseLocaleConverter<String> {
                 numberFormat.applyPattern(pattern);
             }
         } else {
-            log.debug("No pattern provided, using default.");
+            LOG.debug("No pattern provided, using default.");
         }
 
         return numberFormat;
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira157TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira157TestCase.java
index a3acb7eb..d16254a0 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira157TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira157TestCase.java
@@ -38,7 +38,7 @@ import junit.framework.TestSuite;
  */
 public class Jira157TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira157TestCase.class);
+    private static final Log LOG = LogFactory.getLog(Jira157TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -114,7 +114,7 @@ public class Jira157TestCase extends TestCase {
         try {
             result = BeanUtils.describe(bean);
         } catch (final Throwable t) {
-            log.error("Describe Serializable: " + t.getMessage(), t);
+            LOG.error("Describe Serializable: " + t.getMessage(), t);
             fail("Describe Serializable Threw exception: " + t);
         }
         assertEquals("Check Size", 1, result.size());
@@ -142,7 +142,7 @@ public class Jira157TestCase extends TestCase {
         try {
             result = BeanUtils.describe(bean);
         } catch (final Throwable t) {
-            log.error("Describe Interface: " + t.getMessage(), t);
+            LOG.error("Describe Interface: " + t.getMessage(), t);
             fail("Describe Interface Threw exception: " + t);
         }
         assertEquals("Check Size", 3, result.size());
@@ -165,7 +165,7 @@ public class Jira157TestCase extends TestCase {
         try {
             result = BeanUtils.describe(bean);
         } catch (final Throwable t) {
-            log.error("Describe Bean: " + t.getMessage(), t);
+            LOG.error("Describe Bean: " + t.getMessage(), t);
             fail("Describe Bean Threw exception: " + t);
         }
         assertEquals("Check Size", 2, result.size());
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
index fc80c312..a5455014 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira273TestCase.java
@@ -33,7 +33,7 @@ import junit.framework.TestSuite;
  */
 public class Jira273TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira273TestCase.class);
+    private static final Log LOG = LogFactory.getLog(Jira273TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -92,7 +92,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("AnonymousOverridden: " + t.getMessage(), t);
+            LOG.error("AnonymousOverridden: " + t.getMessage(), t);
             fail("AnonymousOverridden Threw exception: " + t);
         }
         assertEquals("AnonymousOverridden", result);
@@ -108,7 +108,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("AnonymousNotOverridden: " + t.getMessage(), t);
+            LOG.error("AnonymousNotOverridden: " + t.getMessage(), t);
             fail("AnonymousNotOverridden Threw exception: " + t);
         }
         assertEquals("PublicBeanWithMethod", result);
@@ -124,7 +124,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("PrivatePublicNotOverridden: " + t.getMessage(), t);
+            LOG.error("PrivatePublicNotOverridden: " + t.getMessage(), t);
             fail("PrivatePublicNotOverridden Threw exception: " + t);
         }
         assertEquals("PublicBeanWithMethod", result);
@@ -140,7 +140,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("PrivatePublicOverridden: " + t.getMessage(), t);
+            LOG.error("PrivatePublicOverridden: " + t.getMessage(), t);
             fail("PrivatePublicOverridden Threw exception: " + t);
         }
         assertEquals("PrivatePublicOverridden", result);
@@ -156,7 +156,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("PrivatePrivatePublicNotOverridden: " + t.getMessage(), t);
+            LOG.error("PrivatePrivatePublicNotOverridden: " + t.getMessage(), t);
             fail("PrivatePrivatePublicNotOverridden Threw exception: " + t);
         }
         assertEquals("PublicBeanWithMethod", result);
@@ -172,7 +172,7 @@ public class Jira273TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "beanValue");
         } catch (final Throwable t) {
-            log.error("PrivatePrivatePublicOverridden: " + t.getMessage(), t);
+            LOG.error("PrivatePrivatePublicOverridden: " + t.getMessage(), t);
             fail("PrivatePrivatePublicOverridden Threw exception: " + t);
         }
         assertEquals("PrivatePrivatePublicOverridden", result);
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
index f1b4828f..d29fa592 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira298TestCase.java
@@ -34,7 +34,7 @@ import junit.framework.TestSuite;
  */
 public class Jira298TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira298TestCase.class);
+    private static final Log LOG = LogFactory.getLog(Jira298TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -92,7 +92,7 @@ public class Jira298TestCase extends TestCase {
         try {
             result = PropertyUtils.getProperty(bean, "name");
         } catch (final Throwable t) {
-            log.error("Failed: " + t.getMessage(), t);
+            LOG.error("Failed: " + t.getMessage(), t);
             fail("Threw exception: " + t);
         }
         assertEquals("BaseX name value", result);
@@ -107,7 +107,7 @@ public class Jira298TestCase extends TestCase {
         try {
             PropertyUtils.setProperty(bean, "name", "new name");
         } catch (final Throwable t) {
-            log.error("Failed: " + t.getMessage(), t);
+            LOG.error("Failed: " + t.getMessage(), t);
             fail("Threw exception: " + t);
         }
         assertEquals("new name", ((IX)bean).getName());
@@ -123,7 +123,7 @@ public class Jira298TestCase extends TestCase {
             final Method m2 = MethodUtils.getAccessibleMethod(bean.getClass(), "getName", new Class[0]);
             result = m2.invoke(bean);
         } catch (final Throwable t) {
-            log.error("Failed: " + t.getMessage(), t);
+            LOG.error("Failed: " + t.getMessage(), t);
             fail("Threw exception: " + t);
         }
         assertEquals("BaseX name value", result);
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira339TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira339TestCase.java
index ef456966..72961c8a 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira339TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira339TestCase.java
@@ -34,7 +34,7 @@ import junit.framework.TestSuite;
  */
 public class Jira339TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira339TestCase.class);
+    private static final Log LOG = LogFactory.getLog(Jira339TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -92,7 +92,7 @@ public class Jira339TestCase extends TestCase {
         try {
             BeanUtils.setProperty(bean, "comparator", null);
         } catch (final Throwable t) {
-            log.error("Failed: " + t.getMessage(), t);
+            LOG.error("Failed: " + t.getMessage(), t);
             fail("Threw exception: " + t);
         }
         assertNull("TestBean comparator should be null", bean.getComparator());
@@ -109,7 +109,7 @@ public class Jira339TestCase extends TestCase {
             properties.put("comparator", null);
             BeanUtils.populate(bean, properties);
         } catch (final Throwable t) {
-            log.error("Failed: " + t.getMessage(), t);
+            LOG.error("Failed: " + t.getMessage(), t);
             fail("Threw exception: " + t);
         }
         assertNull("TestBean comparator should be null", bean.getComparator());
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira349TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira349TestCase.java
index 24bfdd4d..46359a74 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira349TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira349TestCase.java
@@ -29,7 +29,7 @@ import junit.framework.TestSuite;
  */
 public class Jira349TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira349TestCase .class);
+    private static final Log LOG = LogFactory.getLog(Jira349TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -87,12 +87,12 @@ public class Jira349TestCase extends TestCase {
         try {
             PropertyUtils.copyProperties(dest, origin);
         } catch (final NullPointerException e) {
-            log.error("Failed", e);
+            LOG.error("Failed", e);
             fail("Threw NullPointerException");
         } catch (final IllegalArgumentException e) {
-            log.warn("Expected Result", e);
+            LOG.warn("Expected Result", e);
         } catch (final Throwable t) {
-            log.error("Failed", t);
+            LOG.error("Failed", t);
             fail("Threw exception: " + t);
         }
     }
diff --git a/src/test/java/org/apache/commons/beanutils2/bugs/Jira87TestCase.java b/src/test/java/org/apache/commons/beanutils2/bugs/Jira87TestCase.java
index a5ba96ad..bc9d336a 100644
--- a/src/test/java/org/apache/commons/beanutils2/bugs/Jira87TestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/bugs/Jira87TestCase.java
@@ -41,7 +41,7 @@ import junit.framework.TestSuite;
  */
 public class Jira87TestCase extends TestCase {
 
-    private final Log log = LogFactory.getLog(Jira87TestCase.class);
+    private static final Log LOG = LogFactory.getLog(Jira87TestCase.class);
 
     /**
      * Create a test case with the specified name.
@@ -100,7 +100,7 @@ public class Jira87TestCase extends TestCase {
             // N.B. The test impl. returns the key value
             assertEquals("foo", PropertyUtils.getMappedProperty(bean, "value(foo)"));
         } catch (final Throwable t) {
-            log.error("ERROR " + t, t);
+            LOG.error("ERROR " + t, t);
             fail("Threw exception: " + t);
         }
     }
diff --git a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsTestCase.java b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsTestCase.java
index 681a69cb..05c95ca9 100644
--- a/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/locale/LocaleBeanUtilsTestCase.java
@@ -30,7 +30,7 @@ import junit.framework.TestSuite;
  */
 public class LocaleBeanUtilsTestCase extends TestCase {
 
-    private static final Log log = LogFactory.getLog(LocaleBeanUtilsTestCase.class);
+    private static final Log LOG = LogFactory.getLog(LocaleBeanUtilsTestCase.class);
 
     /**
      * Constructs a new instance of this test case.
@@ -77,7 +77,7 @@ public class LocaleBeanUtilsTestCase extends TestCase {
         try {
             LocaleBeanUtils.setProperty(bean, "nested.intProperty", "123", null);
         } catch (final Throwable t) {
-            log.error(t);
+            LOG.error(t);
             fail("Threw " + t);
         }
         assertEquals("Check Set Value", 123, bean.getNested().getIntProperty());
@@ -93,7 +93,7 @@ public class LocaleBeanUtilsTestCase extends TestCase {
         try {
             LocaleBeanUtils.setProperty(bean, "nested.intIndexed[1]", "123", null);
         } catch (final Throwable t) {
-            log.error(t);
+            LOG.error(t);
             fail("Threw " + t);
         }
         assertEquals("Check Set Value", 123, bean.getNested().getIntIndexed(1));
diff --git a/src/test/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverterTestCase.java b/src/test/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverterTestCase.java
index bb0ac8bb..606ea0cb 100644
--- a/src/test/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverterTestCase.java
+++ b/src/test/java/org/apache/commons/beanutils2/locale/converters/DateLocaleConverterTestCase.java
@@ -35,7 +35,7 @@ import org.apache.commons.logging.LogFactory;
 public class DateLocaleConverterTestCase extends BaseLocaleConverterTestCase<Date> {
 
     /** All logging goes through this logger */
-    private final Log log = LogFactory.getLog(DateLocaleConverterTestCase.class);
+    private static final Log LOG = LogFactory.getLog(DateLocaleConverterTestCase.class);
 
     protected String localizedDatePattern;
     protected String localizedDateValue;
@@ -63,14 +63,14 @@ public class DateLocaleConverterTestCase extends BaseLocaleConverterTestCase<Dat
         super.setUp();
 
         final String version = System.getProperty("java.specification.version");
-        log.debug("JDK Version "+version);
+        LOG.debug("JDK Version "+version);
 
         try {
             final SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
             expectedValue      = format.parse("20041001");
             defaultValue       = format.parse("19670316");
         } catch (final Exception ex) {
-            log.error("Error creating expected/default dates", ex);
+            LOG.error("Error creating expected/default dates", ex);
         }
 
         // Default Locale (Use US)
@@ -208,7 +208,7 @@ public class DateLocaleConverterTestCase extends BaseLocaleConverterTestCase<Dat
 
         // Skip this test if no valid symbols for the locale
         if (!validLocalDateSymbols) {
-            log.error("Invalid locale symbols *** skipping testConstructorMain() **");
+            LOG.error("Invalid locale symbols *** skipping testConstructorMain() **");
             return;
         }
 
@@ -312,7 +312,7 @@ public class DateLocaleConverterTestCase extends BaseLocaleConverterTestCase<Dat
 
         // Skip this test if no valid symbols for the locale
         if (!validLocalDateSymbols) {
-            log.error("Invalid locale symbols *** skipping testConstructor_5() **");
+            LOG.error("Invalid locale symbols *** skipping testConstructor_5() **");
             return;
         }
 
@@ -350,7 +350,7 @@ public class DateLocaleConverterTestCase extends BaseLocaleConverterTestCase<Dat
 
         // Skip this test if no valid symbols for the locale
         if (!validLocalDateSymbols) {
-            log.error("Invalid locale symbols *** skipping testConstructor_7() **");
+            LOG.error("Invalid locale symbols *** skipping testConstructor_7() **");
             return;
         }