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

Cédrik LIME commented on FILEUPLOAD-125:
----------------------------------------

Jochen,

Thanks for your answer. I agree that ultimately commons-io should enable us to 
manage this thread more finely... Until that time, we'll have to cope with it.

Thread.currentThread().getContextClassLoader() represents the current web 
application's ClassLoader, not the current Thread ClassLoader (which we could 
get with Thread.currentThread().getClass().getClassLoader()). A Thread's 
ContextClassLoader /will/ change at runtime by the J2EE container to the served 
webapp's ClassLoader (that is: the same Thread will serve many different 
webapps during its lifetime).

I have mixed feelings about some piece of code in a web application affecting 
other non-related web applications. While the fault is on the shoulders of 
commons-io, I think we shouldn't allow the possibility to impact the other 
running webapps. Hence the aforementioned patch which I honestly believe works 
in all cases and for every application servers.

Anyway, this problem only arises when commons-io is in the container classpath, 
which hopefully will not be the case in a typical J2EE configuration.

> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to