... or ThreadLocals are EVIL! If you have not heard the word yet, ThreadLocals
tend to prevent (web) application(s) from being garbage collected when thread
locals are not properly nulled out.

So in order to allow web applications using LogKit to be properly unloaded,
LogKit's ContextMap has to have one more method:

    /**
     * Remove current ContextMap.
     * This method removes a ContextMap associated with current thread,
     * if there is any.
     */
    public static void removeCurrentContext()
    {
        c_localContext.set(null);
    }


Consistent usage of this method, like:

try {
    ... ContextMap.getCurrentContext() ...
} finally {
    ContextMap.removeCurrentContext();
}

will guarantee that ThreadLocal is properly cleaned up and web app will be
properly unloaded. I'd like to include this addition into the release; and IMHO
there is no reason to do yet another RC build just because of it :-) because it
is simple addition which does not alter any existing behavior.

WDYT?

Vadim

PS http://www.jroller.com/page/tackline?entry=fixing_threadlocal


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to