You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2015/03/18 20:39:18 UTC

[11/16] storm git commit: Regenrated the files using thrift-0.9.2 and fixed some bugs introduced by upmerging.

Regenrated the files using thrift-0.9.2 and fixed some bugs introduced by upmerging.


Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/539a6a21
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/539a6a21
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/539a6a21

Branch: refs/heads/master
Commit: 539a6a21464acada9d051b3d5ce67990ffa2a239
Parents: 5b67b57
Author: Parth Brahmbhatt <br...@gmail.com>
Authored: Thu Mar 5 17:21:54 2015 -0800
Committer: Parth Brahmbhatt <br...@gmail.com>
Committed: Thu Mar 5 22:01:14 2015 -0800

----------------------------------------------------------------------
 storm-core/src/clj/backtype/storm/config.clj    |   2 +-
 .../src/clj/backtype/storm/daemon/nimbus.clj    |   2 +-
 .../src/clj/backtype/storm/daemon/worker.clj    |   1 -
 .../backtype/storm/generated/Assignment.java    | 626 ++++++++------
 .../backtype/storm/generated/ExecutorStats.java | 105 ++-
 .../jvm/backtype/storm/generated/NodeInfo.java  | 245 ++++--
 .../jvm/backtype/storm/generated/StormBase.java | 577 ++++++++-----
 .../storm/generated/SupervisorInfo.java         | 648 +++++++++------
 .../storm/generated/TopologyActionOptions.java  |  76 +-
 .../storm/generated/TopologyStatus.java         |   3 +-
 .../storm/generated/ZKWorkerHeartbeat.java      | 307 ++++---
 storm-core/src/py/storm/ttypes.py               | 827 ++++++++++++++++++-
 12 files changed, 2505 insertions(+), 914 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/clj/backtype/storm/config.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/config.clj b/storm-core/src/clj/backtype/storm/config.clj
index 5e7893b..a345daf 100644
--- a/storm-core/src/clj/backtype/storm/config.clj
+++ b/storm-core/src/clj/backtype/storm/config.clj
@@ -212,7 +212,7 @@
   (let [stormroot (supervisor-stormdist-root conf storm-id)
         conf-path (supervisor-stormconf-path stormroot)
         topology-path (supervisor-stormcode-path stormroot)]
-    (merge conf (clojurify-structure (Utils/javaDeserialize (FileUtils/readFileToByteArray (File. conf-path)))))))
+    (merge conf (clojurify-structure (Utils/javaDeserialize (FileUtils/readFileToByteArray (File. conf-path)) java.util.Map)))))
 
 (defn read-supervisor-topology
   [conf storm-id]

http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/daemon/nimbus.clj b/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
index 2c7b82c..fdc54cc 100644
--- a/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
+++ b/storm-core/src/clj/backtype/storm/daemon/nimbus.clj
@@ -19,7 +19,7 @@
   (:import [org.apache.thrift.exception])
   (:import [org.apache.thrift.transport TNonblockingServerTransport TNonblockingServerSocket])
   (:import [org.apache.commons.io FileUtils])
-  (:import [java.nio ByteBuffer])
+  (:import [java.nio ByteBuffer]
            [java.util Collections HashMap])
   (:import [java.io FileNotFoundException File FileOutputStream])
   (:import [java.nio.channels Channels WritableByteChannel])

http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/clj/backtype/storm/daemon/worker.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/daemon/worker.clj b/storm-core/src/clj/backtype/storm/daemon/worker.clj
index 88b14d8..e0263d6 100644
--- a/storm-core/src/clj/backtype/storm/daemon/worker.clj
+++ b/storm-core/src/clj/backtype/storm/daemon/worker.clj
@@ -25,7 +25,6 @@
   (:import [backtype.storm.utils Utils TransferDrainer ThriftTopologyUtils])
   (:import [backtype.storm.messaging TransportFactory])
   (:import [backtype.storm.messaging TaskMessage IContext IConnection ConnectionWithStatus ConnectionWithStatus$Status])
-  (:import [backtype.storm.daemon.common WorkerHeartbeat])
   (:import [backtype.storm.daemon Shutdownable])
   (:import [backtype.storm.serialization KryoTupleSerializer])
   (:import [backtype.storm.generated StormTopology])

http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/jvm/backtype/storm/generated/Assignment.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/Assignment.java b/storm-core/src/jvm/backtype/storm/generated/Assignment.java
index b6ade94..2e6e8a3 100644
--- a/storm-core/src/jvm/backtype/storm/generated/Assignment.java
+++ b/storm-core/src/jvm/backtype/storm/generated/Assignment.java
@@ -16,13 +16,24 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.7.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
  */
 package backtype.storm.generated;
 
-import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
@@ -35,10 +46,13 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class Assignment implements org.apache.thrift.TBase<Assignment, Assignment._Fields>, java.io.Serializable, Cloneable {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-3-5")
+public class Assignment implements org.apache.thrift.TBase<Assignment, Assignment._Fields>, java.io.Serializable, Cloneable, Comparable<Assignment> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Assignment");
 
   private static final org.apache.thrift.protocol.TField MASTER_CODE_DIR_FIELD_DESC = new org.apache.thrift.protocol.TField("master_code_dir", org.apache.thrift.protocol.TType.STRING, (short)1);
@@ -46,10 +60,16 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
   private static final org.apache.thrift.protocol.TField EXECUTOR_NODE_PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("executor_node_port", org.apache.thrift.protocol.TType.MAP, (short)3);
   private static final org.apache.thrift.protocol.TField EXECUTOR_START_TIME_SECS_FIELD_DESC = new org.apache.thrift.protocol.TField("executor_start_time_secs", org.apache.thrift.protocol.TType.MAP, (short)4);
 
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AssignmentStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AssignmentTupleSchemeFactory());
+  }
+
   private String master_code_dir; // required
