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;
}