You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2010/10/06 17:19:24 UTC

svn commit: r1005082 - /cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java

Author: eevans
Date: Wed Oct  6 15:19:24 2010
New Revision: 1005082

URL: http://svn.apache.org/viewvc?rev=1005082&view=rev
Log:
minimize object creation in ClientState

Patch by Stu Hood; reviewed by eevans for CASSANDRA-1554

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java?rev=1005082&r1=1005081&r2=1005082&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/service/ClientState.java Wed Oct  6 15:19:24 2010
@@ -41,6 +41,8 @@ public class ClientState
     // Current user for the session
     private AuthenticatedUser user;
     private String keyspace;
+    // Reusable array for authorization
+    private final List<Object> resource = new ArrayList<Object>();
 
     /**
      * Construct a new, empty ClientState: can be reused after logout() or reset().
@@ -87,10 +89,18 @@ public class ClientState
         reset();
     }
 
+    private void resourceClear()
+    {
+        resource.clear();
+        resource.add(Resources.ROOT);
+        resource.add(Resources.KEYSPACES);
+    }
+
     public void reset()
     {
         user = DatabaseDescriptor.getAuthenticator().defaultUser();
         keyspace = null;
+        resourceClear();
     }
 
     /**
@@ -100,7 +110,7 @@ public class ClientState
     {
         validateLogin();
         
-        List<Object> resource = Arrays.<Object>asList(Resources.ROOT, Resources.KEYSPACES);
+        resourceClear();
         Set<Permission> perms = DatabaseDescriptor.getAuthority().authorize(user, resource);
 
         hasAccess(user, perms, perm, resource);
@@ -115,7 +125,8 @@ public class ClientState
         validateLogin();
         validateKeyspace();
         
-        List<Object> resource = Arrays.<Object>asList(Resources.ROOT, Resources.KEYSPACES, keyspace);
+        resourceClear();
+        resource.add(keyspace);
         Set<Permission> perms = DatabaseDescriptor.getAuthority().authorize(user, resource);
         
         hasAccess(user, perms, perm, resource);
@@ -130,7 +141,9 @@ public class ClientState
         validateLogin();
         validateKeyspace();
         
-        List<Object> resource = Arrays.<Object>asList(Resources.ROOT, Resources.KEYSPACES, keyspace, columnFamily);
+        resourceClear();
+        resource.add(keyspace);
+        resource.add(columnFamily);
         Set<Permission> perms = DatabaseDescriptor.getAuthority().authorize(user, resource);
         
         hasAccess(user, perms, perm, resource);