giraph-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ekoo...@apache.org
Subject svn commit: r1373684 [18/35] - in /giraph/site: ./ apidocs/ apidocs/org/apache/giraph/ apidocs/org/apache/giraph/benchmark/ apidocs/org/apache/giraph/benchmark/class-use/ apidocs/org/apache/giraph/bsp/ apidocs/org/apache/giraph/bsp/class-use/ apidocs/o...
Date Thu, 16 Aug 2012 01:32:58 GMT
Modified: giraph/site/cobertura/org.apache.giraph.graph.BspServiceWorker.html
URL: http://svn.apache.org/viewvc/giraph/site/cobertura/org.apache.giraph.graph.BspServiceWorker.html?rev=1373684&r1=1373683&r2=1373684&view=diff
==============================================================================
--- giraph/site/cobertura/org.apache.giraph.graph.BspServiceWorker.html (original)
+++ giraph/site/cobertura/org.apache.giraph.graph.BspServiceWorker.html Thu Aug 16 01:32:41 2012
@@ -12,7 +12,7 @@
 <div class="separator">&nbsp;</div>
 <table class="report">
 <thead><tr>  <td class="heading">Classes in this File</td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Line Coverage</a></td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Branch Coverage</a></td>  <td class="heading"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">Complexity</a></td></tr></thead>
-  <tr><td><a href="org.apache.giraph.graph.BspServiceWorker.html">BspServiceWorker</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">60%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:60px"><span class="text">364/603</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">113/216</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.685714285714286;</span>7.686</td></tr>
+  <tr><td><a href="org.apache.giraph.graph.BspServiceWorker.html">BspServiceWorker</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">59%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:59px"><span class="text">367/620</span></div></div></td></tr></table></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">52%</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:52px"><span class="text">113/216</span></div></div></td></tr></table></td><td class="value"><span class="hidden">7.885714285714286;</span>7.886</td></tr>
 
 </table>
 <div class="separator">&nbsp;</div>
