Github user revans2 commented on a diff in the pull request:
https://github.com/apache/storm/pull/2385#discussion_r149160853
--- Diff:
storm-server/src/main/java/org/apache/storm/daemon/supervisor/timer/SupervisorHeartbeat.java
---
@@ -73,11 +75,23 @@ private SupervisorInfo buildSupervisorInfo(Map<String,
Object> conf, Supervisor
private Map<String, Double> mkSupervisorCapacities(Map<String, Object>
conf) {
Map<String, Double> ret = new HashMap<String, Double>();
+ // Put in legacy values
Double mem =
ObjectReader.getDouble(conf.get(Config.SUPERVISOR_MEMORY_CAPACITY_MB), 4096.0);
ret.put(Config.SUPERVISOR_MEMORY_CAPACITY_MB, mem);
Double cpu =
ObjectReader.getDouble(conf.get(Config.SUPERVISOR_CPU_CAPACITY), 400.0);
ret.put(Config.SUPERVISOR_CPU_CAPACITY, cpu);
- return ret;
+
+
+ // If configs are present in Generic map and legacy - the legacy
values will be overwritten
+ Map<String, Double> resourcesMap = (Map<String,Double>)
conf.get(Config.SUPERVISOR_RESOURCES_MAP);
--- End diff --
This is not guaranteed to be a Double. It is guaranteed to be a Number.
So we need to convert it with something like.
```
if (resourcesMap != null) {
for (Map.Entry<String, Number> stringNumberEntry :
resourcesMap.entrySet()) {
ret.put(stringNumberEntry.getKey(),
stringNumberEntry.getValue().doubleValue());
}
}
```
---