/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ // $Id: ResetClassLoaderHandler.java,v 1.2 2002/04/26 11:53:25 cgjung Exp $ package org.jboss.net.axis; import org.apache.axis.AxisFault; import org.apache.axis.MessageContext; import org.apache.axis.handlers.BasicHandler; /** * This handler is to restore a previously changed classpath and * should be put in most cases into a response chain. *
*

Change notes

* * @created 11.03.2002 * @author Christoph G. Jung * @version $Revision: 1.2 $ */ public class ResetClassLoaderHandler extends BasicHandler { // // Protected Helpers // /** reset the thread associated classloader to some old value stored in the * message context */ protected void resetClassLoader(MessageContext msgContext) { ClassLoader loader = (ClassLoader) msgContext.getProperty(Constants.OLD_CLASSLOADER_PROPERTY); if (loader != null) { msgContext.setProperty(Constants.OLD_CLASSLOADER_PROPERTY, null); Thread.currentThread().setContextClassLoader(loader); } } // // API // /* * @see Handler#invoke(MessageContext) */ public void invoke(MessageContext msgContext) { resetClassLoader(msgContext); } /* * @see Handler#onFault(MessageContext) */ public void onFault(MessageContext msgContext) { resetClassLoader(msgContext); } }