Author: markt Date: Wed Apr 5 10:37:50 2017 New Revision: 1790205 URL: http://svn.apache.org/viewvc?rev=1790205&view=rev Log: Partial fix for https://bz.apache.org/bugzilla/show_bug.cgi?id=47214 Replace explicitly referenced anonymous inner classes in StandardSession with named inner classes.
Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=1790205&r1=1790204&r2=1790205&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java (original) +++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Wed Apr 5 10:37:50 2017 @@ -142,7 +142,7 @@ public final class SecurityClassLoad { loader.loadClass (basePackage + "StandardSession"); loader.loadClass - (basePackage + "StandardSession$1"); + (basePackage + "StandardSession$PrivilegedNewSessionFacade"); loader.loadClass (basePackage + "StandardManager$PrivilegedDoUnload"); } 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=1790205&r1=1790204&r2=1790205&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/StandardSession.java (original) +++ tomcat/trunk/java/org/apache/catalina/session/StandardSession.java Wed Apr 5 10:37:50 2017 @@ -638,23 +638,14 @@ public class StandardSession implements */ @Override public HttpSession getSession() { - - if (facade == null){ - if (SecurityUtil.isPackageProtectionEnabled()){ - final StandardSession fsession = this; - facade = AccessController.doPrivileged( - new PrivilegedAction<StandardSessionFacade>(){ - @Override - public StandardSessionFacade run(){ - return new StandardSessionFacade(fsession); - } - }); + if (facade == null) { + if (SecurityUtil.isPackageProtectionEnabled()) { + facade = AccessController.doPrivileged(new PrivilegedNewSessionFacade(this)); } else { facade = new StandardSessionFacade(this); } } - return (facade); - + return facade; } @@ -1851,10 +1842,23 @@ public class StandardSession implements (sm.getString("standardSession.attributeEvent"), t); } } - } + private static class PrivilegedNewSessionFacade implements + PrivilegedAction<StandardSessionFacade> { + + private final HttpSession session; + + public PrivilegedNewSessionFacade(HttpSession session) { + this.session = session; + } + + @Override + public StandardSessionFacade run(){ + return new StandardSessionFacade(session); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org