-  private Map<String,String> node_host; // required
-  private Map<List<Long>,NodeInfo> executor_node_port; // required
-  private Map<List<Long>,Long> executor_start_time_secs; // required
+  private Map<String,String> node_host; // optional
+  private Map<List<Long>,NodeInfo> executor_node_port; // optional
+  private Map<List<Long>,Long> executor_start_time_secs; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -119,25 +139,25 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
   }
 
   // isset id assignments
-
+  private static final _Fields optionals[] = {_Fields.NODE_HOST,_Fields.EXECUTOR_NODE_PORT,_Fields.EXECUTOR_START_TIME_SECS};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.MASTER_CODE_DIR, new org.apache.thrift.meta_data.FieldMetaData("master_code_dir", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.MASTER_CODE_DIR, new org.apache.thrift.meta_data.FieldMetaData("master_code_dir", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.NODE_HOST, new org.apache.thrift.meta_data.FieldMetaData("node_host", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
-            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING),
+    tmpMap.put(_Fields.NODE_HOST, new org.apache.thrift.meta_data.FieldMetaData("node_host", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
-    tmpMap.put(_Fields.EXECUTOR_NODE_PORT, new org.apache.thrift.meta_data.FieldMetaData("executor_node_port", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
-            new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
-                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)),
+    tmpMap.put(_Fields.EXECUTOR_NODE_PORT, new org.apache.thrift.meta_data.FieldMetaData("executor_node_port", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)), 
             new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, NodeInfo.class))));
-    tmpMap.put(_Fields.EXECUTOR_START_TIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("executor_start_time_secs", org.apache.thrift.TFieldRequirementType.OPTIONAL,
-        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP,
-            new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST,
-                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)),
+    tmpMap.put(_Fields.EXECUTOR_START_TIME_SECS, new org.apache.thrift.meta_data.FieldMetaData("executor_start_time_secs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+            new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)), 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Assignment.class, metaDataMap);
@@ -167,31 +187,17 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
       this.master_code_dir = other.master_code_dir;
     }
     if (other.is_set_node_host()) {
-      Map<String,String> __this__node_host = new HashMap<String,String>();
-      for (Map.Entry<String, String> other_element : other.node_host.entrySet()) {
-
-        String other_element_key = other_element.getKey();
-        String other_element_value = other_element.getValue();
-
-        String __this__node_host_copy_key = other_element_key;
-
-        String __this__node_host_copy_value = other_element_value;
-
-        __this__node_host.put(__this__node_host_copy_key, __this__node_host_copy_value);
-      }
+      Map<String,String> __this__node_host = new HashMap<String,String>(other.node_host);
       this.node_host = __this__node_host;
     }
     if (other.is_set_executor_node_port()) {
-      Map<List<Long>,NodeInfo> __this__executor_node_port = new HashMap<List<Long>,NodeInfo>();
+      Map<List<Long>,NodeInfo> __this__executor_node_port = new HashMap<List<Long>,NodeInfo>(other.executor_node_port.size());
       for (Map.Entry<List<Long>, NodeInfo> other_element : other.executor_node_port.entrySet()) {
 
         List<Long> other_element_key = other_element.getKey();
         NodeInfo other_element_value = other_element.getValue();
 
-        List<Long> __this__executor_node_port_copy_key = new ArrayList<Long>();
-        for (Long other_element_key_element : other_element_key) {
-          __this__executor_node_port_copy_key.add(other_element_key_element);
-        }
+        List<Long> __this__executor_node_port_copy_key = new ArrayList<Long>(other_element_key);
 
         NodeInfo __this__executor_node_port_copy_value = new NodeInfo(other_element_value);
 
@@ -200,16 +206,13 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
       this.executor_node_port = __this__executor_node_port;
     }
     if (other.is_set_executor_start_time_secs()) {
-      Map<List<Long>,Long> __this__executor_start_time_secs = new HashMap<List<Long>,Long>();
+      Map<List<Long>,Long> __this__executor_start_time_secs = new HashMap<List<Long>,Long>(other.executor_start_time_secs.size());
       for (Map.Entry<List<Long>, Long> other_element : other.executor_start_time_secs.entrySet()) {
 
         List<Long> other_element_key = other_element.getKey();
         Long other_element_value = other_element.getValue();
 
-        List<Long> __this__executor_start_time_secs_copy_key = new ArrayList<Long>();
-        for (Long other_element_key_element : other_element_key) {
-          __this__executor_start_time_secs_copy_key.add(other_element_key_element);
-        }
+        List<Long> __this__executor_start_time_secs_copy_key = new ArrayList<Long>(other_element_key);
 
         Long __this__executor_start_time_secs_copy_value = other_element_value;
 
@@ -487,75 +490,75 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
 
   @Override
   public int hashCode() {
-    HashCodeBuilder builder = new HashCodeBuilder();
+    List<Object> list = new ArrayList<Object>();
 
     boolean present_master_code_dir = true && (is_set_master_code_dir());
-    builder.append(present_master_code_dir);
+    list.add(present_master_code_dir);
     if (present_master_code_dir)
-      builder.append(master_code_dir);
+      list.add(master_code_dir);
 
     boolean present_node_host = true && (is_set_node_host());
-    builder.append(present_node_host);
+    list.add(present_node_host);
     if (present_node_host)
-      builder.append(node_host);
+      list.add(node_host);
 
     boolean present_executor_node_port = true && (is_set_executor_node_port());
-    builder.append(present_executor_node_port);
+    list.add(present_executor_node_port);
     if (present_executor_node_port)
-      builder.append(executor_node_port);
+      list.add(executor_node_port);
 
     boolean present_executor_start_time_secs = true && (is_set_executor_start_time_secs());
-    builder.append(present_executor_start_time_secs);
+    list.add(present_executor_start_time_secs);
     if (present_executor_start_time_secs)
-      builder.append(executor_start_time_secs);
+      list.add(executor_start_time_secs);
 
-    return builder.toHashCode();
+    return list.hashCode();
   }
 
+  @Override
   public int compareTo(Assignment other) {
     if (!getClass().equals(other.getClass())) {
       return getClass().getName().compareTo(other.getClass().getName());
     }
 
     int lastComparison = 0;
-    Assignment typedOther = (Assignment)other;
 
-    lastComparison = Boolean.valueOf(is_set_master_code_dir()).compareTo(typedOther.is_set_master_code_dir());
+    lastComparison = Boolean.valueOf(is_set_master_code_dir()).compareTo(other.is_set_master_code_dir());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_master_code_dir()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.master_code_dir, typedOther.master_code_dir);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.master_code_dir, other.master_code_dir);
       if (lastComparison != 0) {
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(is_set_node_host()).compareTo(typedOther.is_set_node_host());
+    lastComparison = Boolean.valueOf(is_set_node_host()).compareTo(other.is_set_node_host());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_node_host()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.node_host, typedOther.node_host);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.node_host, other.node_host);
       if (lastComparison != 0) {
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(is_set_executor_node_port()).compareTo(typedOther.is_set_executor_node_port());
+    lastComparison = Boolean.valueOf(is_set_executor_node_port()).compareTo(other.is_set_executor_node_port());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_executor_node_port()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executor_node_port, typedOther.executor_node_port);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executor_node_port, other.executor_node_port);
       if (lastComparison != 0) {
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(is_set_executor_start_time_secs()).compareTo(typedOther.is_set_executor_start_time_secs());
+    lastComparison = Boolean.valueOf(is_set_executor_start_time_secs()).compareTo(other.is_set_executor_start_time_secs());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_executor_start_time_secs()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executor_start_time_secs, typedOther.executor_start_time_secs);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.executor_start_time_secs, other.executor_start_time_secs);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -568,179 +571,11 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
   }
 
   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    org.apache.thrift.protocol.TField field;
