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

Thomas Neidhart reopened LOGGING-37:
------------------------------------


> [logging] LogFactory#getLogFactory should not look for method every time
> ------------------------------------------------------------------------
>
>                 Key: LOGGING-37
>                 URL: https://issues.apache.org/jira/browse/LOGGING-37
>             Project: Commons Logging
>          Issue Type: Bug
>    Affects Versions: 1.0.4
>         Environment: Operating System: other
> Platform: Other
>            Reporter: Matthias Ernst
>
> LogFactory checks for the existence of Thread#getContextClassLoader every time
> #getLogFactory is invoked and does a reflective invocation. This is
> unnecessarily expensive if many Log objects are created. An easy patch is to
> remember the Method object; the lookup happens only once and it will massively
> profit from reflection optimizations after a number of calls (a Java code stub
> is generated by the reflection package).
> Patch:
> 419a420,426
> >     private static Method GET_CONTEXT_CLASS_LOADER = null;
> >     static {
> >       try {
> >         GET_CONTEXT_CLASS_LOADER = 
> > Thread.class.getMethod("getContextClassLoad
> er", null);
> >       } catch (NoSuchMethodException e) {
> >       }
> >     }
> 436,439c443
> <         try {
> <             // Are we running on a JDK 1.2 or later system?
> <             Method method = Thread.class.getMethod("getContextClassLoader", 
> nu
> ll);
> <
> ---
> >         if(GET_CONTEXT_CLASS_LOADER != null) {
> 442c446
> <                 classLoader = 
> (ClassLoader)method.invoke(Thread.currentThread(
> ), null);
> ---
> >                 classLoader = 
> > (ClassLoader)GET_CONTEXT_CLASS_LOADER.invoke(Thr
> ead.currentThread(), null);
> 472c476
> <         } catch (NoSuchMethodException e) {
> ---
> >         } else {



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to