001
014
015 package com.liferay.portal.kernel.events;
016
017 import javax.servlet.http.HttpSession;
018
019
022 public class InvokerSessionAction extends SessionAction {
023
024 public InvokerSessionAction(SessionAction sessionAction) {
025 this(sessionAction, Thread.currentThread().getContextClassLoader());
026 }
027
028 public InvokerSessionAction(
029 SessionAction sessionAction, ClassLoader classLoader) {
030
031 _sessionAction = sessionAction;
032 _classLoader = classLoader;
033 }
034
035 public void run(HttpSession session) throws ActionException {
036 Thread currentThread = Thread.currentThread();
037
038 ClassLoader contextClassLoader = currentThread.getContextClassLoader();
039
040 currentThread.setContextClassLoader(_classLoader);
041
042 try {
043 _sessionAction.run(session);
044 }
045 finally {
046 currentThread.setContextClassLoader(contextClassLoader);
047 }
048 }
049
050 private SessionAction _sessionAction;
051 private ClassLoader _classLoader;
052
053 }