-    iprot.readStructBegin();
-    while (true)
-    {
-      field = iprot.readFieldBegin();
-      if (field.type == org.apache.thrift.protocol.TType.STOP) {
-        break;
-      }
-      switch (field.id) {
-        case 1: // MASTER_CODE_DIR
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.master_code_dir = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 2: // NODE_HOST
-          if (field.type == org.apache.thrift.protocol.TType.MAP) {
-            {
-              org.apache.thrift.protocol.TMap _map185 = iprot.readMapBegin();
-              this.node_host = new HashMap<String,String>(2*_map185.size);
-              for (int _i186 = 0; _i186 < _map185.size; ++_i186)
-              {
-                String _key187; // required
-                String _val188; // required
-                _key187 = iprot.readString();
-                _val188 = iprot.readString();
-                this.node_host.put(_key187, _val188);
-              }
-              iprot.readMapEnd();
-            }
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 3: // EXECUTOR_NODE_PORT
-          if (field.type == org.apache.thrift.protocol.TType.MAP) {
-            {
-              org.apache.thrift.protocol.TMap _map189 = iprot.readMapBegin();
-              this.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map189.size);
-              for (int _i190 = 0; _i190 < _map189.size; ++_i190)
-              {
-                List<Long> _key191; // required
-                NodeInfo _val192; // required
-                {
-                  org.apache.thrift.protocol.TList _list193 = iprot.readListBegin();
-                  _key191 = new ArrayList<Long>(_list193.size);
-                  for (int _i194 = 0; _i194 < _list193.size; ++_i194)
-                  {
-                    long _elem195; // required
-                    _elem195 = iprot.readI64();
-                    _key191.add(_elem195);
-                  }
-                  iprot.readListEnd();
-                }
-                _val192 = new NodeInfo();
-                _val192.read(iprot);
-                this.executor_node_port.put(_key191, _val192);
-              }
-              iprot.readMapEnd();
-            }
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 4: // EXECUTOR_START_TIME_SECS
-          if (field.type == org.apache.thrift.protocol.TType.MAP) {
-            {
-              org.apache.thrift.protocol.TMap _map196 = iprot.readMapBegin();
-              this.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map196.size);
-              for (int _i197 = 0; _i197 < _map196.size; ++_i197)
-              {
-                List<Long> _key198; // required
-                long _val199; // required
-                {
-                  org.apache.thrift.protocol.TList _list200 = iprot.readListBegin();
-                  _key198 = new ArrayList<Long>(_list200.size);
-                  for (int _i201 = 0; _i201 < _list200.size; ++_i201)
-                  {
-                    long _elem202; // required
-                    _elem202 = iprot.readI64();
-                    _key198.add(_elem202);
-                  }
-                  iprot.readListEnd();
-                }
-                _val199 = iprot.readI64();
-                this.executor_start_time_secs.put(_key198, _val199);
-              }
-              iprot.readMapEnd();
-            }
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        default:
-          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-      }
-      iprot.readFieldEnd();
-    }
-    iprot.readStructEnd();
-    validate();
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
   }
 
   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    validate();
