[
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]