ASF Bugzilla – Attachment 31631 Details for
Bug 56536
HttpSessionBindingListener.valueUnbound uses wrong classloader when SingleSignOn valve is used
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch where the restoring of the old classloader is deferred.
tomcatclassloader.txt (text/plain), 3.62 KB, created by
Maarten van Hulsentop
on 2014-05-16 13:29:29 UTC
(
hide
)
Description:
Patch where the restoring of the old classloader is deferred.
Filename:
MIME Type:
Creator:
Maarten van Hulsentop
Created:
2014-05-16 13:29:29 UTC
Size:
3.62 KB
patch
obsolete
>Index: java/org/apache/catalina/session/StandardSession.java >=================================================================== >--- java/org/apache/catalina/session/StandardSession.java (revision 1594906) >+++ java/org/apache/catalina/session/StandardSession.java (working copy) >@@ -822,51 +822,50 @@ > } > } > } >- } finally { >- if (oldTccl != null) { >- if (Globals.IS_SECURITY_ENABLED) { >- PrivilegedAction<Void> pa = >- new PrivilegedSetTccl(oldTccl); >- AccessController.doPrivileged(pa); >- } else { >- Thread.currentThread().setContextClassLoader(oldTccl); >- } >- } >- } > >- if (ACTIVITY_CHECK) { >- accessCount.set(0); >- } >- >- // Remove this session from our manager's active sessions >- manager.remove(this, true); >- >- // Notify interested session event listeners >- if (notify) { >- fireSessionEvent(Session.SESSION_DESTROYED_EVENT, null); >- } >- >- // Call the logout method >- if (principal instanceof GenericPrincipal) { >- GenericPrincipal gp = (GenericPrincipal) principal; >- try { >- gp.logout(); >- } catch (Exception e) { >- manager.getContainer().getLogger().error( >- sm.getString("standardSession.logoutfail"), >- e); >+ if (ACTIVITY_CHECK) { >+ accessCount.set(0); > } >- } > >- // We have completed expire of this session >- setValid(false); >- expiring = false; >- >- // Unbind any objects associated with this session >- String keys[] = keys(); >- for (int i = 0; i < keys.length; i++) >- removeAttributeInternal(keys[i], notify); >- >+ // Remove this session from our manager's active sessions >+ manager.remove(this, true); >+ >+ // Notify interested session event listeners >+ if (notify) { >+ fireSessionEvent(Session.SESSION_DESTROYED_EVENT, null); >+ } >+ >+ // Call the logout method >+ if (principal instanceof GenericPrincipal) { >+ GenericPrincipal gp = (GenericPrincipal) principal; >+ try { >+ gp.logout(); >+ } catch (Exception e) { >+ manager.getContainer().getLogger().error( >+ sm.getString("standardSession.logoutfail"), >+ e); >+ } >+ } >+ >+ // We have completed expire of this session >+ setValid(false); >+ expiring = false; >+ >+ // Unbind any objects associated with this session >+ String keys[] = keys(); >+ for (int i = 0; i < keys.length; i++) >+ removeAttributeInternal(keys[i], notify); >+ } finally { >+ if (oldTccl != null) { >+ if (Globals.IS_SECURITY_ENABLED) { >+ PrivilegedAction<Void> pa = >+ new PrivilegedSetTccl(oldTccl); >+ AccessController.doPrivileged(pa); >+ } else { >+ Thread.currentThread().setContextClassLoader(oldTccl); >+ } >+ } >+ } > } > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 56536
:
31630
| 31631