commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jochen Wiedmann (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (FILEUPLOAD-125) new FileCleanerCleanup may lead to problems [PATCH]
Date Wed, 28 Feb 2007 13:29:57 GMT

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

Jochen Wiedmann resolved FILEUPLOAD-125.
----------------------------------------

    Resolution: Won't Fix

Understanding your suggestion, I nevertheless decided against picking it up as a recommendation:

While the idea to compare classloaders works in your case, I wouldn't assume that it will
work always. For example, I see no reason, why Thread.currentThread().getContextClassLoader()
must differ among threads: For example, I could imagine that a J2EE server uses the very same
ClassLoader for all threads, which holds a ThreadLocal instance internally. A recommendation
should work in all cases.

IMO, the ball is still in the field of commons-io, which should allow to create and destroy
the thread as a local object, which can be bound, for example, to the ServletContextListener.


> new FileCleanerCleanup may lead to problems [PATCH]
> ---------------------------------------------------
>
>                 Key: FILEUPLOAD-125
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-125
>             Project: Commons FileUpload
>          Issue Type: Bug
>    Affects Versions: 1.2
>            Reporter: C├ędrik LIME
>
> This is a follow-up on FILEUPLOAD-120.
> As described in using.html#resourceCleanup, stopping the IO's reaper thread when commons-io
is in the container's classpath will impact other running applications. The solution to this
is to test if the FileCleaner class was loaded by the application's ClassLoader (i.e. commons-io.jar
is in WEB-INF/lib/):
>     public void contextDestroyed(ServletContextEvent sce) {
>         if (FileCleaner.class.getClassLoader() == Thread.currentThread().getContextClassLoader())
{
>             FileCleaner.exitWhenFinished();
>         }
>     }
> This is, if users don't forget to put FileCleanerCleanup as a servlet listener, of course...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message