@@ -1705,9 +1705,9 @@
   <td class="src"><pre class="src">&nbsp;        getSuperstepFinishedPath(getApplicationAttempt(), getSuperstep());</pre></td></tr>
 <tr>  <td class="numLine">&nbsp;1029</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1030</td>  <td class="nbHitsCovered"><a title="Line 1030: Conditional coverage 100% (2/2).">&nbsp;434</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 1030: Conditional coverage 100% (2/2).">      <span class="keyword">while</span> (getZkExt().exists(superstepFinishedNode, <span class="keyword">true</span>) == <span class="keyword">null</span>) {</a></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1031</td>  <td class="nbHitsCovered">&nbsp;216</td>  <td class="src"><pre class="src">&nbsp;        getSuperstepFinishedEvent().waitForever();</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1032</td>  <td class="nbHitsCovered">&nbsp;216</td>  <td class="src"><pre class="src">&nbsp;        getSuperstepFinishedEvent().reset();</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1030</td>  <td class="nbHitsCovered"><a title="Line 1030: Conditional coverage 100% (2/2).">&nbsp;436</a></td>  <td class="src"><pre class="src">&nbsp;<a title="Line 1030: Conditional coverage 100% (2/2).">      <span class="keyword">while</span> (getZkExt().exists(superstepFinishedNode, <span class="keyword">true</span>) == <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1031</td>  <td class="nbHitsCovered">&nbsp;218</td>  <td class="src"><pre class="src">&nbsp;        getSuperstepFinishedEvent().waitForever();</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1032</td>  <td class="nbHitsCovered">&nbsp;218</td>  <td class="src"><pre class="src">&nbsp;        getSuperstepFinishedEvent().reset();</pre></td></tr>
 <tr>  <td class="numLine">&nbsp;1033</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      }</pre></td></tr>
 <tr>  <td class="numLineCover">&nbsp;1034</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (KeeperException e) {</span></pre></td></tr>
@@ -1994,590 +1994,649 @@
 <tr>  <td class="numLine">&nbsp;1213</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
 <tr>  <td class="numLineCover">&nbsp;1214</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;    getFs().createNewFile(validFilePath);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1215</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;  }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1215</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
 <tr>  <td class="numLine">&nbsp;1216</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="comment">// Notify master that checkpoint is stored</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1217</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;    String workerWroteCheckpoint =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1218</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;        getWorkerWroteCheckpointPath(getApplicationAttempt(),</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1219</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;            getSuperstep()) + <span class="string">"/"</span> + getHostnamePartitionId();</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1220</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1221</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;      getZkExt().createExt(workerWroteCheckpoint,</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1222</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          <span class="keyword">new</span> <span class="keyword">byte</span>[0],</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1223</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          Ids.OPEN_ACL_UNSAFE,</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1224</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          CreateMode.PERSISTENT,</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1225</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          <span class="keyword">true</span>);</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1226</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (KeeperException.NodeExistsException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1227</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      LOG.warn(<span class="string">"finishSuperstep: wrote checkpoint worker path "</span> +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1228</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          workerWroteCheckpoint + <span class="string">" already exists!"</span>);</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1229</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (KeeperException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1230</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(<span class="string">"Creating "</span> + workerWroteCheckpoint +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1231</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          <span class="string">" failed with KeeperException"</span>, e);</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1232</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (InterruptedException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1233</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(<span class="string">"Creating "</span> + workerWroteCheckpoint +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1234</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          <span class="string">" failed with InterruptedException"</span>, e);</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1235</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1236</td>  <td class="nbHitsCovered">&nbsp;4</td>  <td class="src"><pre class="src">&nbsp;  }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1237</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1217</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1238</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  @Override</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1218</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1239</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  <span class="keyword">public</span> <span class="keyword">void</span> loadCheckpoint(<span class="keyword">long</span> superstep) {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1219</td>  <td class="nbHitsUncovered"><a title="Line 1219: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1219: Conditional coverage 0% (0/2).">    <span class="keyword">if</span> (getConfiguration().getBoolean(GiraphJob.USE_NETTY,</a></span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1220</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1240</td>  <td class="nbHitsUncovered"><a title="Line 1240: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1240: Conditional coverage 0% (0/2).">    <span class="keyword">if</span> (getConfiguration().getBoolean(GiraphJob.USE_NETTY,</a></span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1241</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        GiraphJob.USE_NETTY_DEFAULT)) {</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1221</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1242</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1222</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1243</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        <span class="comment">// clear old message stores</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1223</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getServerData().getIncomingMessageStore().clearAll();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1224</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getServerData().getCurrentMessageStore().clearAll();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1225</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1226</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1227</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1244</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getServerData().getIncomingMessageStore().clearAll();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1245</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getServerData().getCurrentMessageStore().clearAll();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1246</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1247</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1248</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            <span class="string">"loadCheckpoint: Failed to clear message stores "</span>, e);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1228</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1229</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1249</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1250</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1230</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1251</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1231</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1252</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// Algorithm:</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1232</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1253</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// Examine all the partition owners and load the ones</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1233</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1254</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// that match my hostname and id from the master designated checkpoint</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1234</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1255</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// prefixes.</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1235</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    <span class="keyword">long</span> startPos = 0;</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1236</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    <span class="keyword">int</span> loadedPartitions = 0;</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1237</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1256</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    <span class="keyword">long</span> startPos = 0;</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1257</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    <span class="keyword">int</span> loadedPartitions = 0;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1258</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">for</span> (PartitionOwner partitionOwner :</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1238</td>  <td class="nbHitsUncovered"><a title="Line 1238: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1238: Conditional coverage 0% (0/2).">      workerGraphPartitioner.getPartitionOwners()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1239</td>  <td class="nbHitsUncovered"><a title="Line 1239: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1239: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (partitionOwner.getWorkerInfo().equals(getWorkerInfo())) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1240</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        String metadataFile =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1241</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1259</td>  <td class="nbHitsUncovered"><a title="Line 1259: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1259: Conditional coverage 0% (0/2).">      workerGraphPartitioner.getPartitionOwners()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1260</td>  <td class="nbHitsUncovered"><a title="Line 1260: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1260: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (partitionOwner.getWorkerInfo().equals(getWorkerInfo())) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1261</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        String metadataFile =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1262</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            partitionOwner.getCheckpointFilesPrefix() +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1242</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1263</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            CHECKPOINT_METADATA_POSTFIX;</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1243</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        String partitionsFile =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1244</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1264</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        String partitionsFile =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1265</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            partitionOwner.getCheckpointFilesPrefix() +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1245</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1266</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            CHECKPOINT_VERTICES_POSTFIX;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1246</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1267</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1247</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">int</span> partitionId = -1;</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1248</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          DataInputStream metadataStream =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1249</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1268</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">int</span> partitionId = -1;</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1269</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          DataInputStream metadataStream =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1270</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              getFs().open(<span class="keyword">new</span> Path(metadataFile));</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1250</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">int</span> partitions = metadataStream.readInt();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1251</td>  <td class="nbHitsUncovered"><a title="Line 1251: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1251: Conditional coverage 0% (0/2).">          <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; partitions; ++i) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1252</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            startPos = metadataStream.readLong();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1253</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            partitionId = metadataStream.readInt();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1254</td>  <td class="nbHitsUncovered"><a title="Line 1254: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1254: Conditional coverage 0% (0/2).">            <span class="keyword">if</span> (partitionId == partitionOwner.getPartitionId()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1255</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;              <span class="keyword">break</span>;</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1256</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1271</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">int</span> partitions = metadataStream.readInt();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1272</td>  <td class="nbHitsUncovered"><a title="Line 1272: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1272: Conditional coverage 0% (0/2).">          <span class="keyword">for</span> (<span class="keyword">int</span> i = 0; i &lt; partitions; ++i) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1273</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            startPos = metadataStream.readLong();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1274</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            partitionId = metadataStream.readInt();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1275</td>  <td class="nbHitsUncovered"><a title="Line 1275: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1275: Conditional coverage 0% (0/2).">            <span class="keyword">if</span> (partitionId == partitionOwner.getPartitionId()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1276</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;              <span class="keyword">break</span>;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1277</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1257</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1278</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1258</td>  <td class="nbHitsUncovered"><a title="Line 1258: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1258: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionId != partitionOwner.getPartitionId()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1259</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1260</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1279</td>  <td class="nbHitsUncovered"><a title="Line 1279: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1279: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionId != partitionOwner.getPartitionId()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1280</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1281</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                <span class="string">"loadCheckpoint: "</span> + partitionOwner +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1261</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1282</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                <span class="string">" not found!"</span>);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1262</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1283</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1263</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          metadataStream.close();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1264</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          Partition&lt;I, V, E, M&gt; partition =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1265</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1284</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          metadataStream.close();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1285</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          Partition&lt;I, V, E, M&gt; partition =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1286</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              <span class="keyword">new</span> Partition&lt;I, V, E, M&gt;(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1266</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1287</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                  getConfiguration(),</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1267</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1288</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                  partitionId);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1268</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          DataInputStream partitionsStream =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1269</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1289</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          DataInputStream partitionsStream =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1290</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              getFs().open(<span class="keyword">new</span> Path(partitionsFile));</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1270</td>  <td class="nbHitsUncovered"><a title="Line 1270: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1270: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionsStream.skip(startPos) != startPos) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1271</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1272</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1291</td>  <td class="nbHitsUncovered"><a title="Line 1291: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1291: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionsStream.skip(startPos) != startPos) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1292</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1293</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                <span class="string">"loadCheckpoint: Failed to skip "</span> + startPos +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1273</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1294</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                <span class="string">" on "</span> + partitionsFile);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1274</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1295</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1275</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          partition.readFields(partitionsStream);</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1276</td>  <td class="nbHitsUncovered"><a title="Line 1276: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1276: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionsStream.readBoolean()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1277</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            getServerData().getCurrentMessageStore().readFieldsForPartition(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1278</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1296</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          partition.readFields(partitionsStream);</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1297</td>  <td class="nbHitsUncovered"><a title="Line 1297: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1297: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (partitionsStream.readBoolean()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1298</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            getServerData().getCurrentMessageStore().readFieldsForPartition(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1299</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                partitionsStream, partitionId);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1279</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1300</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1280</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          partitionsStream.close();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1281</td>  <td class="nbHitsUncovered"><a title="Line 1281: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1281: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1282</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            LOG.info(<span class="string">"loadCheckpoint: Loaded partition "</span> +</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1283</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1301</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          partitionsStream.close();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1302</td>  <td class="nbHitsUncovered"><a title="Line 1302: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1302: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1303</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            LOG.info(<span class="string">"loadCheckpoint: Loaded partition "</span> +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1304</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                partition);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1284</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1305</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1285</td>  <td class="nbHitsUncovered"><a title="Line 1285: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1285: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (getPartitionMap().put(partitionId, partition) != <span class="keyword">null</span>) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1286</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1287</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1306</td>  <td class="nbHitsUncovered"><a title="Line 1306: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1306: Conditional coverage 0% (0/2).">          <span class="keyword">if</span> (getPartitionMap().put(partitionId, partition) != <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1307</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;            <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1308</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                <span class="string">"loadCheckpoint: Already has partition owner "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1288</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1309</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                    partitionOwner);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1289</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1310</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1290</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          ++loadedPartitions;</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1291</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1292</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1293</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1311</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          ++loadedPartitions;</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1312</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1313</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1314</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              <span class="string">"loadCheckpoing: Failed to get partition owner "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1294</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1315</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                  partitionOwner, e);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1295</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        }</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1296</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1297</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1316</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        }</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1317</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1318</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1298</td>  <td class="nbHitsUncovered"><a title="Line 1298: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1298: Conditional coverage 0% (0/2).">    <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1299</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      LOG.info(<span class="string">"loadCheckpoint: Loaded "</span> + loadedPartitions +</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1300</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1319</td>  <td class="nbHitsUncovered"><a title="Line 1319: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1319: Conditional coverage 0% (0/2).">    <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1320</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      LOG.info(<span class="string">"loadCheckpoint: Loaded "</span> + loadedPartitions +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1321</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="string">" partitions of out "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1301</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1322</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          workerGraphPartitioner.getPartitionOwners().size() +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1302</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1323</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="string">" total."</span>);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1303</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1324</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1304</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1325</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1326</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="comment">// Load global statistics</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1327</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    String finalizedCheckpointPath =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1328</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;        getCheckpointBasePath(superstep) + CHECKPOINT_FINALIZED_POSTFIX;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1329</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1330</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      DataInputStream finalizedStream =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1331</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          getFs().open(<span class="keyword">new</span> Path(finalizedCheckpointPath));</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1332</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      GlobalStats globalStats = <span class="keyword">new</span> GlobalStats();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1333</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      globalStats.readFields(finalizedStream);</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1334</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      getGraphMapper().getGraphState().</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1335</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          setTotalNumEdges(globalStats.getEdgeCount()).</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1336</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          setTotalNumVertices(globalStats.getVertexCount());</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1337</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1338</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1339</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;          <span class="string">"loadCheckpoint: Failed to load global statistics"</span>, e);</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1340</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    }</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1341</td>  <td class="nbHits">&nbsp;</td>