-
-    oprot.writeStructBegin(STRUCT_DESC);
-    if (this.master_code_dir != null) {
-      oprot.writeFieldBegin(MASTER_CODE_DIR_FIELD_DESC);
-      oprot.writeString(this.master_code_dir);
-      oprot.writeFieldEnd();
-    }
-    if (this.node_host != null) {
-      if (is_set_node_host()) {
-        oprot.writeFieldBegin(NODE_HOST_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, this.node_host.size()));
-          for (Map.Entry<String, String> _iter203 : this.node_host.entrySet())
-          {
-            oprot.writeString(_iter203.getKey());
-            oprot.writeString(_iter203.getValue());
-          }
-          oprot.writeMapEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-    }
-    if (this.executor_node_port != null) {
-      if (is_set_executor_node_port()) {
-        oprot.writeFieldBegin(EXECUTOR_NODE_PORT_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, this.executor_node_port.size()));
-          for (Map.Entry<List<Long>, NodeInfo> _iter204 : this.executor_node_port.entrySet())
-          {
-            {
-              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter204.getKey().size()));
-              for (long _iter205 : _iter204.getKey())
-              {
-                oprot.writeI64(_iter205);
-              }
-              oprot.writeListEnd();
-            }
-            _iter204.getValue().write(oprot);
-          }
-          oprot.writeMapEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-    }
-    if (this.executor_start_time_secs != null) {
-      if (is_set_executor_start_time_secs()) {
-        oprot.writeFieldBegin(EXECUTOR_START_TIME_SECS_FIELD_DESC);
-        {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, this.executor_start_time_secs.size()));
-          for (Map.Entry<List<Long>, Long> _iter206 : this.executor_start_time_secs.entrySet())
-          {
-            {
-              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter206.getKey().size()));
-              for (long _iter207 : _iter206.getKey())
-              {
-                oprot.writeI64(_iter207);
-              }
-              oprot.writeListEnd();
-            }
-            oprot.writeI64(_iter206.getValue());
-          }
-          oprot.writeMapEnd();
-        }
-        oprot.writeFieldEnd();
-      }
-    }
-    oprot.writeFieldStop();
-    oprot.writeStructEnd();
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
   }
 
   @Override
@@ -795,6 +630,7 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'master_code_dir' is unset! Struct:" + toString());
     }
 
+    // check for sub-struct validity
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -813,5 +649,335 @@ public class Assignment implements org.apache.thrift.TBase<Assignment, Assignmen
     }
   }
 
