Update of /var/cvs/src/org/mmbase/datatypes
In directory james.mmbase.org:/tmp/cvs-serv5127

Modified Files:
        BasicDataType.java 
Log Message:
observed that it spends a lot of time in the getCloud method  on class 
security. Perhaps this helps


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/datatypes


Index: BasicDataType.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/datatypes/BasicDataType.java,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -b -r1.95 -r1.96
--- BasicDataType.java  13 Aug 2008 21:32:17 -0000      1.95
+++ BasicDataType.java  21 Aug 2008 14:59:52 -0000      1.96
@@ -40,7 +40,7 @@
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
  * @since  MMBase-1.8
- * @version $Id: BasicDataType.java,v 1.95 2008/08/13 21:32:17 michiel Exp $
+ * @version $Id: BasicDataType.java,v 1.96 2008/08/21 14:59:52 michiel Exp $
  */
 
 public class BasicDataType<C> extends AbstractDescriptor implements 
DataType<C>, Cloneable, Comparable<DataType<C>>, Descriptor {
@@ -328,6 +328,7 @@
         return null;
     }
 
+    private static Cloud classCloud = null;
     /**
      * Returns a cloud object if argument is <code>null</code>. Otherwise the 
argument.
      * @since MMBase-1.8.6
@@ -340,7 +341,9 @@
         if (cloud == null) {
             CloudContext context = ContextProvider.getDefaultCloudContext();
             if (! context.isUp()) return null;
-            cloud  = context.getCloud("mmbase", "class", null);
+            // class security can be a bit expensive, and this method can in 
certain cases be called very often.
+            if (classCloud == null || ! classCloud.getUser().isValid()) 
classCloud = context.getCloud("mmbase", "class", null);
+            cloud  = classCloud;
         }
         return cloud;
     }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to