Author: johnh
Date: Thu Apr 16 01:33:54 2009
New Revision: 765446

URL: http://svn.apache.org/viewvc?rev=765446&view=rev
Log:
Refinement to SHINDIG-969. Throw IllegalStateException when retreiving 
Gadget.getAllFeatures() when the Gadget has no GadgetFeatureRegistry set. 
Suggested by Adam Winer.


Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java?rev=765446&r1=765445&r2=765446&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
 Thu Apr 16 01:33:54 2009
@@ -95,14 +95,20 @@
    */
   private List<String> allGadgetFeatures;
   public synchronized List<String> getAllFeatures() {
-    if (allGadgetFeatures == null && gadgetFeatureRegistry != null) {
-      allGadgetFeatures = Lists.newArrayList();
-      for (GadgetFeature gadgetFeature :
-             
gadgetFeatureRegistry.getFeatures(this.spec.getModulePrefs().getFeatures().keySet()))
 {
-        allGadgetFeatures.add(gadgetFeature.getName());
+    if (allGadgetFeatures == null) {
+      if (gadgetFeatureRegistry != null) {
+        allGadgetFeatures = Lists.newArrayList();
+        for (GadgetFeature gadgetFeature :
+               gadgetFeatureRegistry.getFeatures(
+                   this.spec.getModulePrefs().getFeatures().keySet())) {
+          allGadgetFeatures.add(gadgetFeature.getName());
+        }
+        // now all features are in reverse order of dependency. So reverse the 
list.
+        Collections.reverse(allGadgetFeatures);
+      } else {
+        throw new IllegalStateException(
+            "setGadgetFeatureRegistry must be called before 
Gadget.getAllFeatures()");
       }
-      // now all features are in reverse order of dependency. So reverse the 
list.
-      Collections.reverse(allGadgetFeatures);
     }
     return allGadgetFeatures;
   }


Reply via email to