[
https://issues.apache.org/jira/browse/STORM-72?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13985009#comment-13985009
]
Jonathan Reichhold commented on STORM-72:
-----------------------------------------
int nimbusPort = Utils.getInt(conf.get(Config.NIMBUS_THRIFT_PORT)); on line 35
of NimbusClient calls this with a string if passed from the command line.
Simple fix is the following:
diff --git a/storm-core/src/jvm/backtype/storm/utils/Utils.java
b/storm-core/src/jvm/backtype/storm/utils/Utils.java
index a1fed96..c32c508 100644
--- a/storm-core/src/jvm/backtype/storm/utils/Utils.java
+++ b/storm-core/src/jvm/backtype/storm/utils/Utils.java
@@ -307,6 +307,8 @@ public class Utils {
return (Integer) o;
} else if (o instanceof Short) {
return ((Short) o).intValue();
+ } else if (o instaceof String) {
+ return Integer.parseInt(o);
} else {
throw new IllegalArgumentException("Don't know how to convert " +
o + " + to int");
}
> 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.2#6252)