You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/01/23 13:18:14 UTC
svn commit: r1560660 -
/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
Author: markt
Date: Thu Jan 23 12:18:14 2014
New Revision: 1560660
URL: http://svn.apache.org/r1560660
Log:
Migrate to Context bind()/unbind()
Modified:
tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
Modified: tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardSession.java?rev=1560660&r1=1560659&r2=1560660&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Thu Jan 23 12:18:14 2014
@@ -53,7 +53,6 @@ import org.apache.catalina.Manager;
import org.apache.catalina.Session;
import org.apache.catalina.SessionEvent;
import org.apache.catalina.SessionListener;
-import org.apache.catalina.ThreadBindingListener;
import org.apache.catalina.TomcatPrincipal;
import org.apache.catalina.security.SecurityUtil;
import org.apache.tomcat.util.ExceptionUtils;
@@ -805,7 +804,7 @@ public class StandardSession implements
// listeners
ClassLoader oldContextClassLoader = null;
try {
- oldContextClassLoader = bindThread(context);
+ oldContextClassLoader = context.bind(Globals.IS_SECURITY_ENABLED, null);
if (notify) {
Object listeners[] = context.getApplicationLifecycleListeners();
if (listeners != null && listeners.length > 0) {
@@ -838,7 +837,7 @@ public class StandardSession implements
}
}
} finally {
- unbindThread(context, oldContextClassLoader);
+ context.unbind(Globals.IS_SECURITY_ENABLED, oldContextClassLoader);
}
if (ACTIVITY_CHECK) {
@@ -879,99 +878,6 @@ public class StandardSession implements
}
- protected ClassLoader bindThread(Context context) {
-
- ClassLoader contextClassLoader = null;
- ThreadBindingListener threadBindingListener = null;
- if (context != null) {
- if (context.getLoader() != null && context.getLoader().getClassLoader() != null) {
- contextClassLoader = context.getLoader().getClassLoader();
- }
- threadBindingListener = context.getThreadBindingListener();
- }
- if (threadBindingListener == null || contextClassLoader == null) {
- return null;
- }
-
- if (Globals.IS_SECURITY_ENABLED) {
- return AccessController.doPrivileged(new PrivilegedBind(contextClassLoader, threadBindingListener));
- } else {
- ClassLoader oldContextClassLoader =
- Thread.currentThread().getContextClassLoader();
- if (oldContextClassLoader == contextClassLoader) {
- return null;
- } else {
- Thread.currentThread().setContextClassLoader(contextClassLoader);
- threadBindingListener.bind();
- return oldContextClassLoader;
- }
- }
-
- }
-
- protected class PrivilegedBind implements PrivilegedAction<ClassLoader> {
- private ClassLoader contextClassLoader;
- private ThreadBindingListener threadBindingListener;
-
- PrivilegedBind(ClassLoader contextClassLoader, ThreadBindingListener threadBindingListener) {
- this.contextClassLoader = contextClassLoader;
- this.threadBindingListener = threadBindingListener;
- }
-
- @Override
- public ClassLoader run() {
- ClassLoader oldContextClassLoader =
- Thread.currentThread().getContextClassLoader();
- if (oldContextClassLoader == contextClassLoader) {
- return null;
- } else {
- Thread.currentThread().setContextClassLoader(contextClassLoader);
- threadBindingListener.bind();
- return oldContextClassLoader;
- }
- }
- }
-
- protected void unbindThread(Context context, ClassLoader oldContextClassLoader) {
-
- if (oldContextClassLoader == null) {
- return;
- }
- ThreadBindingListener threadBindingListener = null;
- if (context != null) {
- threadBindingListener = context.getThreadBindingListener();
- }
- if (threadBindingListener == null) {
- return;
- }
-
- if (Globals.IS_SECURITY_ENABLED) {
- AccessController.doPrivileged(new PrivilegedUnbind(oldContextClassLoader, threadBindingListener));
- } else {
- threadBindingListener.unbind();
- Thread.currentThread().setContextClassLoader(oldContextClassLoader);
- }
-
- }
-
- protected class PrivilegedUnbind implements PrivilegedAction<Void> {
- private ClassLoader oldContextClassLoader;
- private ThreadBindingListener threadBindingListener;
-
- PrivilegedUnbind(ClassLoader oldContextClassLoader, ThreadBindingListener threadBindingListener) {
- this.oldContextClassLoader = oldContextClassLoader;
- this.threadBindingListener = threadBindingListener;
- }
-
- @Override
- public Void run() {
- threadBindingListener.unbind();
- Thread.currentThread().setContextClassLoader(oldContextClassLoader);
- return null;
- }
- }
-
-
/**
* Perform the internal processing required to passivate
* this session.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org