+  <td class="src"><pre class="src">&nbsp;</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1342</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// Communication service needs to setup the connections prior to</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1305</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1343</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// processing vertices</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1306</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    commService.setup();</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1307</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;  }</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1308</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1344</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    commService.setup();</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1345</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;  }</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1346</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1309</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1347</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  <span class="comment">/**</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1310</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1348</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;<span class="comment">   * Send the worker partitions to their destination workers</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1311</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1349</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;<span class="comment">   *</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1312</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1350</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;<span class="comment">   * @param workerPartitionMap Map of worker info to the partitions stored</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1313</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1351</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;<span class="comment">   *        on this worker to be sent</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1314</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1352</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;<span class="comment">   */</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1315</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1353</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  <span class="keyword">private</span> <span class="keyword">void</span> sendWorkerPartitions(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1316</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1354</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      Map&lt;WorkerInfo, List&lt;Integer&gt;&gt; workerPartitionMap) {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1317</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    List&lt;Entry&lt;WorkerInfo, List&lt;Integer&gt;&gt;&gt; randomEntryList =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1318</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1355</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    List&lt;Entry&lt;WorkerInfo, List&lt;Integer&gt;&gt;&gt; randomEntryList =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1356</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        <span class="keyword">new</span> ArrayList&lt;Entry&lt;WorkerInfo, List&lt;Integer&gt;&gt;&gt;(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1319</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1357</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            workerPartitionMap.entrySet());</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1320</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Collections.shuffle(randomEntryList);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1321</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1358</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Collections.shuffle(randomEntryList);</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1359</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">for</span> (Entry&lt;WorkerInfo, List&lt;Integer&gt;&gt; workerPartitionList :</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1322</td>  <td class="nbHitsUncovered"><a title="Line 1322: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1322: Conditional coverage 50% (1/2).">      randomEntryList) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1323</td>  <td class="nbHitsUncovered"><a title="Line 1323: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1323: Conditional coverage 0% (0/2).">      <span class="keyword">for</span> (Integer partitionId : workerPartitionList.getValue()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1324</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        Partition&lt;I, V, E, M&gt; partition =</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1325</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1360</td>  <td class="nbHitsUncovered"><a title="Line 1360: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1360: Conditional coverage 50% (1/2).">      randomEntryList) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1361</td>  <td class="nbHitsUncovered"><a title="Line 1361: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1361: Conditional coverage 0% (0/2).">      <span class="keyword">for</span> (Integer partitionId : workerPartitionList.getValue()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1362</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        Partition&lt;I, V, E, M&gt; partition =</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1363</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            getPartitionMap().get(partitionId);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1326</td>  <td class="nbHitsUncovered"><a title="Line 1326: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1326: Conditional coverage 0% (0/2).">        <span class="keyword">if</span> (partition == <span class="keyword">null</span>) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1327</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1328</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1364</td>  <td class="nbHitsUncovered"><a title="Line 1364: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1364: Conditional coverage 0% (0/2).">        <span class="keyword">if</span> (partition == <span class="keyword">null</span>) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1365</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1366</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              <span class="string">"sendWorkerPartitions: Couldn't find partition "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1329</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1367</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                  partitionId + <span class="string">" to send to "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1330</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1368</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                  workerPartitionList.getKey());</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1331</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1369</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1332</td>  <td class="nbHitsUncovered"><a title="Line 1332: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1332: Conditional coverage 0% (0/2).">        <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1333</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          LOG.info(<span class="string">"sendWorkerPartitions: Sending worker "</span> +</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1334</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1370</td>  <td class="nbHitsUncovered"><a title="Line 1370: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1370: Conditional coverage 0% (0/2).">        <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1371</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;          LOG.info(<span class="string">"sendWorkerPartitions: Sending worker "</span> +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1372</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              workerPartitionList.getKey() + <span class="string">" partition "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1335</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1373</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              partitionId);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1336</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1374</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1337</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getGraphMapper().getGraphState().getWorkerCommunications().</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1338</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1375</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getGraphMapper().getGraphState().getWorkerCommunications().</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1376</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            sendPartitionRequest(workerPartitionList.getKey(),</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1339</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1377</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;                partition);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1340</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getPartitionMap().remove(partitionId);</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1341</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1342</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1378</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        getPartitionMap().remove(partitionId);</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1379</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      }</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1380</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1343</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1381</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1344</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1382</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1345</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      getGraphMapper().getGraphState().getWorkerCommunications().flush();</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1346</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1347</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(<span class="string">"sendWorkerPartitions: Flush failed"</span>, e);</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1348</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1349</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    String myPartitionExchangeDonePath =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1350</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1383</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      getGraphMapper().getGraphState().getWorkerCommunications().flush();</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1384</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (IOException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1385</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(<span class="string">"sendWorkerPartitions: Flush failed"</span>, e);</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1386</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1387</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    String myPartitionExchangeDonePath =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1388</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        getPartitionExchangeWorkerPath(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1351</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1389</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            getApplicationAttempt(), getSuperstep(), getWorkerInfo());</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1352</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1390</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1353</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      getZkExt().createExt(myPartitionExchangeDonePath,</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1354</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1391</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      getZkExt().createExt(myPartitionExchangeDonePath,</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1392</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="keyword">null</span>,</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1355</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1393</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          Ids.OPEN_ACL_UNSAFE,</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1356</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1394</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          CreateMode.PERSISTENT,</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1357</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1395</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="keyword">true</span>);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1358</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (KeeperException e) {</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1359</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1360</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1396</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (KeeperException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1397</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1398</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="string">"sendWorkerPartitions: KeeperException to create "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1361</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1399</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              myPartitionExchangeDonePath, e);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1362</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (InterruptedException e) {</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1363</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1364</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1400</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;    } <span class="keyword">catch</span> (InterruptedException e) {</span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1401</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1402</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;          <span class="string">"sendWorkerPartitions: InterruptedException to create "</span> +</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1365</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1403</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;              myPartitionExchangeDonePath, e);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1366</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1367</td>  <td class="nbHitsUncovered"><a title="Line 1367: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1367: Conditional coverage 50% (1/2).">    <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1368</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      LOG.info(<span class="string">"sendWorkerPartitions: Done sending all my partitions."</span>);</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1369</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1404</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1405</td>  <td class="nbHitsUncovered"><a title="Line 1405: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1405: Conditional coverage 50% (1/2).">    <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1406</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      LOG.info(<span class="string">"sendWorkerPartitions: Done sending all my partitions."</span>);</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1407</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1370</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;  }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1371</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1408</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;  }</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1409</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1372</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1410</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  @Override</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1373</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1411</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;  <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">void</span> exchangeVertexPartitions(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1374</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1412</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      Collection&lt;? <span class="keyword">extends</span> PartitionOwner&gt; masterSetPartitionOwners) {</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1375</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1413</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// 1. Fix the addresses of the partition ids if they have changed.</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1376</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1414</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// 2. Send all the partitions to their destination workers in a random</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1377</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1415</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">//    fashion.</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1378</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1416</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// 3. Notify completion with a ZooKeeper stamp</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1379</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1417</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// 4. Wait for all my dependencies to be done (if any)</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1380</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1418</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="comment">// 5. Add the partitions to myself.</span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1381</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    PartitionExchange partitionExchange =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1382</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1419</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    PartitionExchange partitionExchange =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1420</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        workerGraphPartitioner.updatePartitionOwners(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1383</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1421</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            getWorkerInfo(), masterSetPartitionOwners, getPartitionMap());</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1384</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    commService.fixPartitionIdToSocketAddrMap();</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1385</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1422</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    commService.fixPartitionIdToSocketAddrMap();</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1423</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1386</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Map&lt;WorkerInfo, List&lt;Integer&gt;&gt; sendWorkerPartitionMap =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1387</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1424</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Map&lt;WorkerInfo, List&lt;Integer&gt;&gt; sendWorkerPartitionMap =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1425</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        partitionExchange.getSendWorkerPartitionMap();</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1388</td>  <td class="nbHitsUncovered"><a title="Line 1388: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1388: Conditional coverage 50% (1/2).">    <span class="keyword">if</span> (!workerPartitionMap.isEmpty()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1389</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      sendWorkerPartitions(sendWorkerPartitionMap);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1390</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1426</td>  <td class="nbHitsUncovered"><a title="Line 1426: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1426: Conditional coverage 50% (1/2).">    <span class="keyword">if</span> (!workerPartitionMap.isEmpty()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1427</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;      sendWorkerPartitions(sendWorkerPartitionMap);</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1428</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1391</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1429</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1392</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Set&lt;WorkerInfo&gt; myDependencyWorkerSet =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1393</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1430</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Set&lt;WorkerInfo&gt; myDependencyWorkerSet =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1431</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        partitionExchange.getMyDependencyWorkerSet();</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1394</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Set&lt;String&gt; workerIdSet = <span class="keyword">new</span> HashSet&lt;String&gt;();</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1395</td>  <td class="nbHitsUncovered"><a title="Line 1395: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1395: Conditional coverage 50% (1/2).">    <span class="keyword">for</span> (WorkerInfo tmpWorkerInfo : myDependencyWorkerSet) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1396</td>  <td class="nbHitsUncovered"><a title="Line 1396: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1396: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (!workerIdSet.add(tmpWorkerInfo.getHostnameId())) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1397</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1398</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1432</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    Set&lt;String&gt; workerIdSet = <span class="keyword">new</span> HashSet&lt;String&gt;();</pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1433</td>  <td class="nbHitsUncovered"><a title="Line 1433: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1433: Conditional coverage 50% (1/2).">    <span class="keyword">for</span> (WorkerInfo tmpWorkerInfo : myDependencyWorkerSet) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1434</td>  <td class="nbHitsUncovered"><a title="Line 1434: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1434: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (!workerIdSet.add(tmpWorkerInfo.getHostnameId())) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1435</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1436</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            <span class="string">"exchangeVertexPartitions: Duplicate entry "</span> + tmpWorkerInfo);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1399</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1437</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1400</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1438</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1401</td>  <td class="nbHitsUncovered"><a title="Line 1401: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1401: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">    <span class="keyword">if</span> (myDependencyWorkerSet.isEmpty() &amp;&amp; workerPartitionMap.isEmpty()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1402</td>  <td class="nbHitsUncovered"><a title="Line 1402: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1402: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1403</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        LOG.info(<span class="string">"exchangeVertexPartitions: Nothing to exchange, "</span> +</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1404</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1439</td>  <td class="nbHitsUncovered"><a title="Line 1439: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1439: Conditional coverage 50% (2/4) [each condition: 50%, 50%].">    <span class="keyword">if</span> (myDependencyWorkerSet.isEmpty() &amp;&amp; workerPartitionMap.isEmpty()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1440</td>  <td class="nbHitsUncovered"><a title="Line 1440: Conditional coverage 0% (0/2).">&nbsp;0</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1440: Conditional coverage 0% (0/2).">      <span class="keyword">if</span> (LOG.isInfoEnabled()) {</a></span></pre></td></tr>
+<tr>  <td class="numLineCover">&nbsp;1441</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;        LOG.info(<span class="string">"exchangeVertexPartitions: Nothing to exchange, "</span> +</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1442</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            <span class="string">"exiting early"</span>);</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1405</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1443</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      }</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1406</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">return</span>;</span></pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1407</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1444</td>  <td class="nbHitsUncovered">&nbsp;0</td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;      <span class="keyword">return</span>;</span></pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1445</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    }</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1408</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1446</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1409</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    String vertexExchangePath =</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1410</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1447</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;    String vertexExchangePath =</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1448</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;        getPartitionExchangePath(getApplicationAttempt(), getSuperstep());</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1411</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1449</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    List&lt;String&gt; workerDoneList;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1412</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1450</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;    <span class="keyword">try</span> {</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1413</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLine">&nbsp;1451</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;      <span class="keyword">while</span> (<span class="keyword">true</span>) {</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1414</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;        workerDoneList = getZkExt().getChildrenExt(</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1415</td>  <td class="nbHits">&nbsp;</td>
+<tr>  <td class="numLineCover">&nbsp;1452</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;        workerDoneList = getZkExt().getChildrenExt(</pre></td></tr>
+<tr>  <td class="numLine">&nbsp;1453</td>  <td class="nbHits">&nbsp;</td>
   <td class="src"><pre class="src">&nbsp;            vertexExchangePath, <span class="keyword">true</span>, <span class="keyword">false</span>, <span class="keyword">false</span>);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1416</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;        workerIdSet.removeAll(workerDoneList);</pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1417</td>  <td class="nbHitsUncovered"><a title="Line 1417: Conditional coverage 50% (1/2).">&nbsp;194</a></td>  <td class="src"><pre class="src"><span class="srcUncovered">&nbsp;<a title="Line 1417: Conditional coverage 50% (1/2).">        <span class="keyword">if</span> (workerIdSet.isEmpty()) {</a></span></pre></td></tr>
-<tr>  <td class="numLineCover">&nbsp;1418</td>  <td class="nbHitsCovered">&nbsp;194</td>  <td class="src"><pre class="src">&nbsp;          <span class="keyword">break</span>;</pre></td></tr>
-<tr>  <td class="numLine">&nbsp;1419</td>  <td class="nbHits">&nbsp;</td>

[... 438 lines stripped ...]


Mime
View raw message