James Xu created STORM-72:
-----------------------------
Summary: Storm Conf convert value to int fail
Key: STORM-72
URL: https://issues.apache.org/jira/browse/STORM-72
Project: Apache Storm (Incubating)
Issue Type: Improvement
Reporter: James Xu
Priority: Minor
https://github.com/nathanmarz/storm/issues/588
./storm jar my.jar my.MainClass args1=argsValue1 ... -c nimbus.thirft.port=7777
so my stormConf will include a hash entry['nimbus.thirft.port']='7777'
but the method of util convert Object to int has a bug:
https://github.com/nathanmarz/storm/blob/master/storm-core/src/jvm/backtype/storm/utils/Utils.java#L270
public static Integer getInt(Object o) {
if(o instanceof Long) {
return ((Long) o ).intValue();
} else if (o instanceof Integer) {
return (Integer) o;
} else if (o instanceof Short) {
return ((Short) o).intValue();
} else {
throw new IllegalArgumentException("Don't know how to convert " + o
+ " + to int");
}
}
call from
https://github.com/nathanmarz/storm/blob/master/storm-core/src/jvm/backtype/storm/utils/NimbusClient.java#L18
public static NimbusClient getConfiguredClient(Map conf) {
try {
String nimbusHost = (String) conf.get(Config.NIMBUS_HOST);
int nimbusPort = Utils.getInt(conf.get(Config.NIMBUS_THRIFT_PORT));
return new NimbusClient(conf, nimbusHost, nimbusPort);
} catch (TTransportException ex) {
throw new RuntimeException(ex);
}
}
my mind add code:
else if (o instanceof String) {
return Integer.valueOf((String) o);
}
public static Integer getInt(Object o) {
if(o instanceof Long) {
return ((Long) o ).intValue();
} else if (o instanceof Integer) {
return (Integer) o;
} else if (o instanceof Short) {
return ((Short) o).intValue();
} else if (o instanceof String) {
return Integer.valueOf((String) o);
} else {
throw new IllegalArgumentException("Don't know how to convert " + o
+ " + to int");
}
}
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)