fix npe when component configuration for spout is null
diff --git a/src/jvm/backtype/storm/drpc/DRPCSpout.java b/src/jvm/backtype/storm/drpc/DRPCSpout.java
index cbbc501..d8aa512 100644
--- a/src/jvm/backtype/storm/drpc/DRPCSpout.java
+++ b/src/jvm/backtype/storm/drpc/DRPCSpout.java
@@ -149,6 +149,6 @@
@Override
public Map<String, Object> getComponentConfiguration() {
- return new HashMap<String, Object>();
+ return null;
}
}
diff --git a/src/jvm/backtype/storm/task/TopologyContext.java b/src/jvm/backtype/storm/task/TopologyContext.java
index 9b7b69f..667d36e 100644
--- a/src/jvm/backtype/storm/task/TopologyContext.java
+++ b/src/jvm/backtype/storm/task/TopologyContext.java
@@ -332,10 +332,13 @@
Integer max = Utils.getInt(topologyConfig.get(Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS));
for(String spout: getRawTopology().get_spouts().keySet()) {
ComponentCommon common = getComponentCommon(spout);
- Map conf = (Map) JSONValue.parse(common.get_json_conf());
- Object comp = conf.get(Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS);
- if(comp!=null) {
- max = Math.max(Utils.getInt(comp), max);
+ String jsonConf = common.get_json_conf();
+ if(jsonConf!=null) {
+ Map conf = (Map) JSONValue.parse(jsonConf);
+ Object comp = conf.get(Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS);
+ if(comp!=null) {
+ max = Math.max(Utils.getInt(comp), max);
+ }
}
}
return max;
diff --git a/src/jvm/backtype/storm/testing/TestWordSpout.java b/src/jvm/backtype/storm/testing/TestWordSpout.java
index f6cd541..68560a1 100644
--- a/src/jvm/backtype/storm/testing/TestWordSpout.java
+++ b/src/jvm/backtype/storm/testing/TestWordSpout.java
@@ -57,10 +57,12 @@
@Override
public Map<String, Object> getComponentConfiguration() {
- Map<String, Object> ret = new HashMap<String, Object>();
if(!_isDistributed) {
+ Map<String, Object> ret = new HashMap<String, Object>();
ret.put(Config.TOPOLOGY_MAX_TASK_PARALLELISM, 1);
+ return ret;
+ } else {
+ return null;
}
- return ret;
}
}
\ No newline at end of file