+  private static class AssignmentStandardSchemeFactory implements SchemeFactory {
+    public AssignmentStandardScheme getScheme() {
+      return new AssignmentStandardScheme();
+    }
+  }
+
+  private static class AssignmentStandardScheme extends StandardScheme<Assignment> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Assignment struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // MASTER_CODE_DIR
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.master_code_dir = iprot.readString();
+              struct.set_master_code_dir_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // NODE_HOST
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map370 = iprot.readMapBegin();
+                struct.node_host = new HashMap<String,String>(2*_map370.size);
+                String _key371;
+                String _val372;
+                for (int _i373 = 0; _i373 < _map370.size; ++_i373)
+                {
+                  _key371 = iprot.readString();
+                  _val372 = iprot.readString();
+                  struct.node_host.put(_key371, _val372);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_node_host_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 3: // EXECUTOR_NODE_PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map374 = iprot.readMapBegin();
+                struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map374.size);
+                List<Long> _key375;
+                NodeInfo _val376;
+                for (int _i377 = 0; _i377 < _map374.size; ++_i377)
+                {
+                  {
+                    org.apache.thrift.protocol.TList _list378 = iprot.readListBegin();
+                    _key375 = new ArrayList<Long>(_list378.size);
+                    long _elem379;
+                    for (int _i380 = 0; _i380 < _list378.size; ++_i380)
+                    {
+                      _elem379 = iprot.readI64();
+                      _key375.add(_elem379);
+                    }
+                    iprot.readListEnd();
+                  }
+                  _val376 = new NodeInfo();
+                  _val376.read(iprot);
+                  struct.executor_node_port.put(_key375, _val376);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_executor_node_port_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 4: // EXECUTOR_START_TIME_SECS
+            if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+              {
+                org.apache.thrift.protocol.TMap _map381 = iprot.readMapBegin();
+                struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map381.size);
+                List<Long> _key382;
+                long _val383;
+                for (int _i384 = 0; _i384 < _map381.size; ++_i384)
+                {
+                  {
+                    org.apache.thrift.protocol.TList _list385 = iprot.readListBegin();
+                    _key382 = new ArrayList<Long>(_list385.size);
+                    long _elem386;
+                    for (int _i387 = 0; _i387 < _list385.size; ++_i387)
+                    {
+                      _elem386 = iprot.readI64();
+                      _key382.add(_elem386);
+                    }
+                    iprot.readListEnd();
+                  }
+                  _val383 = iprot.readI64();
+                  struct.executor_start_time_secs.put(_key382, _val383);
+                }
+                iprot.readMapEnd();
+              }
+              struct.set_executor_start_time_secs_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Assignment struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.master_code_dir != null) {
+        oprot.writeFieldBegin(MASTER_CODE_DIR_FIELD_DESC);
+        oprot.writeString(struct.master_code_dir);
+        oprot.writeFieldEnd();
+      }
+      if (struct.node_host != null) {
+        if (struct.is_set_node_host()) {
+          oprot.writeFieldBegin(NODE_HOST_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.node_host.size()));
+            for (Map.Entry<String, String> _iter388 : struct.node_host.entrySet())
+            {
+              oprot.writeString(_iter388.getKey());
+              oprot.writeString(_iter388.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.executor_node_port != null) {
+        if (struct.is_set_executor_node_port()) {
+          oprot.writeFieldBegin(EXECUTOR_NODE_PORT_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, struct.executor_node_port.size()));
+            for (Map.Entry<List<Long>, NodeInfo> _iter389 : struct.executor_node_port.entrySet())
+            {
+              {
+                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter389.getKey().size()));
+                for (long _iter390 : _iter389.getKey())
+                {
+                  oprot.writeI64(_iter390);
+                }
+                oprot.writeListEnd();
+              }
+              _iter389.getValue().write(oprot);
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.executor_start_time_secs != null) {
+        if (struct.is_set_executor_start_time_secs()) {
+          oprot.writeFieldBegin(EXECUTOR_START_TIME_SECS_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, struct.executor_start_time_secs.size()));
+            for (Map.Entry<List<Long>, Long> _iter391 : struct.executor_start_time_secs.entrySet())
+            {
+              {
+                oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, _iter391.getKey().size()));
+                for (long _iter392 : _iter391.getKey())
+                {
+                  oprot.writeI64(_iter392);
+                }
+                oprot.writeListEnd();
+              }
+              oprot.writeI64(_iter391.getValue());
+            }
+            oprot.writeMapEnd();
+          }
+          oprot.writeFieldEnd();
+        }
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AssignmentTupleSchemeFactory implements SchemeFactory {
+    public AssignmentTupleScheme getScheme() {
+      return new AssignmentTupleScheme();
+    }
+  }
+
+  private static class AssignmentTupleScheme extends TupleScheme<Assignment> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Assignment struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.master_code_dir);
+      BitSet optionals = new BitSet();
+      if (struct.is_set_node_host()) {
+        optionals.set(0);
+      }
+      if (struct.is_set_executor_node_port()) {
+        optionals.set(1);
+      }
+      if (struct.is_set_executor_start_time_secs()) {
+        optionals.set(2);
+      }
+      oprot.writeBitSet(optionals, 3);
+      if (struct.is_set_node_host()) {
+        {
+          oprot.writeI32(struct.node_host.size());
+          for (Map.Entry<String, String> _iter393 : struct.node_host.entrySet())
+          {
+            oprot.writeString(_iter393.getKey());
+            oprot.writeString(_iter393.getValue());
+          }
+        }
+      }
+      if (struct.is_set_executor_node_port()) {
+        {
+          oprot.writeI32(struct.executor_node_port.size());
+          for (Map.Entry<List<Long>, NodeInfo> _iter394 : struct.executor_node_port.entrySet())
+          {
+            {
+              oprot.writeI32(_iter394.getKey().size());
+              for (long _iter395 : _iter394.getKey())
+              {
+                oprot.writeI64(_iter395);
+              }
+            }
+            _iter394.getValue().write(oprot);
+          }
+        }
+      }
+      if (struct.is_set_executor_start_time_secs()) {
+        {
+          oprot.writeI32(struct.executor_start_time_secs.size());
+          for (Map.Entry<List<Long>, Long> _iter396 : struct.executor_start_time_secs.entrySet())
+          {
+            {
+              oprot.writeI32(_iter396.getKey().size());
+              for (long _iter397 : _iter396.getKey())
+              {
+                oprot.writeI64(_iter397);
+              }
+            }
+            oprot.writeI64(_iter396.getValue());
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Assignment struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.master_code_dir = iprot.readString();
+      struct.set_master_code_dir_isSet(true);
+      BitSet incoming = iprot.readBitSet(3);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TMap _map398 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.node_host = new HashMap<String,String>(2*_map398.size);
+          String _key399;
+          String _val400;
+          for (int _i401 = 0; _i401 < _map398.size; ++_i401)
+          {
+            _key399 = iprot.readString();
+            _val400 = iprot.readString();
+            struct.node_host.put(_key399, _val400);
+          }
+        }
+        struct.set_node_host_isSet(true);
+      }
+      if (incoming.get(1)) {
+        {
+          org.apache.thrift.protocol.TMap _map402 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.executor_node_port = new HashMap<List<Long>,NodeInfo>(2*_map402.size);
+          List<Long> _key403;
+          NodeInfo _val404;
+          for (int _i405 = 0; _i405 < _map402.size; ++_i405)
+          {
+            {
+              org.apache.thrift.protocol.TList _list406 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
+              _key403 = new ArrayList<Long>(_list406.size);
+              long _elem407;
+              for (int _i408 = 0; _i408 < _list406.size; ++_i408)
+              {
+                _elem407 = iprot.readI64();
+                _key403.add(_elem407);
+              }
+            }
+            _val404 = new NodeInfo();
+            _val404.read(iprot);
+            struct.executor_node_port.put(_key403, _val404);
+          }
+        }
+        struct.set_executor_node_port_isSet(true);
+      }
+      if (incoming.get(2)) {
+        {
+          org.apache.thrift.protocol.TMap _map409 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.I64, iprot.readI32());
+          struct.executor_start_time_secs = new HashMap<List<Long>,Long>(2*_map409.size);
+          List<Long> _key410;
+          long _val411;
+          for (int _i412 = 0; _i412 < _map409.size; ++_i412)
+          {
+            {
+              org.apache.thrift.protocol.TList _list413 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.I64, iprot.readI32());
+              _key410 = new ArrayList<Long>(_list413.size);
+              long _elem414;
+              for (int _i415 = 0; _i415 < _list413.size; ++_i415)
+              {
+                _elem414 = iprot.readI64();
+                _key410.add(_elem414);
+              }
+            }
+            _val411 = iprot.readI64();
+            struct.executor_start_time_secs.put(_key410, _val411);
+          }
+        }
+        struct.set_executor_start_time_secs_isSet(true);
+      }
+    }
+  }
+
 }
 

