openwebbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From strub...@apache.org
Subject svn commit: r1076613 - /openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
Date Thu, 03 Mar 2011 13:14:37 GMT
Author: struberg
Date: Thu Mar  3 13:14:37 2011
New Revision: 1076613

URL: http://svn.apache.org/viewvc?rev=1076613&view=rev
Log:
OWB-539 also treat typeClosures lazily

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java?rev=1076613&r1=1076612&r2=1076613&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
(original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractAnnotated.java
Thu Mar  3 13:14:37 2011
@@ -38,7 +38,7 @@ abstract class AbstractAnnotated impleme
     private final Type baseType;
     
     /**Type closures*/
-    private Set<Type> typeClosures = new HashSet<Type>();
+    private Set<Type> typeClosures = null;
     
     /**Set of annotations*/
     private Set<Annotation> annotations = new HashSet<Annotation>();
@@ -51,8 +51,6 @@ abstract class AbstractAnnotated impleme
     protected AbstractAnnotated(Type baseType)
     {
         this.baseType = baseType;
-        this.typeClosures.add(Object.class);
-        ClassUtil.setTypeHierarchy(this.typeClosures, this.baseType);
     }
 
     /**
@@ -69,7 +67,7 @@ abstract class AbstractAnnotated impleme
     /**
      * Adds new annotation to set.
      * 
-     * @param annotation new annotation
+     * @param annotations new annotations
      */
     protected void setAnnotations(Annotation[] annotations)
     {        
@@ -123,7 +121,21 @@ abstract class AbstractAnnotated impleme
     @Override
     public Set<Type> getTypeClosure()
     {
-        return this.typeClosures;
+        if (typeClosures == null)
+        {
+            initTypeClosures();
+        }
+        return typeClosures;
+    }
+
+    private synchronized void initTypeClosures()
+    {
+        if (typeClosures == null)
+        {
+            typeClosures = new HashSet<Type>();
+            this.typeClosures.add(Object.class);
+            ClassUtil.setTypeHierarchy(this.typeClosures, this.baseType);
+        }
     }
 
     /**
@@ -148,7 +160,7 @@ abstract class AbstractAnnotated impleme
         StringBuilder builder = new StringBuilder();
         
         builder.append("Base Type : " + baseType.toString() + ",");
-        builder.append("Type Closures : " + typeClosures.toString() + ",");
+        builder.append("Type Closures : " + typeClosures + ",");
         builder.append("Annotations : " + annotations.toString());
         
         return builder.toString();



Mime
View raw message