storm-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "caofangkun (JIRA)" <j...@apache.org>
Subject [jira] [Created] (STORM-378) SleepSpoutWaitStrategy.emptyEmit should use the variable "streak"
Date Tue, 01 Jul 2014 02:55:25 GMT
caofangkun created STORM-378:
--------------------------------

             Summary: SleepSpoutWaitStrategy.emptyEmit should use  the variable "streak"
                 Key: STORM-378
                 URL: https://issues.apache.org/jira/browse/STORM-378
             Project: Apache Storm (Incubating)
          Issue Type: Bug
    Affects Versions: 0.9.2-incubating
            Reporter: 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.2#6252)

Mime
View raw message