http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java b/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
index d82a9cf..001fcff 100644
--- a/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
+++ b/storm-core/src/jvm/backtype/storm/generated/ExecutorStats.java
@@ -51,13 +51,14 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
-@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-2-6")
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-3-5")
 public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, ExecutorStats._Fields>, java.io.Serializable, Cloneable, Comparable<ExecutorStats> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("ExecutorStats");
 
   private static final org.apache.thrift.protocol.TField EMITTED_FIELD_DESC = new org.apache.thrift.protocol.TField("emitted", org.apache.thrift.protocol.TType.MAP, (short)1);
   private static final org.apache.thrift.protocol.TField TRANSFERRED_FIELD_DESC = new org.apache.thrift.protocol.TField("transferred", org.apache.thrift.protocol.TType.MAP, (short)2);
   private static final org.apache.thrift.protocol.TField SPECIFIC_FIELD_DESC = new org.apache.thrift.protocol.TField("specific", org.apache.thrift.protocol.TType.STRUCT, (short)3);
+  private static final org.apache.thrift.protocol.TField RATE_FIELD_DESC = new org.apache.thrift.protocol.TField("rate", org.apache.thrift.protocol.TType.DOUBLE, (short)4);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -68,12 +69,14 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
   private Map<String,Map<String,Long>> emitted; // required
   private Map<String,Map<String,Long>> transferred; // required
   private ExecutorSpecificStats specific; // required
+  private double rate; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     EMITTED((short)1, "emitted"),
     TRANSFERRED((short)2, "transferred"),
-    SPECIFIC((short)3, "specific");
+    SPECIFIC((short)3, "specific"),
+    RATE((short)4, "rate");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -94,6 +97,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
           return TRANSFERRED;
         case 3: // SPECIFIC
           return SPECIFIC;
+        case 4: // RATE
+          return RATE;
         default:
           return null;
       }
@@ -134,6 +139,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
   }
 
   // isset id assignments
+  private static final int __RATE_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -151,6 +158,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
                 new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64)))));
     tmpMap.put(_Fields.SPECIFIC, new org.apache.thrift.meta_data.FieldMetaData("specific", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExecutorSpecificStats.class)));
+    tmpMap.put(_Fields.RATE, new org.apache.thrift.meta_data.FieldMetaData("rate", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.DOUBLE)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(ExecutorStats.class, metaDataMap);
   }
@@ -161,18 +170,22 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
   public ExecutorStats(
     Map<String,Map<String,Long>> emitted,
     Map<String,Map<String,Long>> transferred,
-    ExecutorSpecificStats specific)
+    ExecutorSpecificStats specific,
+    double rate)
   {
     this();
     this.emitted = emitted;
     this.transferred = transferred;
     this.specific = specific;
+    this.rate = rate;
+    set_rate_isSet(true);
   }
 
   /**
    * Performs a deep copy on <i>other</i>.
    */
   public ExecutorStats(ExecutorStats other) {
+    __isset_bitfield = other.__isset_bitfield;
     if (other.is_set_emitted()) {
       Map<String,Map<String,Long>> __this__emitted = new HashMap<String,Map<String,Long>>(other.emitted.size());
       for (Map.Entry<String, Map<String,Long>> other_element : other.emitted.entrySet()) {
@@ -206,6 +219,7 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
     if (other.is_set_specific()) {
       this.specific = new ExecutorSpecificStats(other.specific);
     }
+    this.rate = other.rate;
   }
 
   public ExecutorStats deepCopy() {
@@ -217,6 +231,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
     this.emitted = null;
     this.transferred = null;
     this.specific = null;
+    set_rate_isSet(false);
+    this.rate = 0.0;
   }
 
   public int get_emitted_size() {
@@ -310,6 +326,28 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
     }
   }
 
+  public double get_rate() {
+    return this.rate;
+  }
+
+  public void set_rate(double rate) {
+    this.rate = rate;
+    set_rate_isSet(true);
+  }
+
+  public void unset_rate() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __RATE_ISSET_ID);
+  }
+
+  /** Returns true if field rate is set (has been assigned a value) and false otherwise */
+  public boolean is_set_rate() {
+    return EncodingUtils.testBit(__isset_bitfield, __RATE_ISSET_ID);
+  }
+
+  public void set_rate_isSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __RATE_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case EMITTED:
@@ -336,6 +374,14 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
       }
       break;
 
+    case RATE:
+      if (value == null) {
+        unset_rate();
+      } else {
+        set_rate((Double)value);
+      }
+      break;
+
     }
   }
 
@@ -350,6 +396,9 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
     case SPECIFIC:
       return get_specific();
 
+    case RATE:
+      return Double.valueOf(get_rate());
+
     }
     throw new IllegalStateException();
   }
@@ -367,6 +416,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
       return is_set_transferred();
     case SPECIFIC:
       return is_set_specific();
+    case RATE:
+      return is_set_rate();
     }
     throw new IllegalStateException();
   }
@@ -411,6 +462,15 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
         return false;
     }
 
+    boolean this_present_rate = true;
+    boolean that_present_rate = true;
+    if (this_present_rate || that_present_rate) {
+      if (!(this_present_rate && that_present_rate))
+        return false;
+      if (this.rate != that.rate)
+        return false;
+    }
+
     return true;
   }
 
