[jboss-cvs] JBossAS SVN: r103586 - projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/authorization.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 6 13:17:38 EDT 2010


Author: anil.saldhana at jboss.com
Date: 2010-04-06 13:17:38 -0400 (Tue, 06 Apr 2010)
New Revision: 103586

Modified:
   projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java
Log:
SECURITY-494: cache the loaded class instances

Modified: projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java
===================================================================
--- projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java	2010-04-06 16:54:02 UTC (rev 103585)
+++ projects/security/security-jboss-sx/branches/Branch_2_0/jbosssx/src/main/java/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java	2010-04-06 17:17:38 UTC (rev 103586)
@@ -24,6 +24,7 @@
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -78,6 +79,9 @@
 
    //Application Policy can be injected
    private ApplicationPolicy applicationPolicy = null;
+   
+   //Clazz instance cache map to minimize load class synchronization
+   private static Map< String,Class<?> > clazzMap = new HashMap<String, Class<?>>();
 
    public JBossAuthorizationContext(String name)
    {
@@ -306,7 +310,13 @@
       ClassLoader tcl = SecurityActions.getContextClassLoader();
       try
       {
-         Class<?> clazz = tcl.loadClass(name);
+         Class<?> clazz = clazzMap.get(name);
+         if(clazz == null)
+         {
+            clazz = tcl.loadClass(name);
+            clazzMap.put(name, clazz);
+         }   
+            
          am = (AuthorizationModule) clazz.newInstance();
       }
       catch (Exception e)




More information about the jboss-cvs-commits mailing list