You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@storm.apache.org by "caofangkun (JIRA)" <ji...@apache.org> on 2015/01/09 03:09:35 UTC

[jira] [Closed] (STORM-378) SleepSpoutWaitStrategy.emptyEmit should use the variable "streak"

     [ https://issues.apache.org/jira/browse/STORM-378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

caofangkun closed STORM-378.
----------------------------
    Resolution: Not a Problem
      Assignee: caofangkun

> SleepSpoutWaitStrategy.emptyEmit should use  the variable "streak"
> ------------------------------------------------------------------
>
>                 Key: STORM-378
>                 URL: https://issues.apache.org/jira/browse/STORM-378
>             Project: Apache Storm
>          Issue Type: Bug
>    Affects Versions: 0.9.2-incubating
>            Reporter: caofangkun
>            Assignee: caofangkun
>            Priority: Minor
>
> {code:java}
> Index: src/jvm/backtype/storm/spout/SleepSpoutWaitStrategy.java
> ===================================================================
> --- src/jvm/backtype/storm/spout/SleepSpoutWaitStrategy.java	(revision 2868)
> +++ src/jvm/backtype/storm/spout/SleepSpoutWaitStrategy.java	(working copy)
> @@ -18,6 +18,8 @@
>  package backtype.storm.spout;
>  
>  import backtype.storm.Config;
> +import backtype.storm.utils.Utils;
> +
>  import java.util.Map;
>  
>  
> @@ -27,13 +29,14 @@
>      
>      @Override
>      public void prepare(Map conf) {
> -        sleepMillis = ((Number) conf.get(Config.TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS)).longValue();
> +        sleepMillis = Utils.getLong(
> +            conf.get(Config.TOPOLOGY_SLEEP_SPOUT_WAIT_STRATEGY_TIME_MS), 500);
>      }
>  
>      @Override
>      public void emptyEmit(long streak) {
>          try {
> -            Thread.sleep(sleepMillis);
> +            Thread.sleep(Math.abs(sleepMillis + streak));
>          } catch (InterruptedException e) {
>              throw new RuntimeException(e);
>          }
> Index: src/jvm/backtype/storm/utils/Utils.java
> ===================================================================
> --- src/jvm/backtype/storm/utils/Utils.java	(revision 2888)
> +++ src/jvm/backtype/storm/utils/Utils.java	(working copy)
> @@ -325,6 +325,24 @@
>            throw new IllegalArgumentException("Don't know how to convert " + o + " + to int");
>        }
>      }
> +    
> +    public static Long getLong(Object o, long defaultValue) {
> +
> +      if (o == null) {
> +        return defaultValue;
> +      }
> +
> +      if (o instanceof String) {
> +        return Long.valueOf(String.valueOf(o));
> +      } else if (o instanceof Integer) {
> +        Integer value = (Integer) o;
> +        return Long.valueOf((Integer) value);
> +      } else if (o instanceof Long) {
> +        return (Long) o;
> +      } else {
> +        return defaultValue;
> +      }
> +    }
>  
>      public static boolean getBoolean(Object o, boolean defaultValue) {
>        if (null == o) {
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)