Added:
trunk/lib/google-collect-snapshot-20071022.jar (contents, props
changed)
Modified:
trunk/src/com/flaptor/clusterfest/ClusterManager.java
trunk/src/com/flaptor/clusterfest/ClusterfestServlet.java
trunk/src/com/flaptor/clusterfest/WebModule.java
trunk/src/com/flaptor/clusterfest/chart/ChartModule.java
Log:
Fixed the Chart Module
Added: trunk/lib/google-collect-snapshot-20071022.jar
==============================================================================
Binary file. No diff available.
Modified: trunk/src/com/flaptor/clusterfest/ClusterManager.java
==============================================================================
--- trunk/src/com/flaptor/clusterfest/ClusterManager.java (original)
+++ trunk/src/com/flaptor/clusterfest/ClusterManager.java Thu Nov 6
10:40:50 2008
@@ -34,18 +34,20 @@
import com.flaptor.util.MultiExecutor;
import com.flaptor.util.Pair;
+import com.google.common.base.Preconditions;
+
/**
* Manages a cluster. Contains the representation of a cluster as a list
of nodes.
* Here you can register nodes and all the different modules of the
framework (monitoring, control, etc)
* will get access to them. Also contains the list of modules that access
the nodes.
*
- * @author Martin Massera
+ * @author Martin Massera, Spike
*/
public class ClusterManager {
private static final Logger logger =
Logger.getLogger(com.flaptor.util.Execute.whoAmI());
- static MultiExecutor multiExecutor = new
MultiExecutor(40, "clusterfest");
+ static MultiExecutor multiExecutor = new
MultiExecutor(40, "clusterfest-nodeUpdater");
ScheduledThreadPoolExecutor scheduler = new
ScheduledThreadPoolExecutor(1);
private static class InitializiationOnDemandHolder {
@@ -88,7 +90,10 @@
public void run() {
try {
updateNodes();
- } catch (Throwable t) {logger.fatal("EXCEPTION IN NODE
UPDATER THREAD", t);}
+ } catch (Throwable t) {
+ logger.fatal("EXCEPTION IN NODE UPDATER THREAD", t);
+ System.exit(-1);
+ }
}
}, interval, interval, TimeUnit.SECONDS);
}
@@ -188,10 +193,11 @@
}
multiExecutor.addExecution(execution);
try {
- execution.waitFor(60000);
+ execution.waitFor(30000);
} catch (InterruptedException e) {
- logger.error("nodes took too long to update");
+ logger.error("One or more nodes took too long to update");
}
+ execution.forget();
}
/**
@@ -268,8 +274,14 @@
return null;
}
public WebModule getModuleForPage(String page) {
+ Preconditions.checkNotNull(page, "page cannot be null");
for (WebModule wm : webModules) {
- if (wm.getPages().contains(page)) return wm;
+ List<String> pages = wm.getPages();
+ if (null == pages) {
+ logger.error("getModuleForPage: page is null. webModule
is " + wm);
+ } else {
+ if (pages.contains(page)) return wm;
+ }
}
return null;
}
Modified: trunk/src/com/flaptor/clusterfest/ClusterfestServlet.java
==============================================================================
--- trunk/src/com/flaptor/clusterfest/ClusterfestServlet.java (original)
+++ trunk/src/com/flaptor/clusterfest/ClusterfestServlet.java Thu Nov 6
10:40:50 2008
@@ -16,7 +16,6 @@
import com.flaptor.util.web.MVCServlet;
/**
- * Servlet for the clarin webapp
*/
public class ClusterfestServlet extends MVCServlet {
Modified: trunk/src/com/flaptor/clusterfest/WebModule.java
==============================================================================
--- trunk/src/com/flaptor/clusterfest/WebModule.java (original)
+++ trunk/src/com/flaptor/clusterfest/WebModule.java Thu Nov 6 10:40:50
2008
@@ -61,8 +61,7 @@
/**
* @return a list of pages that this server attends, these pages will
have .do suffix appended:
- *
- * "foo", "bar" --> "foo.do" "bar.do"
+ * "foo", "bar" --> "foo.do" "bar.do". Must not return null, return an
empty list instead.
*/
List<String> getPages();
Modified: trunk/src/com/flaptor/clusterfest/chart/ChartModule.java
==============================================================================
--- trunk/src/com/flaptor/clusterfest/chart/ChartModule.java (original)
+++ trunk/src/com/flaptor/clusterfest/chart/ChartModule.java Thu Nov 6
10:40:50 2008
@@ -17,6 +17,8 @@
import com.flaptor.util.remote.WebServer;
import com.flaptor.util.timeplot.TimePlotUtils;
+import com.google.common.base.Preconditions;
+
/**
* Simple (web)module that displays a chart
* @author Martin Massera
@@ -25,9 +27,10 @@
private static final String[] COLORS = new
String[]{"FF2233", "0785A9", "FFBF00", "CC99FF", "440373", "666666", "00CC66", "CC0033", "33FFFF", "FF6666"};
- private String pageName;
+ private final String pageName;
public ChartModule(String pageName) {
+ Preconditions.checkNotNull(pageName, "pageName cannot be null");
this.pageName = pageName;
}