Merge branch 'master' into 0.8.2
diff --git a/src/clj/backtype/storm/scheduler/IsolationScheduler.clj b/src/clj/backtype/storm/scheduler/IsolationScheduler.clj
index ad756a8..8913c1d 100644
--- a/src/clj/backtype/storm/scheduler/IsolationScheduler.clj
+++ b/src/clj/backtype/storm/scheduler/IsolationScheduler.clj
@@ -192,16 +192,17 @@
             (.blacklistHost cluster host))
           )))
     
-    (doseq [[top-id worker-specs] topology-worker-specs]
-      (if-not (empty? worker-specs)
-        (log-warn "Unable to isolate topology " top-id)
+    (let [non-iso-topologies (->> topology-worker-specs
+                                  (mapcat (fn [[top-id worker-specs]]
+                                    (if-not (empty? worker-specs) [top-id])
+                                    )))]
+      (if (empty? non-iso-topologies)
+        ;; run default scheduler on non-isolated topologies
+        (-<> topology-worker-specs
+             allocated-topologies
+             (leftover-topologies topologies <>)
+             (DefaultScheduler/default-schedule <> cluster))
+        (log-warn "Unstable to isolate topologies " (pr-str non-iso-topologies) ". Will wait for enough resources for isolated topologies before allocating any other resources.")
         ))
-    
-    
-    ;; run default scheduler on iso topologies that didn't have enough slot + non-isolated topologies
-    (-<> topology-worker-specs
-         allocated-topologies
-         (leftover-topologies topologies <>)
-         (DefaultScheduler/default-schedule <> cluster))
     (.setBlacklistedHosts cluster orig-blacklist)
     ))