Author: kylem
Date: Tue Apr 12 12:25:45 2005
New Revision: 161098

URL: http://svn.apache.org/viewcvs?view=rev&rev=161098
Log:
Minor tweak to previous checkin to this file to improve thread safety

Modified:
    
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBeanContext.java

Modified: 
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBeanContext.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBeanContext.java?view=diff&r1=161097&r2=161098
==============================================================================
--- 
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBeanContext.java
 (original)
+++ 
incubator/beehive/trunk/controls/src/runtime/org/apache/beehive/controls/runtime/bean/ControlBeanContext.java
 Tue Apr 12 12:25:45 2005
@@ -810,7 +810,7 @@
             return _controlID;
 
         // Initially set to the local beans relative ID
-        _controlID = _bean.getLocalID();
+        String id = _bean.getLocalID();
 
         // If there is a parent context, prepend its ID and the ID separator
         BeanContext bc = getBeanContext();
@@ -819,17 +819,21 @@
             String parentID = ((ControlBeanContext)bc).getControlID();
             if (parentID != null)
             {
-                _controlID = parentID + 
-                             
org.apache.beehive.controls.api.bean.ControlBean.IDSeparator +
-                             _controlID;
+                id = parentID + 
+                     
org.apache.beehive.controls.api.bean.ControlBean.IDSeparator +
+                     id;
             }
         }
-        return _controlID;
+
+        // Cache the computed value
+        _controlID = id;
+
+        return id;
     }
 
     /**
      * Resets the composite control ID for this context and all children 
beneath it.  This
-     * can be used to invalidate cached values when necessarily (for example, 
when a context
+     * can be used to invalidate cached values when necessary (for example, 
when a context
      * is reparented).
      */
     private void resetControlID()


Reply via email to