@@ -433,6 +493,11 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
     if (present_specific)
       list.add(specific);
 
+    boolean present_rate = true;
+    list.add(present_rate);
+    if (present_rate)
+      list.add(rate);
+
     return list.hashCode();
   }
 
@@ -474,6 +539,16 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(is_set_rate()).compareTo(other.is_set_rate());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (is_set_rate()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.rate, other.rate);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -517,6 +592,10 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
       sb.append(this.specific);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("rate:");
+    sb.append(this.rate);
+    first = false;
     sb.append(")");
     return sb.toString();
   }
@@ -535,6 +614,10 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'specific' is unset! Struct:" + toString());
     }
 
+    if (!is_set_rate()) {
+      throw new org.apache.thrift.protocol.TProtocolException("Required field 'rate' is unset! Struct:" + toString());
+    }
+
     // check for sub-struct validity
   }
 
@@ -548,6 +631,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
 
   private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
     try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
       read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
     } catch (org.apache.thrift.TException te) {
       throw new java.io.IOException(te);
@@ -645,6 +730,14 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 4: // RATE
+            if (schemeField.type == org.apache.thrift.protocol.TType.DOUBLE) {
+              struct.rate = iprot.readDouble();
+              struct.set_rate_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -705,6 +798,9 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
         struct.specific.write(oprot);
         oprot.writeFieldEnd();
       }
+      oprot.writeFieldBegin(RATE_FIELD_DESC);
+      oprot.writeDouble(struct.rate);
+      oprot.writeFieldEnd();
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -753,6 +849,7 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
         }
       }
       struct.specific.write(oprot);
+      oprot.writeDouble(struct.rate);
     }
 
     @Override
@@ -809,6 +906,8 @@ public class ExecutorStats implements org.apache.thrift.TBase<ExecutorStats, Exe
       struct.specific = new ExecutorSpecificStats();
       struct.specific.read(iprot);
       struct.set_specific_isSet(true);
+      struct.rate = iprot.readDouble();
+      struct.set_rate_isSet(true);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/storm/blob/539a6a21/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java b/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
index f9b46e9..a71d1b4 100644
--- a/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
+++ b/storm-core/src/jvm/backtype/storm/generated/NodeInfo.java
@@ -16,13 +16,24 @@
  * limitations under the License.
  */
 /**
- * Autogenerated by Thrift Compiler (0.7.0)
+ * Autogenerated by Thrift Compiler (0.9.2)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
  */
 package backtype.storm.generated;
 
-import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import org.apache.thrift.async.AsyncMethodCallback;
+import org.apache.thrift.server.AbstractNonblockingServer.*;
 import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
@@ -35,15 +46,24 @@ import java.util.Collections;
 import java.util.BitSet;
 import java.nio.ByteBuffer;
 import java.util.Arrays;
+import javax.annotation.Generated;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fields>, java.io.Serializable, Cloneable {
+@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
+@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-3-5")
+public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fields>, java.io.Serializable, Cloneable, Comparable<NodeInfo> {
   private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("NodeInfo");
 
   private static final org.apache.thrift.protocol.TField NODE_FIELD_DESC = new org.apache.thrift.protocol.TField("node", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField PORT_FIELD_DESC = new org.apache.thrift.protocol.TField("port", org.apache.thrift.protocol.TType.SET, (short)2);
 
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new NodeInfoStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new NodeInfoTupleSchemeFactory());
+  }
+
   private String node; // required
   private Set<Long> port; // required
 
@@ -109,14 +129,13 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
   }
 
   // isset id assignments
