       
       (^TopologyInfo getTopologyInfo [this ^String storm-id]
         (let [storm-cluster-state (:storm-cluster-state nimbus)
-              task->component (storm-task-info (read-storm-topology conf storm-id) (read-storm-conf storage conf storm-id))
+              storm-topology (read-storm-topology storage storm-id)
+              storm-conf (read-storm-conf storage conf storm-id)
+              task->component (storm-task-info storm-topology storm-conf)
               base (.storm-base storm-cluster-state storm-id nil)
               assignment (.assignment-info storm-cluster-state storm-id nil)
               beats (.executor-beats storm-cluster-state storm-id (:executor->node+port assignment))

  (let [conf (:conf nimbus)
        storage (:storage nimbus)
        executors (compute-executors nimbus storm-id)
        topology (read-storm-topology conf storm-id)
        storm-conf (read-storm-conf storage conf storm-id)
        task->component (storm-task-info topology storm-conf)
        executor->component (into {} (for [executor executors

   (FileUtils/writeByteArrayToFile (File. (master-stormconf-path stormroot)) (Utils/serialize storm-conf))
   ))

(defn- read-storm-topology [storage storm-id]
  (let [stormroot (nimbus-storage-stormdist-root storm-id)]
    (Utils/deserialize
      (IOUtils/toByteArray
        (.open storage (master-stormcode-path stormroot))))))

(declare compute-executor->component)

