Regeneration from plexi da77848
diff --git a/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html b/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html
index 620f5a0..1da7d8f 100644
--- a/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html
+++ b/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html
@@ -103,17 +103,17 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">synchronized</span> <span class="keyword">void</span> publish(LogRecord record) {</pre></td></tr>
-<tr> <td class="numLineCover"> 48</td> <td class="nbHitsUncovered"><a title="Line 48: Conditional coverage 50% (1/2)."> 121</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 48: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!isLoggable(record)) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 48</td> <td class="nbHitsUncovered"><a title="Line 48: Conditional coverage 50% (1/2)."> 120</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 48: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (!isLoggable(record)) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 49</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 121</td> <td class="src"><pre class="src"> buffer[tail] = record;</pre></td></tr>
-<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 121</td> <td class="src"><pre class="src"> tail = (tail + 1) % buffer.length;</pre></td></tr>
-<tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"><a title="Line 53: Conditional coverage 50% (1/2)."> 121</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 53: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (head == tail) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 120</td> <td class="src"><pre class="src"> buffer[tail] = record;</pre></td></tr>
+<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 120</td> <td class="src"><pre class="src"> tail = (tail + 1) % buffer.length;</pre></td></tr>
+<tr> <td class="numLineCover"> 53</td> <td class="nbHitsUncovered"><a title="Line 53: Conditional coverage 50% (1/2)."> 120</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 53: Conditional coverage 50% (1/2)."> <span class="keyword">if</span> (head == tail) {</a></span></pre></td></tr>
<tr> <td class="numLineCover"> 54</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> head = (head + 1) % buffer.length;</span></pre></td></tr>
<tr> <td class="numLine"> 55</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 121</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 120</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.DocIdSender.html b/coverage/com.google.enterprise.adaptor.DocIdSender.html
index c585a3f..2de079a 100644
--- a/coverage/com.google.enterprise.adaptor.DocIdSender.html
+++ b/coverage/com.google.enterprise.adaptor.DocIdSender.html
@@ -112,17 +112,17 @@
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushFullDocIdsFromAdaptor(ExceptionHandler handler)</pre></td></tr>
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> InterruptedException {</pre></td></tr>
-<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"><a title="Line 52: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 52: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (handler == <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"><a title="Line 52: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 52: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (handler == <span class="keyword">null</span>) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException();</pre></td></tr>
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> log.info(<span class="string">"Beginning getDocIds"</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> journal.recordFullPushStarted();</pre></td></tr>
-<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">for</span> (<span class="keyword">int</span> ntries = 1;; ntries++) {</pre></td></tr>
-<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> keepGoing = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> log.info(<span class="string">"Beginning getDocIds"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> journal.recordFullPushStarted();</pre></td></tr>
+<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">for</span> (<span class="keyword">int</span> ntries = 1;; ntries++) {</pre></td></tr>
+<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> keepGoing = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> adaptor.getDocIds(<span class="keyword">this</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> adaptor.getDocIds(<span class="keyword">this</span>);</pre></td></tr>
<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">break</span>; <span class="comment">// Success</span></pre></td></tr>
<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (InterruptedException ex) {</pre></td></tr>
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
@@ -130,9 +130,9 @@
<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> journal.recordFullPushInterrupted();</pre></td></tr>
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> log.info(<span class="string">"Interrupted. Aborted getDocIds"</span>);</pre></td></tr>
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> ex;</pre></td></tr>
-<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (Exception ex) {</pre></td></tr>
-<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> log.log(Level.WARNING, <span class="string">"Exception during getDocIds"</span>, ex);</pre></td></tr>
-<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> keepGoing = handler.handleException(ex, ntries);</pre></td></tr>
+<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (Exception ex) {</pre></td></tr>
+<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> log.log(Level.WARNING, <span class="string">"Exception during getDocIds"</span>, ex);</pre></td></tr>
+<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> keepGoing = handler.handleException(ex, ntries);</pre></td></tr>
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"><a title="Line 71: Conditional coverage 100% (2/2)."> 2</a></td> <td class="src"><pre class="src"> <a title="Line 71: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (keepGoing) {</a></pre></td></tr>
diff --git a/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html b/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html
index 807acbf..8907150 100644
--- a/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html
+++ b/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html
@@ -153,11 +153,11 @@
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> handleException(Exception ex, <span class="keyword">int</span> ntries)</pre></td></tr>
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">throws</span> InterruptedException {</pre></td></tr>
-<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"><a title="Line 75: Conditional coverage 100% (2/2)."> 11</a></td> <td class="src"><pre class="src"> <a title="Line 75: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ntries > maximumTries) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 75</td> <td class="nbHitsCovered"><a title="Line 75: Conditional coverage 100% (2/2)."> 12</a></td> <td class="src"><pre class="src"> <a title="Line 75: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (ntries > maximumTries) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 76</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> sleepUnit.sleep(sleepDuration * ntries);</pre></td></tr>
+<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> sleepUnit.sleep(sleepDuration * ntries);</pre></td></tr>
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">return</span> <span class="keyword">true</span>;</span></pre></td></tr>
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
diff --git a/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html b/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
index 2df91b0..dcfe2a7 100644
--- a/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
+++ b/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
@@ -104,7 +104,7 @@
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/** This class handles the communications with GSA. */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 41</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> GsaCommunicationHandler {</pre></td></tr>
+<tr> <td class="numLineCover"> 41</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">final</span> <span class="keyword">class</span> GsaCommunicationHandler {</pre></td></tr>
<tr> <td class="numLineCover"> 42</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">final</span> Logger log</pre></td></tr>
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> = Logger.getLogger(GsaCommunicationHandler.<span class="keyword">class</span>.getName());</pre></td></tr>
@@ -984,11 +984,11 @@
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> run() {</pre></td></tr>
<tr> <td class="numLine"> 592</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 593</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> docIdSender.pushFullDocIdsFromAdaptor(handler);</pre></td></tr>
-<tr> <td class="numLineCover"> 594</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (InterruptedException ex) {</pre></td></tr>
-<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
+<tr> <td class="numLineCover"> 593</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> docIdSender.pushFullDocIdsFromAdaptor(handler);</pre></td></tr>
+<tr> <td class="numLineCover"> 594</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (InterruptedException ex) {</pre></td></tr>
+<tr> <td class="numLineCover"> 595</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
<tr> <td class="numLineCover"> 596</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
-<tr> <td class="numLineCover"> 597</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 597</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 598</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 599</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.IOHelper.html b/coverage/com.google.enterprise.adaptor.IOHelper.html
index 3bef1ad..e2bc09d 100644
--- a/coverage/com.google.enterprise.adaptor.IOHelper.html
+++ b/coverage/com.google.enterprise.adaptor.IOHelper.html
@@ -83,8 +83,8 @@
<tr> <td class="numLineCover"> 33</td> <td class="nbHitsCovered"> 72</td> <td class="src"><pre class="src"> <span class="keyword">byte</span>[] buffer = <span class="keyword">new</span> <span class="keyword">byte</span>[1024];</pre></td></tr>
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">int</span> read;</pre></td></tr>
-<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"><a title="Line 35: Conditional coverage 100% (2/2)."> 181</a></td> <td class="src"><pre class="src"> <a title="Line 35: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((read = in.read(buffer)) != -1) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 110</td> <td class="src"><pre class="src"> out.write(buffer, 0, read);</pre></td></tr>
+<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"><a title="Line 35: Conditional coverage 100% (2/2)."> 175</a></td> <td class="src"><pre class="src"> <a title="Line 35: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> ((read = in.read(buffer)) != -1) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 104</td> <td class="src"><pre class="src"> out.write(buffer, 0, read);</pre></td></tr>
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 38</td> <td class="nbHitsCovered"> 70</td> <td class="src"><pre class="src"> out.flush();</pre></td></tr>
diff --git a/coverage/com.google.enterprise.adaptor.Journal.html b/coverage/com.google.enterprise.adaptor.Journal.html
index 6fe21b4..b541e4b 100644
--- a/coverage/com.google.enterprise.adaptor.Journal.html
+++ b/coverage/com.google.enterprise.adaptor.Journal.html
@@ -373,8 +373,8 @@
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">long</span> determineTimeResolutionOnce() {</pre></td></tr>
<tr> <td class="numLineCover"> 214</td> <td class="nbHitsCovered"> 970</td> <td class="src"><pre class="src"> <span class="keyword">long</span> time = timeProvider.currentTimeMillis();</pre></td></tr>
<tr> <td class="numLineCover"> 215</td> <td class="nbHitsCovered"> 970</td> <td class="src"><pre class="src"> <span class="keyword">long</span> startTime = time;</pre></td></tr>
-<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"><a title="Line 216: Conditional coverage 100% (2/2)."> 425583</a></td> <td class="src"><pre class="src"> <a title="Line 216: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (startTime == time) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 424613</td> <td class="src"><pre class="src"> time = timeProvider.currentTimeMillis();</pre></td></tr>
+<tr> <td class="numLineCover"> 216</td> <td class="nbHitsCovered"><a title="Line 216: Conditional coverage 100% (2/2)."> 444016</a></td> <td class="src"><pre class="src"> <a title="Line 216: Conditional coverage 100% (2/2)."> <span class="keyword">while</span> (startTime == time) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 217</td> <td class="nbHitsCovered"> 443046</td> <td class="src"><pre class="src"> time = timeProvider.currentTimeMillis();</pre></td></tr>
<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 219</td> <td class="nbHitsCovered"> 970</td> <td class="src"><pre class="src"> <span class="keyword">return</span> time - startTime;</pre></td></tr>
@@ -402,12 +402,12 @@
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">synchronized</span> <span class="keyword">void</span> recordFullPushStarted() {</pre></td></tr>
-<tr> <td class="numLineCover"> 234</td> <td class="nbHitsCovered"><a title="Line 234: Conditional coverage 100% (2/2)."> 20</a></td> <td class="src"><pre class="src"> <a title="Line 234: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (currentFullPushStart != 0) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 234</td> <td class="nbHitsCovered"><a title="Line 234: Conditional coverage 100% (2/2)."> 21</a></td> <td class="src"><pre class="src"> <a title="Line 234: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (currentFullPushStart != 0) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 235</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(<span class="string">"Full push already started"</span>);</pre></td></tr>
<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src"> currentFullPushStart = timeProvider.currentTimeMillis();</pre></td></tr>
-<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 19</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> currentFullPushStart = timeProvider.currentTimeMillis();</pre></td></tr>
+<tr> <td class="numLineCover"> 238</td> <td class="nbHitsCovered"> 20</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.OneAtATimeRunnable.html b/coverage/com.google.enterprise.adaptor.OneAtATimeRunnable.html
index 7355a34..6810632 100644
--- a/coverage/com.google.enterprise.adaptor.OneAtATimeRunnable.html
+++ b/coverage/com.google.enterprise.adaptor.OneAtATimeRunnable.html
@@ -132,21 +132,21 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> run() {</pre></td></tr>
-<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> Thread thisThread = Thread.currentThread();</pre></td></tr>
-<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> success = runningThread.compareAndSet(<span class="keyword">null</span>, thisThread);</pre></td></tr>
-<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"><a title="Line 64: Conditional coverage 100% (2/2)."> 13</a></td> <td class="src"><pre class="src"> <a title="Line 64: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!success) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src"> Thread thisThread = Thread.currentThread();</pre></td></tr>
+<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 14</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> success = runningThread.compareAndSet(<span class="keyword">null</span>, thisThread);</pre></td></tr>
+<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"><a title="Line 64: Conditional coverage 100% (2/2)."> 14</a></td> <td class="src"><pre class="src"> <a title="Line 64: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!success) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> alreadyRunningRunnable.run();</pre></td></tr>
<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span>;</pre></td></tr>
<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> runnable.run();</pre></td></tr>
+<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> runnable.run();</pre></td></tr>
<tr> <td class="numLine"> 70</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> runningThread.compareAndSet(thisThread, <span class="keyword">null</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 71</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> runningThread.compareAndSet(thisThread, <span class="keyword">null</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 72</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 74</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.Principal.html b/coverage/com.google.enterprise.adaptor.Principal.html
index 9801f2e..10ac431 100644
--- a/coverage/com.google.enterprise.adaptor.Principal.html
+++ b/coverage/com.google.enterprise.adaptor.Principal.html
@@ -59,7 +59,7 @@
<td class="src"><pre class="src"> <span class="comment"> * Represents either a user or a group.</span></pre></td></tr>
<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 22</td> <td class="nbHitsCovered"> 483</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Principal <span class="keyword">implements</span> Comparable<Principal> {</pre></td></tr>
+<tr> <td class="numLineCover"> 22</td> <td class="nbHitsCovered"> 504</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> Principal <span class="keyword">implements</span> Comparable<Principal> {</pre></td></tr>
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> String DEFAULT_NAMESPACE = <span class="string">"Default"</span>;</pre></td></tr>
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
@@ -110,7 +110,7 @@
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isUser() {</pre></td></tr>
-<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 1834</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span> <span class="keyword">instanceof</span> UserPrincipal;</pre></td></tr>
+<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 1859</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span> <span class="keyword">instanceof</span> UserPrincipal;</pre></td></tr>
<tr> <td class="numLine"> 56</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
@@ -168,24 +168,24 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> compareTo(Principal other) {</pre></td></tr>
-<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 483</td> <td class="src"><pre class="src"> <span class="keyword">int</span> spacecmp = namespace.compareTo(other.namespace);</pre></td></tr>
-<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"><a title="Line 90: Conditional coverage 100% (2/2)."> 483</a></td> <td class="src"><pre class="src"> <a title="Line 90: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (0 != spacecmp) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 61</td> <td class="src"><pre class="src"> <span class="keyword">return</span> spacecmp;</pre></td></tr>
+<tr> <td class="numLineCover"> 89</td> <td class="nbHitsCovered"> 504</td> <td class="src"><pre class="src"> <span class="keyword">int</span> spacecmp = namespace.compareTo(other.namespace);</pre></td></tr>
+<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"><a title="Line 90: Conditional coverage 100% (2/2)."> 504</a></td> <td class="src"><pre class="src"> <a title="Line 90: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (0 != spacecmp) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 73</td> <td class="src"><pre class="src"> <span class="keyword">return</span> spacecmp;</pre></td></tr>
<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 93</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// OK, same namespace</span></pre></td></tr>
<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"><a title="Line 95: Conditional coverage 100% (2/2)."> 422</a></td> <td class="src"><pre class="src"> <a title="Line 95: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isUser() != other.isUser()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"><a title="Line 96: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 96: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> isUser() ? -1 : 1;</a></pre></td></tr>
+<tr> <td class="numLineCover"> 95</td> <td class="nbHitsCovered"><a title="Line 95: Conditional coverage 100% (2/2)."> 431</a></td> <td class="src"><pre class="src"> <a title="Line 95: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isUser() != other.isUser()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"><a title="Line 96: Conditional coverage 100% (2/2)."> 48</a></td> <td class="src"><pre class="src"> <a title="Line 96: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> isUser() ? -1 : 1;</a></pre></td></tr>
<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// OK, same namespace and same type</span></pre></td></tr>
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 381</td> <td class="src"><pre class="src"> <span class="keyword">return</span> name.compareTo(other.name);</pre></td></tr>
+<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 383</td> <td class="src"><pre class="src"> <span class="keyword">return</span> name.compareTo(other.name);</pre></td></tr>
<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.SamlIdentityProvider.html b/coverage/com.google.enterprise.adaptor.SamlIdentityProvider.html
index f4dc159..8b1f993 100644
--- a/coverage/com.google.enterprise.adaptor.SamlIdentityProvider.html
+++ b/coverage/com.google.enterprise.adaptor.SamlIdentityProvider.html
@@ -16,7 +16,7 @@
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$AuthnCallback</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">5/5</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$RequestUriRedirectDeflateDecoder</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">6/8</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$SsoHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">11</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">36/47</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">4</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">8/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$SsoHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">36/48</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">4</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">8/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
</table>
<div class="separator"> </div>
@@ -449,98 +449,101 @@
<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> SPSSODescriptor.DEFAULT_ELEMENT_NAME));</pre></td></tr>
<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 262</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> log.log(Level.INFO, <span class="string">"Unknown Peer Entity Id: {0}"</span>, peerEntityId);</span></pre></td></tr>
+<tr> <td class="numLine"> 263</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setSamlRequest(context.getInboundSAMLMessage());</pre></td></tr>
-<tr> <td class="numLineCover"> 264</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setEntityMetadata(entityDescriptor);</pre></td></tr>
-<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setEntityRoleMetadata(roleDescriptor);</pre></td></tr>
-<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> selector.selectEndpoint();</pre></td></tr>
+<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setSamlRequest(context.getInboundSAMLMessage());</pre></td></tr>
+<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setEntityMetadata(entityDescriptor);</pre></td></tr>
+<tr> <td class="numLineCover"> 267</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> selector.setEntityRoleMetadata(roleDescriptor);</pre></td></tr>
<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 269</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> selector.selectEndpoint();</pre></td></tr>
<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <V> V getFirst(List<V> list) {</pre></td></tr>
-<tr> <td class="numLineCover"> 271</td> <td class="nbHitsUncovered"><a title="Line 271: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 271: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> list.isEmpty() ? <span class="keyword">null</span> : list.get(0);</a></span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 273</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <V> V getFirst(List<V> list) {</pre></td></tr>
+<tr> <td class="numLineCover"> 273</td> <td class="nbHitsUncovered"><a title="Line 273: Conditional coverage 50% (1/2)."> 2</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 273: Conditional coverage 50% (1/2)."> <span class="keyword">return</span> list.isEmpty() ? <span class="keyword">null</span> : list.get(0);</a></span></pre></td></tr>
<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">class</span> AuthnCallback <span class="keyword">implements</span> AuthnAdaptor.Callback {</pre></td></tr>
-<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> SAMLMessageContext<AuthnRequest, Response, NameID> context;</pre></td></tr>
-<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> AuthnCallback(</pre></td></tr>
-<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> SAMLMessageContext<AuthnRequest, Response, NameID> context) {</pre></td></tr>
-<tr> <td class="numLineCover"> 280</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.context = context;</pre></td></tr>
-<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 282</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> userAuthenticated(HttpExchange ex, AuthnIdentity identity)</pre></td></tr>
-<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
-<tr> <td class="numLineCover"> 286</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> respond(ex, context, identity);</pre></td></tr>
-<tr> <td class="numLineCover"> 287</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> RequestUriRedirectDeflateDecoder</pre></td></tr>
-<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">extends</span> HTTPRedirectDeflateDecoder {</pre></td></tr>
-<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String requestUri;</pre></td></tr>
-<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @param requestUri the URI the client used to make the request</span></pre></td></tr>
-<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 297</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">public</span> RequestUriRedirectDeflateDecoder(URI requestUri) {</pre></td></tr>
-<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// Remove query parameters from URI.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 300</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> requestUri = <span class="keyword">new</span> URI(requestUri.getScheme(), requestUri.getAuthority(),</pre></td></tr>
-<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> requestUri.getPath(), <span class="keyword">null</span>, <span class="keyword">null</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 302</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException e) {</span></pre></td></tr>
-<tr> <td class="numLineCover"> 303</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(e);</span></pre></td></tr>
-<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 305</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.requestUri = requestUri.toASCIIString();</pre></td></tr>
-<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 307</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">protected</span> String getActualReceiverEndpointURI(</pre></td></tr>
-<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> SAMLMessageContext messageContext) {</pre></td></tr>
-<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// This method in HTTPRedirectDeflateDecoder is hard-coded for use with</span></pre></td></tr>
-<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// HttpServletRequestAdapter only, which we aren't using.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 313</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> requestUri;</pre></td></tr>
-<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 275</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">class</span> AuthnCallback <span class="keyword">implements</span> AuthnAdaptor.Callback {</pre></td></tr>
+<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> SAMLMessageContext<AuthnRequest, Response, NameID> context;</pre></td></tr>
+<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> AuthnCallback(</pre></td></tr>
+<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> SAMLMessageContext<AuthnRequest, Response, NameID> context) {</pre></td></tr>
+<tr> <td class="numLineCover"> 282</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.context = context;</pre></td></tr>
+<tr> <td class="numLineCover"> 283</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> userAuthenticated(HttpExchange ex, AuthnIdentity identity)</pre></td></tr>
+<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">throws</span> IOException {</pre></td></tr>
+<tr> <td class="numLineCover"> 288</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> respond(ex, context, identity);</pre></td></tr>
+<tr> <td class="numLineCover"> 289</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">class</span> RequestUriRedirectDeflateDecoder</pre></td></tr>
+<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">extends</span> HTTPRedirectDeflateDecoder {</pre></td></tr>
+<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String requestUri;</pre></td></tr>
+<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @param requestUri the URI the client used to make the request</span></pre></td></tr>
+<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLineCover"> 299</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">public</span> RequestUriRedirectDeflateDecoder(URI requestUri) {</pre></td></tr>
+<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
+<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// Remove query parameters from URI.</span></pre></td></tr>
+<tr> <td class="numLineCover"> 302</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> requestUri = <span class="keyword">new</span> URI(requestUri.getScheme(), requestUri.getAuthority(),</pre></td></tr>
+<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> requestUri.getPath(), <span class="keyword">null</span>, <span class="keyword">null</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 304</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (URISyntaxException e) {</span></pre></td></tr>
+<tr> <td class="numLineCover"> 305</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalStateException(e);</span></pre></td></tr>
+<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 307</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.requestUri = requestUri.toASCIIString();</pre></td></tr>
+<tr> <td class="numLineCover"> 308</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 309</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 310</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">protected</span> String getActualReceiverEndpointURI(</pre></td></tr>
+<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> SAMLMessageContext messageContext) {</pre></td></tr>
+<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// This method in HTTPRedirectDeflateDecoder is hard-coded for use with</span></pre></td></tr>
+<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// HttpServletRequestAdapter only, which we aren't using.</span></pre></td></tr>
+<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> requestUri;</pre></td></tr>
<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 318</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html b/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
index 8ac0f9d..507caf0 100644
--- a/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
+++ b/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
@@ -124,8 +124,8 @@
<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 17</td> <td class="src"><pre class="src"> stopped = <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Inform processing requests to shut down.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"><a title="Line 55: Conditional coverage 100% (2/2)."> 41</a></td> <td class="src"><pre class="src"> <a title="Line 55: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Thread thread : processingThreads.toArray(<span class="keyword">new</span> Thread[0])) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> thread.interrupt();</pre></td></tr>
+<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"><a title="Line 55: Conditional coverage 100% (2/2)."> 43</a></td> <td class="src"><pre class="src"> <a title="Line 55: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Thread thread : processingThreads.toArray(<span class="keyword">new</span> Thread[0])) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> thread.interrupt();</pre></td></tr>
<tr> <td class="numLine"> 57</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
@@ -196,11 +196,11 @@
<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"><a title="Line 98: Conditional coverage 100% (2/2)."> 32</a></td> <td class="src"><pre class="src"> <a title="Line 98: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (stopped) {</a></pre></td></tr>
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// Cleanup.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> ShutdownException();</pre></td></tr>
+<tr> <td class="numLineCover"> 100</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> ShutdownException();</pre></td></tr>
<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 103</td> <td class="nbHitsCovered"> 30</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
@@ -257,10 +257,10 @@
<td class="src"><pre class="src"> <span class="comment"> * Denotes that processing has been shutdown.</span></pre></td></tr>
<tr> <td class="numLine"> 135</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> ShutdownException <span class="keyword">extends</span> Exception {</pre></td></tr>
-<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">private</span> ShutdownException() {</pre></td></tr>
-<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(<span class="string">"Already shutdown"</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">class</span> ShutdownException <span class="keyword">extends</span> Exception {</pre></td></tr>
+<tr> <td class="numLineCover"> 137</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">private</span> ShutdownException() {</pre></td></tr>
+<tr> <td class="numLineCover"> 138</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">super</span>(<span class="string">"Already shutdown"</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 139</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 140</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 141</td> <td class="nbHits"> </td>
@@ -318,17 +318,17 @@
<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover"> 176</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src"> processingStarting(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (ShutdownException ex) {</pre></td></tr>
-<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(ex);</pre></td></tr>
-<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (ShutdownException ex) {</pre></td></tr>
+<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> RuntimeException(ex);</pre></td></tr>
+<tr> <td class="numLineCover"> 179</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> delegate.run();</pre></td></tr>
+<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> delegate.run();</pre></td></tr>
<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
+<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 24</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.SystemTimeProvider.html b/coverage/com.google.enterprise.adaptor.SystemTimeProvider.html
index 6876c33..84ef7ff 100644
--- a/coverage/com.google.enterprise.adaptor.SystemTimeProvider.html
+++ b/coverage/com.google.enterprise.adaptor.SystemTimeProvider.html
@@ -58,7 +58,7 @@
<tr> <td class="numLineCover"> 20</td> <td class="nbHitsCovered"> 71</td> <td class="src"><pre class="src"> <span class="keyword">class</span> SystemTimeProvider <span class="keyword">implements</span> TimeProvider {</pre></td></tr>
<tr> <td class="numLine"> 21</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">long</span> currentTimeMillis() {</pre></td></tr>
-<tr> <td class="numLineCover"> 22</td> <td class="nbHitsCovered"> 424065</td> <td class="src"><pre class="src"> <span class="keyword">return</span> System.currentTimeMillis();</pre></td></tr>
+<tr> <td class="numLineCover"> 22</td> <td class="nbHitsCovered"> 442499</td> <td class="src"><pre class="src"> <span class="keyword">return</span> System.currentTimeMillis();</pre></td></tr>
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
diff --git a/coverage/frame-summary-com.google.enterprise.adaptor.html b/coverage/frame-summary-com.google.enterprise.adaptor.html
index 27c2bc3..b28d3f5 100644
--- a/coverage/frame-summary-com.google.enterprise.adaptor.html
+++ b/coverage/frame-summary-com.google.enterprise.adaptor.html
@@ -16,7 +16,7 @@
<table class="report" id="packageResults">
<thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</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>
<tbody>
- <tr><td><a href="frame-summary-com.google.enterprise.adaptor.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.html"'>com.google.enterprise.adaptor</a></td><td class="value">202</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">708</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">3937/4645</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">268</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:82px"><span class="text">1268/1536</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.412647374062165;</span>2.413</td></tr>
+ <tr><td><a href="frame-summary-com.google.enterprise.adaptor.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.html"'>com.google.enterprise.adaptor</a></td><td class="value">202</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">709</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">3937/4646</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">268</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:82px"><span class="text">1268/1536</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.412647374062165;</span>2.413</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.examples.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.examples.html"'>com.google.enterprise.adaptor.examples</a></td><td class="value">7</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">271</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/271</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">58</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.361111111111111;</span>2.361</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.experimental.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.experimental.html"'>com.google.enterprise.adaptor.experimental</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">219</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/219</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">77</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/77</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.8;</span>3.8</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.prebuilt.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.prebuilt.html"'>com.google.enterprise.adaptor.prebuilt</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">144</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">252/396</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:51px"><span class="text">56/108</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4788732394366195;</span>2.479</td></tr>
@@ -252,7 +252,7 @@
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$1</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$AuthnCallback</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">5/5</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$RequestUriRedirectDeflateDecoder</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">6/8</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$SsoHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">11</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:76px"><span class="text">36/47</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">4</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">8/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.SamlIdentityProvider.html">SamlIdentityProvider$SsoHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">36/48</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">4</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">8/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.4545454545454546;</span>3.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.SamlMetadata.html">SamlMetadata</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">52/52</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"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></td><td class="percentgraph"><div class="percentgraph"><div class="na" style="width:100px"><span class="text"><a class="dfn" href="help.html" onclick="popupwindow('help.html'); return false;">N/A</a></span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.0;</span>1</td></tr>
diff --git a/coverage/frame-summary.html b/coverage/frame-summary.html
index d72e356..f50e7d5 100644
--- a/coverage/frame-summary.html
+++ b/coverage/frame-summary.html
@@ -16,8 +16,8 @@
<table class="report" id="packageResults">
<thead><tr> <td class="heading">Package</td> <td class="heading"># Classes</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>
<tbody>
- <tr><td><b>All Packages</b></td><td class="value">235</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1342</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">4189/5531</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">455</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:74px"><span class="text">1324/1779</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.447887323943662;</span>2.448</td></tr>
- <tr><td><a href="frame-summary-com.google.enterprise.adaptor.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.html"'>com.google.enterprise.adaptor</a></td><td class="value">202</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">708</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">3937/4645</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">268</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:82px"><span class="text">1268/1536</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.412647374062165;</span>2.413</td></tr>
+ <tr><td><b>All Packages</b></td><td class="value">235</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1343</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:75px"><span class="text">4189/5532</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">455</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:74px"><span class="text">1324/1779</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.447887323943662;</span>2.448</td></tr>
+ <tr><td><a href="frame-summary-com.google.enterprise.adaptor.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.html"'>com.google.enterprise.adaptor</a></td><td class="value">202</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">709</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">3937/4646</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">268</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:82px"><span class="text">1268/1536</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.412647374062165;</span>2.413</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.examples.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.examples.html"'>com.google.enterprise.adaptor.examples</a></td><td class="value">7</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">271</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/271</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">58</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/58</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.361111111111111;</span>2.361</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.experimental.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.experimental.html"'>com.google.enterprise.adaptor.experimental</a></td><td class="value">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">219</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/219</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">77</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/77</span></div></div></td></tr></table></td><td class="value"><span class="hidden">3.8;</span>3.8</td></tr>
<tr><td><a href="frame-summary-com.google.enterprise.adaptor.prebuilt.html" onclick='parent.sourceFileList.location.href="frame-sourcefiles-com.google.enterprise.adaptor.prebuilt.html"'>com.google.enterprise.adaptor.prebuilt</a></td><td class="value">18</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">144</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:63px"><span class="text">252/396</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:51px"><span class="text">56/108</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4788732394366195;</span>2.479</td></tr>