-
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.NODE, new org.apache.thrift.meta_data.FieldMetaData("node", org.apache.thrift.TFieldRequirementType.REQUIRED,
+    tmpMap.put(_Fields.NODE, new org.apache.thrift.meta_data.FieldMetaData("node", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
-    tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData("port", org.apache.thrift.TFieldRequirementType.REQUIRED,
-        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET,
+    tmpMap.put(_Fields.PORT, new org.apache.thrift.meta_data.FieldMetaData("port", org.apache.thrift.TFieldRequirementType.REQUIRED, 
+        new org.apache.thrift.meta_data.SetMetaData(org.apache.thrift.protocol.TType.SET, 
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(NodeInfo.class, metaDataMap);
@@ -142,10 +161,7 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
       this.node = other.node;
     }
     if (other.is_set_port()) {
-      Set<Long> __this__port = new HashSet<Long>();
-      for (Long other_element : other.port) {
-        __this__port.add(other_element);
-      }
+      Set<Long> __this__port = new HashSet<Long>(other.port);
       this.port = __this__port;
     }
   }
@@ -305,45 +321,45 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
 
   @Override
   public int hashCode() {
-    HashCodeBuilder builder = new HashCodeBuilder();
+    List<Object> list = new ArrayList<Object>();
 
     boolean present_node = true && (is_set_node());
-    builder.append(present_node);
+    list.add(present_node);
     if (present_node)
-      builder.append(node);
+      list.add(node);
 
     boolean present_port = true && (is_set_port());
-    builder.append(present_port);
+    list.add(present_port);
     if (present_port)
-      builder.append(port);
+      list.add(port);
 
-    return builder.toHashCode();
+    return list.hashCode();
   }
 
+  @Override
   public int compareTo(NodeInfo other) {
     if (!getClass().equals(other.getClass())) {
       return getClass().getName().compareTo(other.getClass().getName());
     }
 
     int lastComparison = 0;
-    NodeInfo typedOther = (NodeInfo)other;
 
-    lastComparison = Boolean.valueOf(is_set_node()).compareTo(typedOther.is_set_node());
+    lastComparison = Boolean.valueOf(is_set_node()).compareTo(other.is_set_node());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_node()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.node, typedOther.node);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.node, other.node);
       if (lastComparison != 0) {
         return lastComparison;
       }
     }
-    lastComparison = Boolean.valueOf(is_set_port()).compareTo(typedOther.is_set_port());
+    lastComparison = Boolean.valueOf(is_set_port()).compareTo(other.is_set_port());
     if (lastComparison != 0) {
       return lastComparison;
     }
     if (is_set_port()) {
-      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, typedOther.port);
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.port, other.port);
       if (lastComparison != 0) {
         return lastComparison;
       }
@@ -356,71 +372,11 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
   }
 
   public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
-    org.apache.thrift.protocol.TField field;
-    iprot.readStructBegin();
-    while (true)
-    {
-      field = iprot.readFieldBegin();
-      if (field.type == org.apache.thrift.protocol.TType.STOP) {
-        break;
-      }
-      switch (field.id) {
-        case 1: // NODE
-          if (field.type == org.apache.thrift.protocol.TType.STRING) {
-            this.node = iprot.readString();
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 2: // PORT
-          if (field.type == org.apache.thrift.protocol.TType.SET) {
-            {
-              org.apache.thrift.protocol.TSet _set181 = iprot.readSetBegin();
-              this.port = new HashSet<Long>(2*_set181.size);
-              for (int _i182 = 0; _i182 < _set181.size; ++_i182)
-              {
-                long _elem183; // required
-                _elem183 = iprot.readI64();
-                this.port.add(_elem183);
-              }
-              iprot.readSetEnd();
-            }
-          } else { 
-            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        default:
-          org.apache.thrift.protocol.TProtocolUtil.skip(iprot, field.type);
-      }
-      iprot.readFieldEnd();
-    }
-    iprot.readStructEnd();
-    validate();
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
   }
 
   public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
-    validate();
-
-    oprot.writeStructBegin(STRUCT_DESC);
-    if (this.node != null) {
-      oprot.writeFieldBegin(NODE_FIELD_DESC);
-      oprot.writeString(this.node);
-      oprot.writeFieldEnd();
-    }
-    if (this.port != null) {
-      oprot.writeFieldBegin(PORT_FIELD_DESC);
-      {
-        oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I64, this.port.size()));
-        for (long _iter184 : this.port)
-        {
-          oprot.writeI64(_iter184);
-        }
-        oprot.writeSetEnd();
-      }
-      oprot.writeFieldEnd();
-    }
-    oprot.writeFieldStop();
-    oprot.writeStructEnd();
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
   }
 
   @Override
@@ -457,6 +413,7 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
       throw new org.apache.thrift.protocol.TProtocolException("Required field 'port' is unset! Struct:" + toString());
     }
 
+    // check for sub-struct validity
   }
 
   private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -475,5 +432,125 @@ public class NodeInfo implements org.apache.thrift.TBase<NodeInfo, NodeInfo._Fie
     }
   }
 
+  private static class NodeInfoStandardSchemeFactory implements SchemeFactory {
+    public NodeInfoStandardScheme getScheme() {
+      return new NodeInfoStandardScheme();
+    }
+  }
+
+  private static class NodeInfoStandardScheme extends StandardScheme<NodeInfo> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, NodeInfo struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // NODE
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.node = iprot.readString();
+              struct.set_node_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // PORT
+            if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
+              {
+                org.apache.thrift.protocol.TSet _set362 = iprot.readSetBegin();
+                struct.port = new HashSet<Long>(2*_set362.size);
+                long _elem363;
+                for (int _i364 = 0; _i364 < _set362.size; ++_i364)
+                {
+                  _elem363 = iprot.readI64();
+                  struct.port.add(_elem363);
+                }
+                iprot.readSetEnd();
+              }
+              struct.set_port_isSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, NodeInfo struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.node != null) {
+        oprot.writeFieldBegin(NODE_FIELD_DESC);
+        oprot.writeString(struct.node);
+        oprot.writeFieldEnd();
+      }
+      if (struct.port != null) {
+        oprot.writeFieldBegin(PORT_FIELD_DESC);
+        {
+          oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I64, struct.port.size()));
+          for (long _iter365 : struct.port)
+          {
+            oprot.writeI64(_iter365);
+          }
+          oprot.writeSetEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class NodeInfoTupleSchemeFactory implements SchemeFactory {
+    public NodeInfoTupleScheme getScheme() {
+      return new NodeInfoTupleScheme();
+    }
+  }
+
+  private static class NodeInfoTupleScheme extends TupleScheme<NodeInfo> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, NodeInfo struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      oprot.writeString(struct.node);
+      {
+        oprot.writeI32(struct.port.size());
+        for (long _iter366 : struct.port)
+        {
+          oprot.writeI64(_iter366);
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, NodeInfo struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      struct.node = iprot.readString();
+      struct.set_node_isSet(true);
+      {
+        org.apache.thrift.protocol.TSet _set367 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I64, iprot.readI32());
+        struct.port = new HashSet<Long>(2*_set367.size);
+        long _elem368;
+        for (int _i369 = 0; _i369 < _set367.size; ++_i369)
+        {
+          _elem368 = iprot.readI64();
+          struct.port.add(_elem368);
+        }
+      }
+      struct.set_port_isSet(true);
+    }
+  }
+
 }