Author: kentam
Date: Wed Mar  2 17:58:57 2005
New Revision: 155998

URL: http://svn.apache.org/viewcvs?view=rev&rev=155998
Log:
BEEHIVE-144: runtime exception if a primitive property reset at time of 
instantiate

Fixed handling of external property sets when used in initialization property 
maps.


Modified:
    
incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/properties/BaseMap.java
    
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java

Modified: 
incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/properties/BaseMap.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/properties/BaseMap.java?view=diff&r1=155997&r2=155998
==============================================================================
--- 
incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/properties/BaseMap.java
 (original)
+++ 
incubator/beehive/trunk/controls/src/api/org/apache/beehive/controls/api/properties/BaseMap.java
 Wed Mar  2 17:58:57 2005
@@ -22,6 +22,7 @@
 import org.apache.beehive.controls.api.bean.ControlBean;
 import org.apache.beehive.controls.api.bean.ControlExtension;
 import org.apache.beehive.controls.api.bean.ControlInterface;
+import org.apache.beehive.controls.api.bean.ExternalPropertySets;
 
 /**
  * The BaseMap class provide an abstract base PropertyMap class from which 
other
@@ -113,6 +114,24 @@
             if (declaringClass != null &&
                 declaringClass.isAssignableFrom(checkClass))
                 return true;
+
+            // External property sets have no declaring class
+            if (declaringClass == null)
+            {
+                ExternalPropertySets eps = (ExternalPropertySets) 
checkClass.getAnnotation(ExternalPropertySets.class);
+                if (eps != null)
+                {
+                    Class[] propSets = eps.value();
+                    if (propSets != null)
+                    {
+                        for (Class ps : propSets)
+                        {
+                            if (_mapClass.equals(ps))
+                                return true;
+                        }
+                    }
+                }
+            }
         }
 
         return false;
@@ -133,7 +152,7 @@
     public synchronized void setDelegateMap(PropertyMap delegateMap)
     {
         if (!isCompatibleClass(delegateMap.getMapClass()))
-            throw new IllegalArgumentException("The delegate map is an 
incompatible type");
+            throw new IllegalArgumentException("The delegate map type (" + 
delegateMap.getMapClass() + " is an incompatible type with " + _mapClass);
 
         _delegateMap = delegateMap;
     }

Modified: 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java?view=diff&r1=155997&r2=155998
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java
 (original)
+++ 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/instantiate/TestInstantiate.java
 Wed Mar  2 17:58:57 2005
@@ -149,7 +149,7 @@
        /**
         * Tests programmically instantiating a control with an external 
declared propertySet
         */
-       @Freq("detailed")
+       @Freq("checkin")
        @Status("active")
     public void testProgramWithExtProperty() throws Exception
     {


Reply via email to