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 @Override
036 public void run(HttpSession session) throws ActionException {
037 Thread currentThread = Thread.currentThread();
038
039 ClassLoader contextClassLoader = currentThread.getContextClassLoader();
040
041 currentThread.setContextClassLoader(_classLoader);
042
043 try {
044 _sessionAction.run(session);
045 }
046 finally {
047 currentThread.setContextClassLoader(contextClassLoader);
048 }
049 }
050
051 private ClassLoader _classLoader;
052 private SessionAction _sessionAction;
053
054 }