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

Reply via email to