Regeneration from plexi eabbb30
diff --git a/coverage/com.google.enterprise.adaptor.AsyncDocIdPusher.html b/coverage/com.google.enterprise.adaptor.AsyncDocIdPusher.html
index 6ef80b6..eac1031 100644
--- a/coverage/com.google.enterprise.adaptor.AsyncDocIdPusher.html
+++ b/coverage/com.google.enterprise.adaptor.AsyncDocIdPusher.html
@@ -62,7 +62,7 @@
<tr> <td class="numLine"> 22</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 23</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Push a {@code Item} asynchronously to the GSA. The {@code Item} is</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Push a {@code DocId} asynchronously to the GSA. The {@code DocId} is</span></pre></td></tr>
<tr> <td class="numLine"> 24</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
@@ -70,58 +70,44 @@
<tr> <td class="numLine"> 26</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushItem(DocIdPusher.Item item);</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushDocId(DocId docId);</pre></td></tr>
<tr> <td class="numLine"> 28</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 29</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Push a {@code DocId} asynchronously to the GSA. The {@code DocId} is</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Push a {@code Record} asynchronously to the GSA. The {@code Record}</span></pre></td></tr>
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * is enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * then the item will be dropped and a warning will be logged.</span></pre></td></tr>
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushDocId(DocId docId);</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushRecord(DocIdPusher.Record record);</pre></td></tr>
<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 36</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Push a {@code Record} asynchronously to the GSA. The {@code Record}</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Push a named resource asynchronously to the GSA. The named resource is</span></pre></td></tr>
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * is enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * then the item will be dropped and a warning will be logged.</span></pre></td></tr>
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushRecord(DocIdPusher.Record record);</pre></td></tr>
-<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Push a named resource asynchronously to the GSA. The named resource is</span></pre></td></tr>
-<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * enqueued and sent in the next batch to the GSA. If the queue is full,</span></pre></td></tr>
-<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * then the item will be dropped and a warning will be logged.</span></pre></td></tr>
-<tr> <td class="numLine"> 47</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 48</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * <p>Named resources are {@code DocId}s without any content or metadata,</span></pre></td></tr>
-<tr> <td class="numLine"> 49</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * that only exist for ACL inheritance. These {@code DocId} will never be</span></pre></td></tr>
-<tr> <td class="numLine"> 50</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * visible to the user and have no meaning outside of ACL processing.</span></pre></td></tr>
-<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushNamedResource(DocId docId, Acl acl);</pre></td></tr>
-<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 46</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.AsyncDocIdSender.html b/coverage/com.google.enterprise.adaptor.AsyncDocIdSender.html
index 964b14f..62ea816 100644
--- a/coverage/com.google.enterprise.adaptor.AsyncDocIdSender.html
+++ b/coverage/com.google.enterprise.adaptor.AsyncDocIdSender.html
@@ -70,175 +70,185 @@
<td class="src"><pre class="src"> <span class="comment"> * and running for items to be sent.</span></pre></td></tr>
<tr> <td class="numLine"> 25</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 26</td> <td class="nbHitsCovered"> 173</td> <td class="src"><pre class="src"> <span class="keyword">class</span> AsyncDocIdSender <span class="keyword">implements</span> AsyncDocIdPusher {</pre></td></tr>
-<tr> <td class="numLineCover"> 27</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"> 28</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> = Logger.getLogger(AsyncDocIdSender.<span class="keyword">class</span>.getName());</pre></td></tr>
+<tr> <td class="numLineCover"> 26</td> <td class="nbHitsCovered"> 173</td> <td class="src"><pre class="src"> <span class="keyword">class</span> AsyncDocIdSender <span class="keyword">implements</span> AsyncDocIdPusher,</pre></td></tr>
+<tr> <td class="numLine"> 27</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> DocumentHandler.AsyncPusher {</pre></td></tr>
+<tr> <td class="numLineCover"> 28</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"> 29</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+ <td class="src"><pre class="src"> = Logger.getLogger(AsyncDocIdSender.<span class="keyword">class</span>.getName());</pre></td></tr>
<tr> <td class="numLine"> 30</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> ItemPusher itemPusher;</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 31</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">int</span> maxBatchSize;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> ItemPusher itemPusher;</pre></td></tr>
<tr> <td class="numLine"> 32</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> maxLatency;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">int</span> maxBatchSize;</pre></td></tr>
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> TimeUnit maxLatencyUnit;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">long</span> maxLatency;</pre></td></tr>
<tr> <td class="numLine"> 34</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> BlockingQueue<DocIdPusher.Item> queue;</pre></td></tr>
-<tr> <td class="numLineCover"> 35</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Runnable worker = <span class="keyword">new</span> WorkerRunnable();</pre></td></tr>
-<tr> <td class="numLine"> 36</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> <span class="keyword">final</span> TimeUnit maxLatencyUnit;</pre></td></tr>
+<tr> <td class="numLine"> 35</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> BlockingQueue<DocIdSender.Item> queue;</pre></td></tr>
+<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Runnable worker = <span class="keyword">new</span> WorkerRunnable();</pre></td></tr>
<tr> <td class="numLine"> 37</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 38</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * {@code queueCapacity} should be large enough to handle queuing the number</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 39</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * of new items that would be expected during the amount of time it takes to</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * {@code queueCapacity} should be large enough to handle queuing the number</span></pre></td></tr>
<tr> <td class="numLine"> 40</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * send a feed. For example, if requests are coming in at 300 docs/sec and it</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * of new items that would be expected during the amount of time it takes to</span></pre></td></tr>
<tr> <td class="numLine"> 41</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * takes a second to send a feed of {@code maxBatchSize}, then {@code</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * send a feed. For example, if requests are coming in at 300 docs/sec and it</span></pre></td></tr>
<tr> <td class="numLine"> 42</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * queueCapacity} should be at least {@code 300}.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * takes a second to send a feed of {@code maxBatchSize}, then {@code</span></pre></td></tr>
<tr> <td class="numLine"> 43</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * queueCapacity} should be at least {@code 300}.</span></pre></td></tr>
<tr> <td class="numLine"> 44</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 45</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> AsyncDocIdSender(ItemPusher itemPusher, <span class="keyword">int</span> maxBatchSize,</pre></td></tr>
-<tr> <td class="numLineCover"> 45</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> <span class="keyword">long</span> maxLatency, TimeUnit maxLatencyUnit, <span class="keyword">int</span> queueCapacity) {</pre></td></tr>
-<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"><a title="Line 46: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 46: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (itemPusher == <span class="keyword">null</span> || maxLatencyUnit == <span class="keyword">null</span>) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"> 2</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"> 48</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 46</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> <span class="keyword">long</span> maxLatency, TimeUnit maxLatencyUnit, <span class="keyword">int</span> queueCapacity) {</pre></td></tr>
+<tr> <td class="numLineCover"> 47</td> <td class="nbHitsCovered"><a title="Line 47: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 47: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (itemPusher == <span class="keyword">null</span> || maxLatencyUnit == <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 48</td> <td class="nbHitsCovered"> 2</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"> 49</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 49</td> <td class="nbHitsCovered"><a title="Line 49: Conditional coverage 100% (2/2)."> 24</a></td> <td class="src"><pre class="src"> <a title="Line 49: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (maxBatchSize < 1) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"maxBatchSize must be positive"</span>);</pre></td></tr>
-<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 50</td> <td class="nbHitsCovered"><a title="Line 50: Conditional coverage 100% (2/2)."> 24</a></td> <td class="src"><pre class="src"> <a title="Line 50: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (maxBatchSize < 1) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 51</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> IllegalArgumentException(<span class="string">"maxBatchSize must be positive"</span>);</pre></td></tr>
+<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.itemPusher = itemPusher;</pre></td></tr>
-<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxBatchSize = maxBatchSize;</pre></td></tr>
-<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxLatency = maxLatency;</pre></td></tr>
-<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxLatencyUnit = maxLatencyUnit;</pre></td></tr>
-<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.queue = <span class="keyword">new</span> ArrayBlockingQueue<DocIdPusher.Item>(queueCapacity);</pre></td></tr>
-<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 58</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.itemPusher = itemPusher;</pre></td></tr>
+<tr> <td class="numLineCover"> 54</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxBatchSize = maxBatchSize;</pre></td></tr>
+<tr> <td class="numLineCover"> 55</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxLatency = maxLatency;</pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.maxLatencyUnit = maxLatencyUnit;</pre></td></tr>
+<tr> <td class="numLineCover"> 57</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.queue = <span class="keyword">new</span> ArrayBlockingQueue<DocIdSender.Item>(queueCapacity);</pre></td></tr>
+<tr> <td class="numLineCover"> 58</td> <td class="nbHitsCovered"> 23</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 59</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushItem(<span class="keyword">final</span> DocIdPusher.Item item) {</pre></td></tr>
-<tr> <td class="numLineCover"> 61</td> <td class="nbHitsCovered"><a title="Line 61: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 61: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!queue.offer(item)) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 62</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> log.log(Level.WARNING, <span class="string">"Failed to queue item: {0}"</span>, item);</pre></td></tr>
-<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 60</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Enqueue {@code item} to be sent by worker. If the queue is full, then the</span></pre></td></tr>
+<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * item will be dropped and a warning will be logged.</span></pre></td></tr>
+<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 64</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 67</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushDocId(DocId docId) {</pre></td></tr>
-<tr> <td class="numLineCover"> 68</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> pushItem(<span class="keyword">new</span> DocIdPusher.Record.Builder(docId).build());</pre></td></tr>
-<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 65</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> asyncPushItem(<span class="keyword">final</span> DocIdSender.Item item) {</pre></td></tr>
+<tr> <td class="numLineCover"> 66</td> <td class="nbHitsCovered"><a title="Line 66: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 66: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!queue.offer(item)) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 67</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> log.log(Level.WARNING, <span class="string">"Failed to queue item: {0}"</span>, item);</pre></td></tr>
+<tr> <td class="numLine"> 68</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 69</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</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="numLine"> 71</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 72</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushRecord(DocIdPusher.Record record) {</pre></td></tr>
-<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> pushItem(record);</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushDocId(DocId docId) {</pre></td></tr>
+<tr> <td class="numLineCover"> 73</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> asyncPushItem(<span class="keyword">new</span> DocIdPusher.Record.Builder(docId).build());</pre></td></tr>
<tr> <td class="numLineCover"> 74</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 75</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 76</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 77</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushNamedResource(DocId docId, Acl acl) {</pre></td></tr>
-<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> pushItem(<span class="keyword">new</span> DocIdSender.AclItem(docId, <span class="keyword">null</span>, acl));</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushRecord(DocIdPusher.Record record) {</pre></td></tr>
+<tr> <td class="numLineCover"> 78</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> asyncPushItem(record);</pre></td></tr>
<tr> <td class="numLineCover"> 79</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 80</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> Runnable worker() {</pre></td></tr>
-<tr> <td class="numLineCover"> 82</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">return</span> worker;</pre></td></tr>
-<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 84</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> pushNamedResource(DocId docId, Acl acl) {</pre></td></tr>
+<tr> <td class="numLineCover"> 83</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> asyncPushItem(<span class="keyword">new</span> DocIdSender.AclItem(docId, <span class="keyword">null</span>, acl));</pre></td></tr>
+<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 85</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 85</td> <td class="nbHitsCovered"> 52</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">class</span> WorkerRunnable <span class="keyword">implements</span> Runnable {</pre></td></tr>
<tr> <td class="numLine"> 86</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 87</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"> 88</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> Set<DocIdPusher.Item> items = <span class="keyword">new</span> LinkedHashSet<DocIdPusher.Item>();</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> Runnable worker() {</pre></td></tr>
+<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> <span class="keyword">return</span> worker;</pre></td></tr>
+<tr> <td class="numLine"> 88</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLine"> 90</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">while</span> (<span class="keyword">true</span>) {</pre></td></tr>
-<tr> <td class="numLineCover"> 91</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> BlockingQueueBatcher.take(</pre></td></tr>
-<tr> <td class="numLine"> 92</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> queue, items, maxBatchSize, maxLatency, maxLatencyUnit);</pre></td></tr>
-<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> itemPusher.pushItems(items.iterator(), <span class="keyword">null</span>);</pre></td></tr>
-<tr> <td class="numLineCover"> 94</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> items.clear();</pre></td></tr>
-<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (InterruptedException ex) {</pre></td></tr>
-<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> log.log(Level.FINE, <span class="string">"AsyncDocIdSender worker shutting down"</span>, ex);</pre></td></tr>
-<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// We are shutting down, but there are likely items that haven't been</span></pre></td></tr>
-<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// sent because of maxLatency, so we try to send those now.</span></pre></td></tr>
-<tr> <td class="numLine"> 101</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// If we were interrupted between calls to take(), then take() may</span></pre></td></tr>
-<tr> <td class="numLine"> 102</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// have interrupted itself before draining the queue; might as well</span></pre></td></tr>
-<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// send everything that was put on the queue.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 104</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> queue.drainTo(items);</pre></td></tr>
-<tr> <td class="numLineCover"> 105</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> itemPusher.pushItems(items.iterator(),</pre></td></tr>
-<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> ExceptionHandlers.noRetryHandler());</pre></td></tr>
-<tr> <td class="numLineCover"> 107</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InterruptedException ex2) {</span></pre></td></tr>
-<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// Ignore, because we are going to interrupt anyway. This should</span></pre></td></tr>
-<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// actually not happen because of the ExceptionHandler we are using,</span></pre></td></tr>
-<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">// but the precise behavior of pushItems() may change in the future.</span></pre></td></tr>
-<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> log.log(Level.FINE, <span class="string">"AsyncDocIdSender worker shutdown"</span>, ex);</pre></td></tr>
-<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
-<tr> <td class="numLineCover"> 114</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 116</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 117</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 118</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 119</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">interface</span> ItemPusher {</pre></td></tr>
+<tr> <td class="numLineCover"> 90</td> <td class="nbHitsCovered"> 52</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">class</span> WorkerRunnable <span class="keyword">implements</span> Runnable {</pre></td></tr>
+<tr> <td class="numLine"> 91</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 92</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"> 93</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> Set<DocIdSender.Item> items = <span class="keyword">new</span> LinkedHashSet<DocIdSender.Item>();</pre></td></tr>
+<tr> <td class="numLine"> 94</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
+<tr> <td class="numLine"> 95</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">while</span> (<span class="keyword">true</span>) {</pre></td></tr>
+<tr> <td class="numLineCover"> 96</td> <td class="nbHitsCovered"> 22</td> <td class="src"><pre class="src"> BlockingQueueBatcher.take(</pre></td></tr>
+<tr> <td class="numLine"> 97</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> queue, items, maxBatchSize, maxLatency, maxLatencyUnit);</pre></td></tr>
+<tr> <td class="numLineCover"> 98</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> itemPusher.pushItems(items.iterator(), <span class="keyword">null</span>);</pre></td></tr>
+<tr> <td class="numLineCover"> 99</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> items.clear();</pre></td></tr>
+<tr> <td class="numLine"> 100</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> } <span class="keyword">catch</span> (InterruptedException ex) {</pre></td></tr>
+<tr> <td class="numLineCover"> 102</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> log.log(Level.FINE, <span class="string">"AsyncDocIdSender worker shutting down"</span>, ex);</pre></td></tr>
+<tr> <td class="numLine"> 103</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
+<tr> <td class="numLine"> 104</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// We are shutting down, but there are likely items that haven't been</span></pre></td></tr>
+<tr> <td class="numLine"> 105</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// sent because of maxLatency, so we try to send those now.</span></pre></td></tr>
+<tr> <td class="numLine"> 106</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// If we were interrupted between calls to take(), then take() may</span></pre></td></tr>
+<tr> <td class="numLine"> 107</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// have interrupted itself before draining the queue; might as well</span></pre></td></tr>
+<tr> <td class="numLine"> 108</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// send everything that was put on the queue.</span></pre></td></tr>
+<tr> <td class="numLineCover"> 109</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> queue.drainTo(items);</pre></td></tr>
+<tr> <td class="numLineCover"> 110</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> itemPusher.pushItems(items.iterator(),</pre></td></tr>
+<tr> <td class="numLine"> 111</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> ExceptionHandlers.noRetryHandler());</pre></td></tr>
+<tr> <td class="numLineCover"> 112</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> } <span class="keyword">catch</span> (InterruptedException ex2) {</span></pre></td></tr>
+<tr> <td class="numLine"> 113</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// Ignore, because we are going to interrupt anyway. This should</span></pre></td></tr>
+<tr> <td class="numLine"> 114</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// actually not happen because of the ExceptionHandler we are using,</span></pre></td></tr>
+<tr> <td class="numLine"> 115</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">// but the precise behavior of pushItems() may change in the future.</span></pre></td></tr>
+<tr> <td class="numLine"> 116</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> } <span class="keyword">finally</span> {</pre></td></tr>
+<tr> <td class="numLineCover"> 117</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> log.log(Level.FINE, <span class="string">"AsyncDocIdSender worker shutdown"</span>, ex);</pre></td></tr>
+<tr> <td class="numLineCover"> 118</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
+<tr> <td class="numLineCover"> 119</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 120</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 121</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Send {@code items} using {@code handler} to manage errors.</span></pre></td></tr>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 121</td> <td class="nbHitsCovered"> 21</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 122</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @returns {@code null} for success, or the first item that failed if not</span></pre></td></tr>
-<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * all items were sent</span></pre></td></tr>
-<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <T <span class="keyword">extends</span> DocIdPusher.Item> T pushItems(Iterator<T> items,</pre></td></tr>
-<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> ExceptionHandler handler) <span class="keyword">throws</span> InterruptedException;</pre></td></tr>
-<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 123</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 124</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">interface</span> ItemPusher {</pre></td></tr>
+<tr> <td class="numLine"> 125</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+<tr> <td class="numLine"> 126</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * Send {@code items} using {@code handler} to manage errors.</span></pre></td></tr>
+<tr> <td class="numLine"> 127</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 128</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @returns {@code null} for success, or the first item that failed if not</span></pre></td></tr>
<tr> <td class="numLine"> 129</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * all items were sent</span></pre></td></tr>
+<tr> <td class="numLine"> 130</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+<tr> <td class="numLine"> 131</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <T <span class="keyword">extends</span> DocIdSender.Item> T pushItems(Iterator<T> items,</pre></td></tr>
+<tr> <td class="numLine"> 132</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> ExceptionHandler handler) <span class="keyword">throws</span> InterruptedException;</pre></td></tr>
+<tr> <td class="numLine"> 133</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 134</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html b/coverage/com.google.enterprise.adaptor.CircularBufferHandler.html
index fa3b6b7..8e69246 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)."> 40</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)."> 33</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"> 40</td> <td class="src"><pre class="src"> buffer[tail] = record;</pre></td></tr>
-<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 40</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)."> 40</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"> 33</td> <td class="src"><pre class="src"> buffer[tail] = record;</pre></td></tr>
+<tr> <td class="numLineCover"> 52</td> <td class="nbHitsCovered"> 33</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)."> 33</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"> 40</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 56</td> <td class="nbHitsCovered"> 33</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.DocIdPusher.html b/coverage/com.google.enterprise.adaptor.DocIdPusher.html
index 8be675a..995173c 100644
--- a/coverage/com.google.enterprise.adaptor.DocIdPusher.html
+++ b/coverage/com.google.enterprise.adaptor.DocIdPusher.html
@@ -14,7 +14,6 @@
<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="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher</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">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$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">1.5333333333333334;</span>1.533</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Item</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">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Record</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">31/31</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">26/26</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Record$Builder</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">38/38</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">4/4</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5333333333333334;</span>1.533</td></tr>
@@ -364,489 +363,483 @@
<tr> <td class="numLine"> 171</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 172</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/** Marker interface for an item that can exist in a feed. */</span></pre></td></tr>
-<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">interface</span> Item {}</pre></td></tr>
-<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 175</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 173</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Immutable feed attributes for a document identified by its {@code DocId}.</span></pre></td></tr>
-<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 174</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 178</td> <td class="nbHitsCovered"> 30114</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> Record <span class="keyword">implements</span> Item {</pre></td></tr>
-<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 175</td> <td class="nbHitsCovered"> 30114</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> Record <span class="keyword">implements</span> DocIdSender.Item {</pre></td></tr>
+<tr> <td class="numLine"> 176</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> DocId id;</pre></td></tr>
-<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 177</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">boolean</span> delete;</pre></td></tr>
-<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 178</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Date lastModified;</pre></td></tr>
-<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 179</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> URI link;</pre></td></tr>
-<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 180</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">boolean</span> crawlImmediately;</pre></td></tr>
-<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 181</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">boolean</span> crawlOnce;</pre></td></tr>
-<tr> <td class="numLine"> 185</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 182</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> <span class="keyword">boolean</span> lock;</pre></td></tr>
-<tr> <td class="numLine"> 186</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 183</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 187</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 184</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> Record(DocId docid, <span class="keyword">boolean</span> delete, Date lastModified,</pre></td></tr>
-<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> URI link, <span class="keyword">boolean</span> crawlImmediately, <span class="keyword">boolean</span> crawlOnce, <span class="keyword">boolean</span> lock) {</pre></td></tr>
-<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.id = docid;</pre></td></tr>
-<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = delete;</pre></td></tr>
-<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = lastModified;</pre></td></tr>
-<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = link;</pre></td></tr>
-<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = crawlImmediately;</pre></td></tr>
-<tr> <td class="numLineCover"> 194</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = crawlOnce;</pre></td></tr>
-<tr> <td class="numLineCover"> 195</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = lock;</pre></td></tr>
-<tr> <td class="numLineCover"> 196</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> URI link, <span class="keyword">boolean</span> crawlImmediately, <span class="keyword">boolean</span> crawlOnce, <span class="keyword">boolean</span> lock) {</pre></td></tr>
+<tr> <td class="numLineCover"> 186</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.id = docid;</pre></td></tr>
+<tr> <td class="numLineCover"> 187</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = delete;</pre></td></tr>
+<tr> <td class="numLineCover"> 188</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = lastModified;</pre></td></tr>
+<tr> <td class="numLineCover"> 189</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = link;</pre></td></tr>
+<tr> <td class="numLineCover"> 190</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = crawlImmediately;</pre></td></tr>
+<tr> <td class="numLineCover"> 191</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = crawlOnce;</pre></td></tr>
+<tr> <td class="numLineCover"> 192</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = lock;</pre></td></tr>
+<tr> <td class="numLineCover"> 193</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 194</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 195</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 196</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * The identifier for the document this record is providing information for.</span></pre></td></tr>
-<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 197</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 201</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 198</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @return non-{@code null} identifier for the document</span></pre></td></tr>
-<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 199</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 200</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> DocId getDocId() {</pre></td></tr>
-<tr> <td class="numLineCover"> 204</td> <td class="nbHitsCovered"> 30044</td> <td class="src"><pre class="src"> <span class="keyword">return</span> id;</pre></td></tr>
+<tr> <td class="numLineCover"> 201</td> <td class="nbHitsCovered"> 30044</td> <td class="src"><pre class="src"> <span class="keyword">return</span> id;</pre></td></tr>
+<tr> <td class="numLine"> 202</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 203</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 204</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 205</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 208</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Whether the GSA is being informed the document has been deleted.</span></pre></td></tr>
-<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isToBeDeleted() {</pre></td></tr>
-<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> delete;</pre></td></tr>
+<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> delete;</pre></td></tr>
+<tr> <td class="numLine"> 209</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 210</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 211</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 212</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * The last modified date of the document. This is used for determining that</span></pre></td></tr>
-<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * the GSA's version is older and that the GSA should recrawl soon (instead</span></pre></td></tr>
-<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 214</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * of natually discovering the modification). If {@code null}, then natural</span></pre></td></tr>
-<tr> <td class="numLine"> 218</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 215</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * crawling is the primary method of detecting modifications.</span></pre></td></tr>
-<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 216</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 217</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Date getLastModified() {</pre></td></tr>
-<tr> <td class="numLineCover"> 221</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> lastModified;</pre></td></tr>
+<tr> <td class="numLineCover"> 218</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> lastModified;</pre></td></tr>
+<tr> <td class="numLine"> 219</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 220</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 221</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 222</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * The URI that should be displayed to the user in search results. If {@code</span></pre></td></tr>
-<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 223</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * null}, then the crawl URI representing the {@code DocId} is used.</span></pre></td></tr>
-<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 224</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> URI getResultLink() {</pre></td></tr>
-<tr> <td class="numLineCover"> 229</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">return</span> link;</pre></td></tr>
+<tr> <td class="numLineCover"> 226</td> <td class="nbHitsCovered"> 13</td> <td class="src"><pre class="src"> <span class="keyword">return</span> link;</pre></td></tr>
+<tr> <td class="numLine"> 227</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 228</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 229</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 230</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
- <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="comment"> * Informs the GSA that the document has been modified, and the GSA should</span></pre></td></tr>
-<tr> <td class="numLine"> 234</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 231</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * give high priority to recrawling the document.</span></pre></td></tr>
-<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 232</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 236</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 233</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isToBeCrawledImmediately() {</pre></td></tr>
-<tr> <td class="numLineCover"> 237</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> crawlImmediately;</pre></td></tr>
+<tr> <td class="numLineCover"> 234</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> <span class="keyword">return</span> crawlImmediately;</pre></td></tr>
+<tr> <td class="numLine"> 235</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</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="numLine"> 237</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 238</td> <td class="nbHits"> </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>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Informs the GSA that it should only crawl the document once. This</span></pre></td></tr>
-<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 239</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * disables automatic detection of modifications by the GSA for this</span></pre></td></tr>
-<tr> <td class="numLine"> 243</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 240</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * document.</span></pre></td></tr>
-<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 241</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 242</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isToBeCrawledOnce() {</pre></td></tr>
-<tr> <td class="numLineCover"> 246</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> crawlOnce;</pre></td></tr>
+<tr> <td class="numLineCover"> 243</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> crawlOnce;</pre></td></tr>
+<tr> <td class="numLine"> 244</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 245</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 246</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 247</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Locks the document into the GSA's index. This informs the GSA that it</span></pre></td></tr>
-<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 248</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * should choose to evict other documents from its index when the document</span></pre></td></tr>
-<tr> <td class="numLine"> 252</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 249</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * license limit is reached.</span></pre></td></tr>
-<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 250</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 251</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> isToBeLocked() {</pre></td></tr>
-<tr> <td class="numLineCover"> 255</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> lock;</pre></td></tr>
+<tr> <td class="numLineCover"> 252</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> lock;</pre></td></tr>
+<tr> <td class="numLine"> 253</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Checks for equality based on all visible fields.</span></pre></td></tr>
-<tr> <td class="numLine"> 260</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 257</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 261</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 258</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 262</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 259</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object o) {</pre></td></tr>
-<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> same = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 264</td> <td class="nbHitsCovered"><a title="Line 264: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 28</a></td> <td class="src"><pre class="src"> <a title="Line 264: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != o && <span class="keyword">this</span>.getClass().equals(o.getClass())) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 265</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> Record other = (Record) o;</pre></td></tr>
-<tr> <td class="numLineCover"> 266</td> <td class="nbHitsCovered"><a title="Line 266: Conditional coverage 100% (14/14) [each condition: 100%, 100%, 100%, 100%, 100%, 100%, 100%]."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 266: Conditional coverage 100% (14/14) [each condition: 100%, 100%, 100%, 100%, 100%, 100%, 100%]."> same = <span class="keyword">this</span>.id.equals(other.id)</a></pre></td></tr>
-<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 260</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> same = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 261</td> <td class="nbHitsCovered"><a title="Line 261: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 28</a></td> <td class="src"><pre class="src"> <a title="Line 261: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != o && <span class="keyword">this</span>.getClass().equals(o.getClass())) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 262</td> <td class="nbHitsCovered"> 26</td> <td class="src"><pre class="src"> Record other = (Record) o;</pre></td></tr>
+<tr> <td class="numLineCover"> 263</td> <td class="nbHitsCovered"><a title="Line 263: Conditional coverage 100% (14/14) [each condition: 100%, 100%, 100%, 100%, 100%, 100%, 100%]."> 26</a></td> <td class="src"><pre class="src"> <a title="Line 263: Conditional coverage 100% (14/14) [each condition: 100%, 100%, 100%, 100%, 100%, 100%, 100%]."> same = <span class="keyword">this</span>.id.equals(other.id)</a></pre></td></tr>
+<tr> <td class="numLine"> 264</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && (<span class="keyword">this</span>.delete == other.delete)</pre></td></tr>
-<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 265</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && (<span class="keyword">this</span>.crawlImmediately == other.crawlImmediately)</pre></td></tr>
-<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 266</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && (<span class="keyword">this</span>.crawlOnce == other.crawlOnce)</pre></td></tr>
-<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 267</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && (<span class="keyword">this</span>.lock == other.lock)</pre></td></tr>
-<tr> <td class="numLine"> 271</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 268</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && equalsNullSafe(lastModified, other.lastModified)</pre></td></tr>
-<tr> <td class="numLine"> 272</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 269</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> && equalsNullSafe(link, other.link);</pre></td></tr>
+<tr> <td class="numLine"> 270</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 271</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</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>
-<tr> <td class="numLineCover"> 274</td> <td class="nbHitsCovered"> 28</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 274</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<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="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Generates hash code based on all visible fields.</span></pre></td></tr>
-<tr> <td class="numLine"> 279</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 276</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 277</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 281</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 278</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr>
-<tr> <td class="numLineCover"> 282</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> Object members[] = <span class="keyword">new</span> Object[] { id, delete, lastModified, link,</pre></td></tr>
-<tr> <td class="numLine"> 283</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 279</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> Object members[] = <span class="keyword">new</span> Object[] { id, delete, lastModified, link,</pre></td></tr>
+<tr> <td class="numLine"> 280</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> crawlImmediately, crawlOnce, lock };</pre></td></tr>
-<tr> <td class="numLineCover"> 284</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Arrays.hashCode(members);</pre></td></tr>
+<tr> <td class="numLineCover"> 281</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Arrays.hashCode(members);</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"> </pre></td></tr>
+<tr> <td class="numLine"> 284</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 285</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Generates a string representation of this instance useful for debugging</span></pre></td></tr>
-<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 286</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * that contains all visible fields.</span></pre></td></tr>
-<tr> <td class="numLine"> 290</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 287</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 288</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
-<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 289</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String toString() {</pre></td></tr>
-<tr> <td class="numLineCover"> 293</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"Record(docid="</span> + id.getUniqueId()</pre></td></tr>
-<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 290</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"Record(docid="</span> + id.getUniqueId()</pre></td></tr>
+<tr> <td class="numLine"> 291</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",delete="</span> + delete</pre></td></tr>
-<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 292</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",lastModified="</span> + lastModified</pre></td></tr>
-<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 293</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",resultLink="</span> + link</pre></td></tr>
-<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 294</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",crawlImmediately="</span> + crawlImmediately</pre></td></tr>
-<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 295</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",crawlOnce="</span> + crawlOnce</pre></td></tr>
-<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 296</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> + <span class="string">",lock="</span> + lock + <span class="string">")"</span>;</pre></td></tr>
-<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 297</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 301</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 298</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 302</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 299</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">static</span> <span class="keyword">boolean</span> equalsNullSafe(Object a, Object b) {</pre></td></tr>
-<tr> <td class="numLine"> 303</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 300</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">boolean</span> same;</pre></td></tr>
-<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"><a title="Line 304: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 35</a></td> <td class="src"><pre class="src"> <a title="Line 304: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (<span class="keyword">null</span> == a && <span class="keyword">null</span> == b) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 305</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> same = <span class="keyword">true</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"><a title="Line 306: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 6</a></td> <td class="src"><pre class="src"> <a title="Line 306: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="keyword">null</span> != a && <span class="keyword">null</span> != b) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 307</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> same = a.equals(b);</pre></td></tr>
-<tr> <td class="numLine"> 308</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 301</td> <td class="nbHitsCovered"><a title="Line 301: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 35</a></td> <td class="src"><pre class="src"> <a title="Line 301: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (<span class="keyword">null</span> == a && <span class="keyword">null</span> == b) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 302</td> <td class="nbHitsCovered"> 29</td> <td class="src"><pre class="src"> same = <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 303</td> <td class="nbHitsCovered"><a title="Line 303: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 6</a></td> <td class="src"><pre class="src"> <a title="Line 303: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> } <span class="keyword">else</span> <span class="keyword">if</span> (<span class="keyword">null</span> != a && <span class="keyword">null</span> != b) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 304</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> same = a.equals(b);</pre></td></tr>
+<tr> <td class="numLine"> 305</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> } <span class="keyword">else</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 309</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> same = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 306</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> same = <span class="keyword">false</span>;</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="numLineCover"> 308</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</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"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 311</td> <td class="nbHitsCovered"> 35</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</pre></td></tr>
-<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 311</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 315</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 312</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Builder to create instances of Record.</span></pre></td></tr>
-<tr> <td class="numLine"> 316</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 313</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 317</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 314</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> Builder {</pre></td></tr>
-<tr> <td class="numLineCover"> 318</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> DocId docid = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> delete = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> Date lastModified = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> URI link = <span class="keyword">null</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 322</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> crawlImmediately = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 323</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> crawlOnce = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 324</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> lock = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 315</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> DocId docid = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 316</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> delete = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 317</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> Date lastModified = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 318</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> URI link = <span class="keyword">null</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 319</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> crawlImmediately = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 320</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> crawlOnce = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 321</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">boolean</span> lock = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLine"> 322</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 323</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 324</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Create mutable builder for building {@link Record} instances.</span></pre></td></tr>
-<tr> <td class="numLine"> 328</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 325</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 329</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 326</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @param id non-{@code null} identifier for the document being described</span></pre></td></tr>
-<tr> <td class="numLine"> 330</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 327</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 331</td> <td class="nbHitsCovered"> 30058</td> <td class="src"><pre class="src"> <span class="keyword">public</span> Builder(DocId id) {</pre></td></tr>
-<tr> <td class="numLineCover"> 332</td> <td class="nbHitsCovered"><a title="Line 332: Conditional coverage 100% (2/2)."> 30058</a></td> <td class="src"><pre class="src"> <a title="Line 332: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> == id) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 333</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="numLineCover"> 328</td> <td class="nbHitsCovered"> 30058</td> <td class="src"><pre class="src"> <span class="keyword">public</span> Builder(DocId id) {</pre></td></tr>
+<tr> <td class="numLineCover"> 329</td> <td class="nbHitsCovered"><a title="Line 329: Conditional coverage 100% (2/2)."> 30058</a></td> <td class="src"><pre class="src"> <a title="Line 329: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> == id) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 330</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"> 331</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 332</td> <td class="nbHitsCovered"> 30057</td> <td class="src"><pre class="src"> docid = id;</pre></td></tr>
+<tr> <td class="numLineCover"> 333</td> <td class="nbHitsCovered"> 30057</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 334</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 335</td> <td class="nbHitsCovered"> 30057</td> <td class="src"><pre class="src"> docid = id;</pre></td></tr>
-<tr> <td class="numLineCover"> 336</td> <td class="nbHitsCovered"> 30057</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 335</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 336</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Create mutable builder initialized to values provided by {@code</span></pre></td></tr>
-<tr> <td class="numLine"> 340</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 337</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * startPoint}. This is useful for making changes to an existing {@code</span></pre></td></tr>
-<tr> <td class="numLine"> 341</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 338</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Record}.</span></pre></td></tr>
-<tr> <td class="numLine"> 342</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 339</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">public</span> Builder(Record startPoint) {</pre></td></tr>
-<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docid = startPoint.id;</pre></td></tr>
-<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = startPoint.delete;</pre></td></tr>
-<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = startPoint.lastModified;</pre></td></tr>
-<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = startPoint.link;</pre></td></tr>
-<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = startPoint.crawlImmediately;</pre></td></tr>
-<tr> <td class="numLineCover"> 349</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = startPoint.crawlOnce;</pre></td></tr>
-<tr> <td class="numLineCover"> 350</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = startPoint.lock;</pre></td></tr>
-<tr> <td class="numLineCover"> 351</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 340</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">public</span> Builder(Record startPoint) {</pre></td></tr>
+<tr> <td class="numLineCover"> 341</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docid = startPoint.id;</pre></td></tr>
+<tr> <td class="numLineCover"> 342</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = startPoint.delete;</pre></td></tr>
+<tr> <td class="numLineCover"> 343</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = startPoint.lastModified;</pre></td></tr>
+<tr> <td class="numLineCover"> 344</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = startPoint.link;</pre></td></tr>
+<tr> <td class="numLineCover"> 345</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = startPoint.crawlImmediately;</pre></td></tr>
+<tr> <td class="numLineCover"> 346</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = startPoint.crawlOnce;</pre></td></tr>
+<tr> <td class="numLineCover"> 347</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = startPoint.lock;</pre></td></tr>
+<tr> <td class="numLineCover"> 348</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 349</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 350</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 351</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Set the identifier for the document this record is providing</span></pre></td></tr>
-<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 352</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * information for. This replaces the value provided to the constructor.</span></pre></td></tr>
-<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 353</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 354</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @param id non-{@code null} identifier for the document</span></pre></td></tr>
-<tr> <td class="numLine"> 358</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 355</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 359</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 356</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 360</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 357</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setDocId(DocId id) {</pre></td></tr>
-<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"><a title="Line 361: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 361: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> == id) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 362</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"> 363</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 358</td> <td class="nbHitsCovered"><a title="Line 358: Conditional coverage 100% (2/2)."> 3</a></td> <td class="src"><pre class="src"> <a title="Line 358: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (<span class="keyword">null</span> == id) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 359</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"> 360</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 364</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docid = id;</pre></td></tr>
-<tr> <td class="numLineCover"> 365</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 361</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docid = id;</pre></td></tr>
+<tr> <td class="numLineCover"> 362</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Set whether the GSA is being informed the document has been deleted.</span></pre></td></tr>
-<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * When {@code false}, the GSA is being informed the document exists. The</span></pre></td></tr>
-<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * default is {@code false}.</span></pre></td></tr>
+<tr> <td class="numLine"> 369</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
+<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 374</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setDeleteFromIndex(<span class="keyword">boolean</span> b) {</pre></td></tr>
-<tr> <td class="numLineCover"> 376</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = b;</pre></td></tr>
-<tr> <td class="numLineCover"> 377</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 373</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.delete = b;</pre></td></tr>
+<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 375</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 378</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Provides the last-modified date of the document. This is used by the</span></pre></td></tr>
-<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 379</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * GSA to learn that the document has been modified since the GSA last</span></pre></td></tr>
-<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * retrieved the document's contents. When {@code null}, the GSA must use</span></pre></td></tr>
-<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 381</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * its natural crawling of content to discover changes. The default is</span></pre></td></tr>
-<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * {@code null}.</span></pre></td></tr>
+<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 384</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
+<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setLastModified(Date lastModified) {</pre></td></tr>
-<tr> <td class="numLineCover"> 390</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = lastModified;</pre></td></tr>
-<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 387</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lastModified = lastModified;</pre></td></tr>
+<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Set the URI to be displayed to the user in search results. If {@code</span></pre></td></tr>
-<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * null}, then the crawl URI representing the {@code DocId} is used. The</span></pre></td></tr>
-<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * default is {@code null}.</span></pre></td></tr>
+<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
+<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 400</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setResultLink(URI link) {</pre></td></tr>
-<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = link;</pre></td></tr>
-<tr> <td class="numLineCover"> 403</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.link = link;</pre></td></tr>
+<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 7</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Inform the GSA that the document has been modified, and that the GSA</span></pre></td></tr>
-<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * should give high priority to recrawling the document. The default is</span></pre></td></tr>
-<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * {@code false}.</span></pre></td></tr>
+<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
+<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setCrawlImmediately(<span class="keyword">boolean</span> crawlImmediately) {</pre></td></tr>
-<tr> <td class="numLineCover"> 414</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = crawlImmediately;</pre></td></tr>
-<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 411</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlImmediately = crawlImmediately;</pre></td></tr>
+<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Instruct the GSA to not recrawl the document after the initial</span></pre></td></tr>
-<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * retrieval. The default is {@code false}.</span></pre></td></tr>
+<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
+<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
+<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 422</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 423</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setCrawlOnce(<span class="keyword">boolean</span> crawlOnce) {</pre></td></tr>
-<tr> <td class="numLineCover"> 425</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = crawlOnce;</pre></td></tr>
-<tr> <td class="numLineCover"> 426</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
-<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 422</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.crawlOnce = crawlOnce;</pre></td></tr>
+<tr> <td class="numLineCover"> 423</td> <td class="nbHitsCovered"> 5</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 424</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 425</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 426</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
-<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 427</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * Instruct the GSA to "lock" the document into its index. This causes</span></pre></td></tr>
-<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 428</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * other documents to be evicted from the index when the document license</span></pre></td></tr>
-<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 429</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * limit is reached. The default is {@code false}.</span></pre></td></tr>
-<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 430</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> *</span></pre></td></tr>
-<tr> <td class="numLine"> 434</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 431</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> * @return the same instance of the builder, for chaining calls</span></pre></td></tr>
-<tr> <td class="numLine"> 435</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 432</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
-<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 433</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Builder setLock(<span class="keyword">boolean</span> lock) {</pre></td></tr>
-<tr> <td class="numLineCover"> 437</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = lock;</pre></td></tr>
-<tr> <td class="numLineCover"> 438</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
-<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 434</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.lock = lock;</pre></td></tr>
+<tr> <td class="numLineCover"> 435</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">this</span>;</pre></td></tr>
+<tr> <td class="numLine"> 436</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 440</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 437</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 438</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/** Creates single instance of Record. Does not reset builder. */</span></pre></td></tr>
-<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 439</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> Record build() {</pre></td></tr>
-<tr> <td class="numLineCover"> 443</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> Record(docid, delete, lastModified,</pre></td></tr>
-<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 440</td> <td class="nbHitsCovered"> 30065</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> Record(docid, delete, lastModified,</pre></td></tr>
+<tr> <td class="numLine"> 441</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> link, crawlImmediately, crawlOnce, lock);</pre></td></tr>
-<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 442</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 446</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 443</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 447</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 444</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 448</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 445</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.DocIdSender.html b/coverage/com.google.enterprise.adaptor.DocIdSender.html
index e75931d..5b3c6aa 100644
--- a/coverage/com.google.enterprise.adaptor.DocIdSender.html
+++ b/coverage/com.google.enterprise.adaptor.DocIdSender.html
@@ -14,6 +14,7 @@
<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="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">31</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:81px"><span class="text">139/170</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">42/54</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.277777777777778;</span>4.278</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender$AclItem</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">20/20</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">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:55px"><span class="text">10/18</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.277777777777778;</span>4.278</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender$Item</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">4.277777777777778;</span>4.278</td></tr>
</table>
<div class="separator"> </div>
@@ -111,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)."> 14</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"> 13</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"> 13</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="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"> 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="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"> 13</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"> 12</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>
@@ -129,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"> 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="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="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>
@@ -571,98 +572,104 @@
<tr> <td class="numLine"> 361</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 362</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">/** Marker interface for an item that can exist in a feed. */</span></pre></td></tr>
<tr> <td class="numLine"> 363</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> * Represents the ACL tag sent in feeds.</span></pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">interface</span> Item {}</pre></td></tr>
<tr> <td class="numLine"> 364</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 365</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> AclItem <span class="keyword">implements</span> Item {</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 366</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> DocId id;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> * Represents the ACL tag sent in feeds.</span></pre></td></tr>
<tr> <td class="numLine"> 367</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String docIdFragment;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="comment"> */</span></pre></td></tr>
<tr> <td class="numLine"> 368</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> Acl acl;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">static</span> <span class="keyword">final</span> <span class="keyword">class</span> AclItem <span class="keyword">implements</span> Item {</pre></td></tr>
<tr> <td class="numLine"> 369</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> DocId id;</pre></td></tr>
<tr> <td class="numLine"> 370</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> AclItem(DocId id, Acl acl) {</pre></td></tr>
-<tr> <td class="numLineCover"> 371</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(id, <span class="keyword">null</span>, acl);</pre></td></tr>
-<tr> <td class="numLineCover"> 372</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> String docIdFragment;</pre></td></tr>
+<tr> <td class="numLine"> 371</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> Acl acl;</pre></td></tr>
+<tr> <td class="numLine"> 372</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 373</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> AclItem(DocId id, Acl acl) {</pre></td></tr>
+<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">this</span>(id, <span class="keyword">null</span>, acl);</pre></td></tr>
+<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 376</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 374</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> <span class="keyword">public</span> AclItem(DocId id, String docIdFragment, Acl acl) {</pre></td></tr>
-<tr> <td class="numLineCover"> 375</td> <td class="nbHitsCovered"><a title="Line 375: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 18</a></td> <td class="src"><pre class="src"> <a title="Line 375: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (id == <span class="keyword">null</span> || acl == <span class="keyword">null</span>) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 376</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException(<span class="string">"DocId and Acl must not be null"</span>);</pre></td></tr>
-<tr> <td class="numLine"> 377</td> <td class="nbHits"> </td>
+<tr> <td class="numLineCover"> 377</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> <span class="keyword">public</span> AclItem(DocId id, String docIdFragment, Acl acl) {</pre></td></tr>
+<tr> <td class="numLineCover"> 378</td> <td class="nbHitsCovered"><a title="Line 378: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> 18</a></td> <td class="src"><pre class="src"> <a title="Line 378: Conditional coverage 100% (4/4) [each condition: 100%, 100%]."> <span class="keyword">if</span> (id == <span class="keyword">null</span> || acl == <span class="keyword">null</span>) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"> 2</td> <td class="src"><pre class="src"> <span class="keyword">throw</span> <span class="keyword">new</span> NullPointerException(<span class="string">"DocId and Acl must not be null"</span>);</pre></td></tr>
+<tr> <td class="numLine"> 380</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 378</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.id = id;</pre></td></tr>
-<tr> <td class="numLineCover"> 379</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docIdFragment = docIdFragment;</pre></td></tr>
-<tr> <td class="numLineCover"> 380</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.acl = acl;</pre></td></tr>
-<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 382</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 383</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> DocId getDocId() {</pre></td></tr>
-<tr> <td class="numLineCover"> 384</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> id;</pre></td></tr>
+<tr> <td class="numLineCover"> 381</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.id = id;</pre></td></tr>
+<tr> <td class="numLineCover"> 382</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.docIdFragment = docIdFragment;</pre></td></tr>
+<tr> <td class="numLineCover"> 383</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> <span class="keyword">this</span>.acl = acl;</pre></td></tr>
+<tr> <td class="numLineCover"> 384</td> <td class="nbHitsCovered"> 16</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 385</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 386</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 387</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> String getDocIdFragment() {</pre></td></tr>
-<tr> <td class="numLineCover"> 388</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> docIdFragment;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> DocId getDocId() {</pre></td></tr>
+<tr> <td class="numLineCover"> 387</td> <td class="nbHitsCovered"> 11</td> <td class="src"><pre class="src"> <span class="keyword">return</span> id;</pre></td></tr>
+<tr> <td class="numLine"> 388</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 389</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 390</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 391</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> Acl getAcl() {</pre></td></tr>
-<tr> <td class="numLineCover"> 392</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> acl;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> String getDocIdFragment() {</pre></td></tr>
+<tr> <td class="numLineCover"> 391</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> docIdFragment;</pre></td></tr>
+<tr> <td class="numLine"> 392</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 393</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
+ <td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 394</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 395</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> Acl getAcl() {</pre></td></tr>
+<tr> <td class="numLineCover"> 395</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> acl;</pre></td></tr>
<tr> <td class="numLine"> 396</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object o) {</pre></td></tr>
-<tr> <td class="numLineCover"> 397</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> same = <span class="keyword">false</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 398</td> <td class="nbHitsUncovered"><a title="Line 398: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 398: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != o && <span class="keyword">this</span>.getClass().equals(o.getClass())) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 399</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> AclItem other = (AclItem) o;</pre></td></tr>
-<tr> <td class="numLineCover"> 400</td> <td class="nbHitsUncovered"><a title="Line 400: Conditional coverage 40% (4/10) [each condition: 50%, 50%, 50%, 50%, 0%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 400: Conditional coverage 40% (4/10) [each condition: 50%, 50%, 50%, 50%, 0%]."> same = id.equals(other.id) && acl.equals(other.acl)</a></span></pre></td></tr>
-<tr> <td class="numLine"> 401</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> && (docIdFragment == <span class="keyword">null</span> ? other.docIdFragment == <span class="keyword">null</span> :</pre></td></tr>
-<tr> <td class="numLine"> 402</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> docIdFragment.equals(other.docIdFragment));</pre></td></tr>
-<tr> <td class="numLine"> 403</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 404</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</pre></td></tr>
-<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 397</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 407</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 398</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 399</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">boolean</span> equals(Object o) {</pre></td></tr>
+<tr> <td class="numLineCover"> 400</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">boolean</span> same = <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 401</td> <td class="nbHitsUncovered"><a title="Line 401: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 401: Conditional coverage 50% (2/4) [each condition: 50%, 50%]."> <span class="keyword">if</span> (<span class="keyword">null</span> != o && <span class="keyword">this</span>.getClass().equals(o.getClass())) {</a></span></pre></td></tr>
+<tr> <td class="numLineCover"> 402</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> AclItem other = (AclItem) o;</pre></td></tr>
+<tr> <td class="numLineCover"> 403</td> <td class="nbHitsUncovered"><a title="Line 403: Conditional coverage 40% (4/10) [each condition: 50%, 50%, 50%, 50%, 0%]."> 1</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 403: Conditional coverage 40% (4/10) [each condition: 50%, 50%, 50%, 50%, 0%]."> same = id.equals(other.id) && acl.equals(other.acl)</a></span></pre></td></tr>
+<tr> <td class="numLine"> 404</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> && (docIdFragment == <span class="keyword">null</span> ? other.docIdFragment == <span class="keyword">null</span> :</pre></td></tr>
+<tr> <td class="numLine"> 405</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> docIdFragment.equals(other.docIdFragment));</pre></td></tr>
+<tr> <td class="numLine"> 406</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 407</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> same;</pre></td></tr>
<tr> <td class="numLine"> 408</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr>
-<tr> <td class="numLineCover"> 409</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> Object members[] = <span class="keyword">new</span> Object[] { id, acl, docIdFragment };</pre></td></tr>
-<tr> <td class="numLineCover"> 410</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Arrays.hashCode(members);</pre></td></tr>
-<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 412</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 409</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLine"> 413</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> @Override </pre></td></tr>
+<tr> <td class="numLine"> 410</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override</pre></td></tr>
+<tr> <td class="numLine"> 411</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">int</span> hashCode() {</pre></td></tr>
+<tr> <td class="numLineCover"> 412</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> Object members[] = <span class="keyword">new</span> Object[] { id, acl, docIdFragment };</pre></td></tr>
+<tr> <td class="numLineCover"> 413</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> <span class="keyword">return</span> Arrays.hashCode(members);</pre></td></tr>
<tr> <td class="numLine"> 414</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">public</span> String toString() {</pre></td></tr>
-<tr> <td class="numLineCover"> 415</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"AclItem("</span> + id + <span class="string">","</span> + docIdFragment + <span class="string">","</span> + acl + <span class="string">")"</span>;</pre></td></tr>
-<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 415</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 416</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> @Override </pre></td></tr>
<tr> <td class="numLine"> 417</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> String toString() {</pre></td></tr>
+<tr> <td class="numLineCover"> 418</td> <td class="nbHitsCovered"> 3</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="string">"AclItem("</span> + id + <span class="string">","</span> + docIdFragment + <span class="string">","</span> + acl + <span class="string">")"</span>;</pre></td></tr>
+<tr> <td class="numLine"> 419</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 420</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLine"> 418</td> <td class="nbHits"> </td>
+<tr> <td class="numLine"> 421</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.DocumentHandler.html b/coverage/com.google.enterprise.adaptor.DocumentHandler.html
index c46b67b..80aacdd 100644
--- a/coverage/com.google.enterprise.adaptor.DocumentHandler.html
+++ b/coverage/com.google.enterprise.adaptor.DocumentHandler.html
@@ -12,16 +12,17 @@
<div class="separator"> </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="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:96px"><span class="text">220/228</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">6</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:95px"><span class="text">134/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$1</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">1/1</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountByteArrayOutputStream</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:0px"><span class="text">0/2</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountingOutputStream</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentRequest</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">12/12</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse</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:93px"><span class="text">152/163</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">92/104</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse$CloseNotifyOutputStream</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$MaxBufferOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$SinkOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">2/3</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$State</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:96px"><span class="text">220/228</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">6</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:95px"><span class="text">134/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$1</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">1/1</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$AsyncPusher</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountByteArrayOutputStream</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:0px"><span class="text">0/2</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountingOutputStream</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentRequest</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">12/12</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse</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:93px"><span class="text">152/163</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">92/104</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse$CloseNotifyOutputStream</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$MaxBufferOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$SinkOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">2/3</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$State</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
</table>
<div class="separator"> </div>
@@ -127,7 +128,7 @@
<tr> <td class="numLine"> 51</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> Watchdog watchdog;</pre></td></tr>
<tr> <td class="numLine"> 52</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> AsyncDocIdPusher pusher;</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">final</span> AsyncPusher pusher;</pre></td></tr>
<tr> <td class="numLine"> 53</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">/**</span></pre></td></tr>
<tr> <td class="numLine"> 54</td> <td class="nbHits"> </td>
@@ -185,7 +186,7 @@
<tr> <td class="numLine"> 81</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">boolean</span> useCompression,</pre></td></tr>
<tr> <td class="numLine"> 82</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Watchdog watchdog, AsyncDocIdPusher pusher,</pre></td></tr>
+ <td class="src"><pre class="src"> Watchdog watchdog, AsyncPusher pusher,</pre></td></tr>
<tr> <td class="numLine"> 83</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">boolean</span> sendDocControls, <span class="keyword">long</span> headerTimeoutMillis,</pre></td></tr>
<tr> <td class="numLineCover"> 84</td> <td class="nbHitsCovered"> 147</td> <td class="src"><pre class="src"> <span class="keyword">long</span> contentTimeoutMillis, String scoringType) {</pre></td></tr>
@@ -1277,7 +1278,7 @@
<td class="src"><pre class="src"> <span class="comment">// Emulate these crawl-time values by sending them in feeds</span></pre></td></tr>
<tr> <td class="numLine"> 809</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// since they aren't supported at crawl-time on GSA 7.0.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 810</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> pusher.pushItem(<span class="keyword">new</span> DocIdPusher.Record.Builder(docId)</pre></td></tr>
+<tr> <td class="numLineCover"> 810</td> <td class="nbHitsCovered"> 1</td> <td class="src"><pre class="src"> pusher.asyncPushItem(<span class="keyword">new</span> DocIdPusher.Record.Builder(docId)</pre></td></tr>
<tr> <td class="numLine"> 811</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> .setResultLink(displayUrl).setCrawlOnce(crawlOnce).setLock(lock)</pre></td></tr>
<tr> <td class="numLine"> 812</td> <td class="nbHits"> </td>
@@ -1343,7 +1344,7 @@
<tr> <td class="numLine"> 850</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> ex, HttpURLConnection.HTTP_OK, contentType, hasContent);</pre></td></tr>
<tr> <td class="numLineCover"> 851</td> <td class="nbHitsUncovered"><a title="Line 851: Conditional coverage 50% (1/2)."> 43</a></td> <td class="src"><pre class="src"><span class="srcUncovered"> <a title="Line 851: Conditional coverage 50% (1/2)."> <span class="keyword">for</span> (Map.Entry<String, Acl> fragment : fragments.entrySet()) {</a></span></pre></td></tr>
-<tr> <td class="numLineCover"> 852</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pusher.pushItem(<span class="keyword">new</span> DocIdSender.AclItem(docId,</span></pre></td></tr>
+<tr> <td class="numLineCover"> 852</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> pusher.asyncPushItem(<span class="keyword">new</span> DocIdSender.AclItem(docId,</span></pre></td></tr>
<tr> <td class="numLine"> 853</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> fragment.getKey(), fragment.getValue()));</pre></td></tr>
<tr> <td class="numLine"> 854</td> <td class="nbHits"> </td>
@@ -1405,7 +1406,7 @@
<tr> <td class="numLine"> 887</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLineCover"> 888</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">final</span> String fragment = <span class="string">"generated"</span>;</pre></td></tr>
-<tr> <td class="numLineCover"> 889</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> pusher.pushItem(</pre></td></tr>
+<tr> <td class="numLineCover"> 889</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> pusher.asyncPushItem(</pre></td></tr>
<tr> <td class="numLine"> 890</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">new</span> DocIdSender.AclItem(docId, fragment, namedResourceAcl.build()));</pre></td></tr>
<tr> <td class="numLineCover"> 891</td> <td class="nbHitsCovered"> 4</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">new</span> Acl.Builder()</pre></td></tr>
@@ -1630,6 +1631,14 @@
<tr> <td class="numLine"> 1026</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 1027</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> </pre></td></tr>
+<tr> <td class="numLine"> 1028</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">interface</span> AsyncPusher {</pre></td></tr>
+<tr> <td class="numLine"> 1029</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">void</span> asyncPushItem(DocIdSender.Item item);</pre></td></tr>
+<tr> <td class="numLine"> 1030</td> <td class="nbHits"> </td>
+ <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLine"> 1031</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
</table>
diff --git a/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html b/coverage/com.google.enterprise.adaptor.ExceptionHandlers.html
index a948ff6..3a2c7b8 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)."> 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"> 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"> 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"> 11</td> <td class="src"><pre class="src"> sleepUnit.sleep(sleepDuration * ntries);</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"> 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.GroupPrincipal.html b/coverage/com.google.enterprise.adaptor.GroupPrincipal.html
index e8b328b..d32a373 100644
--- a/coverage/com.google.enterprise.adaptor.GroupPrincipal.html
+++ b/coverage/com.google.enterprise.adaptor.GroupPrincipal.html
@@ -83,7 +83,7 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 35</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"> 36</td> <td class="nbHitsCovered"> 911</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 36</td> <td class="nbHitsCovered"> 899</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</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="numLine"> 38</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html b/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
index 3d0cd06..def05d9 100644
--- a/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
+++ b/coverage/com.google.enterprise.adaptor.GsaCommunicationHandler.html
@@ -105,7 +105,7 @@
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 41</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"> 42</td> <td class="nbHitsCovered"> 19</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"> 18</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"> 43</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"> 44</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> = Logger.getLogger(GsaCommunicationHandler.<span class="keyword">class</span>.getName());</pre></td></tr>
@@ -1154,11 +1154,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"> 714</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
-<tr> <td class="numLineCover"> 715</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> docIdSender.pushFullDocIdsFromAdaptor(handler);</pre></td></tr>
-<tr> <td class="numLineCover"> 716</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"> 717</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
+<tr> <td class="numLineCover"> 715</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> docIdSender.pushFullDocIdsFromAdaptor(handler);</pre></td></tr>
+<tr> <td class="numLineCover"> 716</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"> 717</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> Thread.currentThread().interrupt();</pre></td></tr>
<tr> <td class="numLineCover"> 718</td> <td class="nbHitsUncovered"> 0</td> <td class="src"><pre class="src"><span class="srcUncovered"> }</span></pre></td></tr>
-<tr> <td class="numLineCover"> 719</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 719</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 720</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 721</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.GsaFeedFileMaker.html b/coverage/com.google.enterprise.adaptor.GsaFeedFileMaker.html
index 9b33723..ca8e43a 100644
--- a/coverage/com.google.enterprise.adaptor.GsaFeedFileMaker.html
+++ b/coverage/com.google.enterprise.adaptor.GsaFeedFileMaker.html
@@ -342,10 +342,10 @@
<tr> <td class="numLine"> 206</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> constructMetadataAndUrlFeedFileBody(Document doc,</pre></td></tr>
<tr> <td class="numLine"> 207</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> Element root, List<? <span class="keyword">extends</span> DocIdPusher.Item> items) {</pre></td></tr>
+ <td class="src"><pre class="src"> Element root, List<? <span class="keyword">extends</span> DocIdSender.Item> items) {</pre></td></tr>
<tr> <td class="numLineCover"> 208</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> Element group = doc.createElement(<span class="string">"group"</span>);</pre></td></tr>
<tr> <td class="numLineCover"> 209</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> root.appendChild(group);</pre></td></tr>
-<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"><a title="Line 210: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 210: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (DocIdPusher.Item item : items) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 210</td> <td class="nbHitsCovered"><a title="Line 210: Conditional coverage 100% (2/2)."> 9</a></td> <td class="src"><pre class="src"> <a title="Line 210: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (DocIdSender.Item item : items) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 211</td> <td class="nbHitsCovered"><a title="Line 211: Conditional coverage 100% (2/2)."> 16</a></td> <td class="src"><pre class="src"> <a title="Line 211: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (item <span class="keyword">instanceof</span> DocIdPusher.Record) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 212</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> constructSingleMetadataAndUrlFeedFileRecord(doc, group,</pre></td></tr>
<tr> <td class="numLine"> 213</td> <td class="nbHits"> </td>
@@ -371,7 +371,7 @@
<tr> <td class="numLine"> 225</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">private</span> <span class="keyword">void</span> constructMetadataAndUrlFeedFile(Document doc,</pre></td></tr>
<tr> <td class="numLine"> 226</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> String srcName, List<? <span class="keyword">extends</span> DocIdPusher.Item> items) {</pre></td></tr>
+ <td class="src"><pre class="src"> String srcName, List<? <span class="keyword">extends</span> DocIdSender.Item> items) {</pre></td></tr>
<tr> <td class="numLineCover"> 227</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> Element root = doc.createElement(<span class="string">"gsafeed"</span>);</pre></td></tr>
<tr> <td class="numLineCover"> 228</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> doc.appendChild(root);</pre></td></tr>
<tr> <td class="numLineCover"> 229</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> constructMetadataAndUrlFeedFileHead(doc, root, srcName);</pre></td></tr>
@@ -411,7 +411,7 @@
<tr> <td class="numLine"> 254</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">public</span> String makeMetadataAndUrlXml(String srcName,</pre></td></tr>
<tr> <td class="numLine"> 255</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> List<? <span class="keyword">extends</span> DocIdPusher.Item> items) {</pre></td></tr>
+ <td class="src"><pre class="src"> List<? <span class="keyword">extends</span> DocIdSender.Item> items) {</pre></td></tr>
<tr> <td class="numLine"> 256</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="keyword">try</span> {</pre></td></tr>
<tr> <td class="numLineCover"> 257</td> <td class="nbHitsCovered"> 9</td> <td class="src"><pre class="src"> DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();</pre></td></tr>
diff --git a/coverage/com.google.enterprise.adaptor.IOHelper.html b/coverage/com.google.enterprise.adaptor.IOHelper.html
index c717e32..4e0d6cb 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"> 120</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)."> 451</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"> 332</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)."> 643</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"> 524</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"> 116</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 4441265..5392833 100644
--- a/coverage/com.google.enterprise.adaptor.Journal.html
+++ b/coverage/com.google.enterprise.adaptor.Journal.html
@@ -215,7 +215,7 @@
<tr> <td class="numLine"> 109</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
<tr> <td class="numLine"> 110</td> <td class="nbHits"> </td>
- <td class="src"><pre class="src"> <span class="keyword">synchronized</span> <span class="keyword">void</span> recordDocIdPush(List<? <span class="keyword">extends</span> DocIdPusher.Item> pushed) {</pre></td></tr>
+ <td class="src"><pre class="src"> <span class="keyword">synchronized</span> <span class="keyword">void</span> recordDocIdPush(List<? <span class="keyword">extends</span> DocIdSender.Item> pushed) {</pre></td></tr>
<tr> <td class="numLineCover"> 111</td> <td class="nbHitsCovered"><a title="Line 111: Conditional coverage 100% (2/2)."> 11</a></td> <td class="src"><pre class="src"> <a title="Line 111: Conditional coverage 100% (2/2)."> <span class="keyword">for</span> (Object item : pushed) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 112</td> <td class="nbHitsCovered"><a title="Line 112: Conditional coverage 100% (2/2)."> 20</a></td> <td class="src"><pre class="src"> <a title="Line 112: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (item <span class="keyword">instanceof</span> DocIdPusher.Record) {</a></pre></td></tr>
<tr> <td class="numLineCover"> 113</td> <td class="nbHitsCovered"> 18</td> <td class="src"><pre class="src"> DocIdPusher.Record record = (DocIdPusher.Record) item;</pre></td></tr>
@@ -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"> 1025</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"> 1025</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)."> 196391</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"> 195366</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)."> 191653</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"> 190628</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"> 1025</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)."> 22</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"> 2</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"> 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="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="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 e5af6b5..cf2c47a 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"> 15</td> <td class="src"><pre class="src"> Thread thisThread = Thread.currentThread();</pre></td></tr>
-<tr> <td class="numLineCover"> 63</td> <td class="nbHitsCovered"> 15</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)."> 15</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"> 13</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"> 13</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="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"> 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="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 427bad9..87fdb87 100644
--- a/coverage/com.google.enterprise.adaptor.Principal.html
+++ b/coverage/com.google.enterprise.adaptor.Principal.html
@@ -62,7 +62,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"> 674</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</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"> 664</td> <td class="src"><pre class="src"> <span class="keyword">public</span> <span class="keyword">abstract</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>
@@ -167,24 +167,24 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 85</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"> 86</td> <td class="nbHitsCovered"> 674</td> <td class="src"><pre class="src"> <span class="keyword">int</span> spacecmp = namespace.compareTo(other.namespace);</pre></td></tr>
-<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"><a title="Line 87: Conditional coverage 100% (2/2)."> 674</a></td> <td class="src"><pre class="src"> <a title="Line 87: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (0 != spacecmp) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 88</td> <td class="nbHitsCovered"> 162</td> <td class="src"><pre class="src"> <span class="keyword">return</span> spacecmp;</pre></td></tr>
+<tr> <td class="numLineCover"> 86</td> <td class="nbHitsCovered"> 664</td> <td class="src"><pre class="src"> <span class="keyword">int</span> spacecmp = namespace.compareTo(other.namespace);</pre></td></tr>
+<tr> <td class="numLineCover"> 87</td> <td class="nbHitsCovered"><a title="Line 87: Conditional coverage 100% (2/2)."> 664</a></td> <td class="src"><pre class="src"> <a title="Line 87: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (0 != spacecmp) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 88</td> <td class="nbHitsCovered"> 156</td> <td class="src"><pre class="src"> <span class="keyword">return</span> spacecmp;</pre></td></tr>
<tr> <td class="numLine"> 89</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 90</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"> 91</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"><a title="Line 92: Conditional coverage 100% (2/2)."> 512</a></td> <td class="src"><pre class="src"> <a title="Line 92: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isUser() != other.isUser()) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"><a title="Line 93: Conditional coverage 100% (2/2)."> 52</a></td> <td class="src"><pre class="src"> <a title="Line 93: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> isUser() ? -1 : 1;</a></pre></td></tr>
+<tr> <td class="numLineCover"> 92</td> <td class="nbHitsCovered"><a title="Line 92: Conditional coverage 100% (2/2)."> 508</a></td> <td class="src"><pre class="src"> <a title="Line 92: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (isUser() != other.isUser()) {</a></pre></td></tr>
+<tr> <td class="numLineCover"> 93</td> <td class="nbHitsCovered"><a title="Line 93: Conditional coverage 100% (2/2)."> 46</a></td> <td class="src"><pre class="src"> <a title="Line 93: Conditional coverage 100% (2/2)."> <span class="keyword">return</span> isUser() ? -1 : 1;</a></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="numLine"> 95</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"> 96</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> </pre></td></tr>
-<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 460</td> <td class="src"><pre class="src"> <span class="keyword">return</span> name.compareTo(other.name);</pre></td></tr>
+<tr> <td class="numLineCover"> 97</td> <td class="nbHitsCovered"> 462</td> <td class="src"><pre class="src"> <span class="keyword">return</span> name.compareTo(other.name);</pre></td></tr>
<tr> <td class="numLine"> 98</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 99</td> <td class="nbHits"> </td>
diff --git a/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html b/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
index ebce48f..61db333 100644
--- a/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
+++ b/coverage/com.google.enterprise.adaptor.ShutdownWaiter.html
@@ -124,22 +124,22 @@
<tr> <td class="numLineCover"> 53</td> <td class="nbHitsCovered"> 18</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)."> 37</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"> 19</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)."> 35</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"> 17</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>
<td class="src"><pre class="src"> <span class="comment">// Wait for all requests to complete processing.</span></pre></td></tr>
<tr> <td class="numLineCover"> 59</td> <td class="nbHitsCovered"><a title="Line 59: Conditional coverage 100% (2/2)."> 18</a></td> <td class="src"><pre class="src"> <a title="Line 59: Conditional coverage 100% (2/2)."> <span class="keyword">if</span> (!lock.writeLock().tryLock(time, unit)) {</a></pre></td></tr>
-<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 8</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 60</td> <td class="nbHitsCovered"> 6</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">false</span>;</pre></td></tr>
<tr> <td class="numLine"> 61</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 62</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// stopped == true guarantees no future request processing and obtaining the</span></pre></td></tr>
<tr> <td class="numLine"> 63</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> <span class="comment">// lock guarantees no current request processing.</span></pre></td></tr>
-<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> lock.writeLock().unlock();</pre></td></tr>
-<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 10</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 64</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> lock.writeLock().unlock();</pre></td></tr>
+<tr> <td class="numLineCover"> 65</td> <td class="nbHitsCovered"> 12</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 66</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 67</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)."> 35</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"> 4</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 4</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"> 5</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
+<tr> <td class="numLineCover"> 101</td> <td class="nbHitsCovered"> 5</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"> 31</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"> 4</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"> 4</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"> 4</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"> 4</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 136</td> <td class="nbHitsCovered"> 5</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"> 5</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"> 5</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"> 5</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"> 29</td> <td class="src"><pre class="src"> processingStarting(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 3</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"> 3</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"> 26</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 177</td> <td class="nbHitsCovered"> 4</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"> 4</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"> 25</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"> 26</td> <td class="src"><pre class="src"> delegate.run();</pre></td></tr>
+<tr> <td class="numLineCover"> 181</td> <td class="nbHitsCovered"> 25</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"> 26</td> <td class="src"><pre class="src"> processingCompleted(thread);</pre></td></tr>
-<tr> <td class="numLineCover"> 184</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src"> }</pre></td></tr>
-<tr> <td class="numLineCover"> 185</td> <td class="nbHitsCovered"> 25</td> <td class="src"><pre class="src"> }</pre></td></tr>
+<tr> <td class="numLineCover"> 183</td> <td class="nbHitsCovered"> 25</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 73b35c7..8f4f79c 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"> 106</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"> 194800</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"> 190061</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/com.google.enterprise.adaptor.UserPrincipal.html b/coverage/com.google.enterprise.adaptor.UserPrincipal.html
index 162edc8..79445d7 100644
--- a/coverage/com.google.enterprise.adaptor.UserPrincipal.html
+++ b/coverage/com.google.enterprise.adaptor.UserPrincipal.html
@@ -75,7 +75,7 @@
<td class="src"><pre class="src"> @Override</pre></td></tr>
<tr> <td class="numLine"> 31</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"> 32</td> <td class="nbHitsCovered"> 1164</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
+<tr> <td class="numLineCover"> 32</td> <td class="nbHitsCovered"> 1162</td> <td class="src"><pre class="src"> <span class="keyword">return</span> <span class="keyword">true</span>;</pre></td></tr>
<tr> <td class="numLine"> 33</td> <td class="nbHits"> </td>
<td class="src"><pre class="src"> }</pre></td></tr>
<tr> <td class="numLine"> 34</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 b2e7dd7..b408a72 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">217</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">876</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">4623/5499</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">334</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">1638/1972</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.573229873908826;</span>2.573</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">218</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">876</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">4623/5499</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">334</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">1638/1972</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.573229873908826;</span>2.573</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">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">288</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:7px"><span class="text">22/310</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">61</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:10px"><span class="text">7/68</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5238095238095237;</span>2.524</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">25</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">145</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">397/542</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">57</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">121/178</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5934065934065935;</span>2.593</td></tr>
@@ -160,23 +160,24 @@
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher</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">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$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">1.5333333333333334;</span>1.533</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Item</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">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Record</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">31/31</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">26/26</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdPusher.html">DocIdPusher$Record$Builder</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">38/38</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">4/4</span></div></div></td></tr></table></td><td class="value"><span class="hidden">1.5333333333333334;</span>1.533</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">31</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:81px"><span class="text">139/170</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:77px"><span class="text">42/54</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.277777777777778;</span>4.278</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender$AclItem</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">20/20</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">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:55px"><span class="text">10/18</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.277777777777778;</span>4.278</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocIdSender.html">DocIdSender$Item</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">4.277777777777778;</span>4.278</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:96px"><span class="text">220/228</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">6</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:95px"><span class="text">134/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$1</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">1/1</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountByteArrayOutputStream</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:0px"><span class="text">0/2</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountingOutputStream</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentRequest</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">12/12</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse</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:93px"><span class="text">152/163</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">92/104</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse$CloseNotifyOutputStream</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$MaxBufferOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$SinkOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">2/3</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">4.518518518518518;</span>4.519</td></tr>
- <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$State</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">6/6</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">4.518518518518518;</span>4.519</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">8</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:96px"><span class="text">220/228</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">6</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:95px"><span class="text">134/140</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$1</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">1/1</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$AsyncPusher</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountByteArrayOutputStream</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:0px"><span class="text">0/2</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$CountingOutputStream</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentRequest</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">12/12</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">0</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:100px"><span class="text">2/2</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse</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:93px"><span class="text">152/163</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:88px"><span class="text">92/104</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$DocumentResponse$CloseNotifyOutputStream</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$MaxBufferOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">23</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/23</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">12</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:0px"><span class="text">0/12</span></div></div></td></tr></table></td><td class="value"><span class="hidden">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$SinkOutputStream</a></td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">1</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:66px"><span class="text">2/3</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">4.454545454545454;</span>4.455</td></tr>
+ <tr><td><a href="com.google.enterprise.adaptor.DocumentHandler.html">DocumentHandler$State</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">6/6</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">4.454545454545454;</span>4.455</td></tr>
<tr><td><a href="com.google.enterprise.adaptor.DocumentTransform.html">DocumentTransform</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">1.0;</span>1</td></tr>
diff --git a/coverage/frame-summary.html b/coverage/frame-summary.html
index 48f97aa..c223066 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">310</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2116</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">5617/7733</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">764</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">1894/2658</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4424083769633507;</span>2.442</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">217</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">876</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">4623/5499</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">334</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">1638/1972</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.573229873908826;</span>2.573</td></tr>
+ <tr><td><b>All Packages</b></td><td class="value">311</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">2116</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:72px"><span class="text">5617/7733</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">764</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:71px"><span class="text">1894/2658</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.4424083769633507;</span>2.442</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">218</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">876</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:84px"><span class="text">4623/5499</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">334</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:83px"><span class="text">1638/1972</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.573229873908826;</span>2.573</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">8</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">288</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:7px"><span class="text">22/310</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">61</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:10px"><span class="text">7/68</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5238095238095237;</span>2.524</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">25</td><td><table cellpadding="0px" cellspacing="0px" class="percentgraph"><tr class="percentgraph"><td align="right" class="percentgraph" width="40">145</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:73px"><span class="text">397/542</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">57</td><td class="percentgraph"><div class="percentgraph"><div class="greenbar" style="width:67px"><span class="text">121/178</span></div></div></td></tr></table></td><td class="value"><span class="hidden">2.5934065934065935;</span>2.593</td></tr>
diff --git a/javadoc/allclasses-frame.html b/javadoc/allclasses-frame.html
index 440de6a..558273a 100644
--- a/javadoc/allclasses-frame.html
+++ b/javadoc/allclasses-frame.html
@@ -37,7 +37,6 @@
<li><a href="com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor" target="classFrame">DocId</a></li>
<li><a href="com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdEncoder</i></a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdPusher</i></a></li>
-<li><a href="com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdPusher.Item</i></a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor" target="classFrame">DocIdPusher.Record</a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor" target="classFrame">DocIdPusher.Record.Builder</a></li>
<li><a href="com/google/enterprise/adaptor/DocumentTransform.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocumentTransform</i></a></li>
diff --git a/javadoc/allclasses-noframe.html b/javadoc/allclasses-noframe.html
index c42e15c..4da9901 100644
--- a/javadoc/allclasses-noframe.html
+++ b/javadoc/allclasses-noframe.html
@@ -37,7 +37,6 @@
<li><a href="com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor">DocId</a></li>
<li><a href="com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor"><i>DocIdEncoder</i></a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><i>DocIdPusher</i></a></li>
-<li><a href="com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><i>DocIdPusher.Item</i></a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor">DocIdPusher.Record</a></li>
<li><a href="com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor">DocIdPusher.Record.Builder</a></li>
<li><a href="com/google/enterprise/adaptor/DocumentTransform.html" title="interface in com.google.enterprise.adaptor"><i>DocumentTransform</i></a></li>
diff --git a/javadoc/com/google/enterprise/adaptor/AsyncDocIdPusher.html b/javadoc/com/google/enterprise/adaptor/AsyncDocIdPusher.html
index 492fe1f..5bb3caa 100644
--- a/javadoc/com/google/enterprise/adaptor/AsyncDocIdPusher.html
+++ b/javadoc/com/google/enterprise/adaptor/AsyncDocIdPusher.html
@@ -114,18 +114,12 @@
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><strong><a href="../../../../com/google/enterprise/adaptor/AsyncDocIdPusher.html#pushItem(com.google.enterprise.adaptor.DocIdPusher.Item)">pushItem</a></strong>(<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a> item)</code>
-<div class="block">Push a <code>Item</code> asynchronously to the GSA.</div>
-</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/enterprise/adaptor/AsyncDocIdPusher.html#pushNamedResource(com.google.enterprise.adaptor.DocId, com.google.enterprise.adaptor.Acl)">pushNamedResource</a></strong>(<a href="../../../../com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor">DocId</a> docId,
<a href="../../../../com/google/enterprise/adaptor/Acl.html" title="class in com.google.enterprise.adaptor">Acl</a> acl)</code>
<div class="block">Push a named resource asynchronously to the GSA.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/enterprise/adaptor/AsyncDocIdPusher.html#pushRecord(com.google.enterprise.adaptor.DocIdPusher.Record)">pushRecord</a></strong>(<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor">DocIdPusher.Record</a> record)</code>
<div class="block">Push a <code>Record</code> asynchronously to the GSA.</div>
@@ -146,18 +140,6 @@
<!-- -->
</a>
<h3>Method Detail</h3>
-<a name="pushItem(com.google.enterprise.adaptor.DocIdPusher.Item)">
-<!-- -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>pushItem</h4>
-<pre>void pushItem(<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a> item)</pre>
-<div class="block">Push a <code>Item</code> asynchronously to the GSA. The <code>Item</code> is
- enqueued and sent in the next batch to the GSA. If the queue is full,
- then the item will be dropped and a warning will be logged.</div>
-</li>
-</ul>
<a name="pushDocId(com.google.enterprise.adaptor.DocId)">
<!-- -->
</a>
diff --git a/javadoc/com/google/enterprise/adaptor/DocIdPusher.Item.html b/javadoc/com/google/enterprise/adaptor/DocIdPusher.Item.html
deleted file mode 100644
index 6947fae..0000000
--- a/javadoc/com/google/enterprise/adaptor/DocIdPusher.Item.html
+++ /dev/null
@@ -1,163 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<title>DocIdPusher.Item</title>
-<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<script type="text/javascript"><!--
- if (location.href.indexOf('is-external=true') == -1) {
- parent.document.title="DocIdPusher.Item";
- }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar_top">
-<!-- -->
-</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?com/google/enterprise/adaptor/DocIdPusher.Item.html" target="_top">FRAMES</a></li>
-<li><a href="DocIdPusher.Item.html" target="_top">NO FRAMES</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_top");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>SUMMARY: </li>
-<li>NESTED | </li>
-<li>FIELD | </li>
-<li>CONSTR | </li>
-<li>METHOD</li>
-</ul>
-<ul class="subNavList">
-<li>DETAIL: </li>
-<li>FIELD | </li>
-<li>CONSTR | </li>
-<li>METHOD</li>
-</ul>
-</div>
-<a name="skip-navbar_top">
-<!-- -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<p class="subTitle">com.google.enterprise.adaptor</p>
-<h2 title="Interface DocIdPusher.Item" class="title">Interface DocIdPusher.Item</h2>
-</div>
-<div class="contentContainer">
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor">DocIdPusher.Record</a></dd>
-</dl>
-<dl>
-<dt>Enclosing interface:</dt>
-<dd><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor">DocIdPusher</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public static interface <strong>DocIdPusher.Item</strong></pre>
-<div class="block">Marker interface for an item that can exist in a feed.</div>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar_bottom">
-<!-- -->
-</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
-<!-- -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../index-all.html">Index</a></li>
-<li><a href="../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../index.html?com/google/enterprise/adaptor/DocIdPusher.Item.html" target="_top">FRAMES</a></li>
-<li><a href="DocIdPusher.Item.html" target="_top">NO FRAMES</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
- allClassesLink = document.getElementById("allclasses_navbar_bottom");
- if(window==top) {
- allClassesLink.style.display = "block";
- }
- else {
- allClassesLink.style.display = "none";
- }
- //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>SUMMARY: </li>
-<li>NESTED | </li>
-<li>FIELD | </li>
-<li>CONSTR | </li>
-<li>METHOD</li>
-</ul>
-<ul class="subNavList">
-<li>DETAIL: </li>
-<li>FIELD | </li>
-<li>CONSTR | </li>
-<li>METHOD</li>
-</ul>
-</div>
-<a name="skip-navbar_bottom">
-<!-- -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-</body>
-</html>
diff --git a/javadoc/com/google/enterprise/adaptor/DocIdPusher.Record.html b/javadoc/com/google/enterprise/adaptor/DocIdPusher.Record.html
index 9ff39a7..6b1ab47 100644
--- a/javadoc/com/google/enterprise/adaptor/DocIdPusher.Record.html
+++ b/javadoc/com/google/enterprise/adaptor/DocIdPusher.Record.html
@@ -33,7 +33,7 @@
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
+<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
@@ -92,18 +92,13 @@
<ul class="blockList">
<li class="blockList">
<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a></dd>
-</dl>
-<dl>
<dt>Enclosing interface:</dt>
<dd><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor">DocIdPusher</a></dd>
</dl>
<hr>
<br>
<pre>public static final class <strong>DocIdPusher.Record</strong>
-extends <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements <a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a></pre>
+extends <a href="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Immutable feed attributes for a document identified by its <code>DocId</code>.</div>
</li>
</ul>
@@ -375,7 +370,7 @@
</div>
<div class="subNav">
<ul class="navList">
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
+<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
diff --git a/javadoc/com/google/enterprise/adaptor/DocIdPusher.html b/javadoc/com/google/enterprise/adaptor/DocIdPusher.html
index 4bd90a7..13cb0e7 100644
--- a/javadoc/com/google/enterprise/adaptor/DocIdPusher.html
+++ b/javadoc/com/google/enterprise/adaptor/DocIdPusher.html
@@ -34,7 +34,7 @@
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
+<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/enterprise/adaptor/DocIdPusher.html" target="_top">FRAMES</a></li>
@@ -106,12 +106,6 @@
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
-<td class="colFirst"><code>static interface </code></td>
-<td class="colLast"><code><strong><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a></strong></code>
-<div class="block">Marker interface for an item that can exist in a feed.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><code>static class </code></td>
<td class="colLast"><code><strong><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor">DocIdPusher.Record</a></strong></code>
<div class="block">Immutable feed attributes for a document identified by its <code>DocId</code>.</div>
@@ -418,7 +412,7 @@
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PREV CLASS</span></a></li>
-<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
+<li><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/google/enterprise/adaptor/DocIdPusher.html" target="_top">FRAMES</a></li>
diff --git a/javadoc/com/google/enterprise/adaptor/package-frame.html b/javadoc/com/google/enterprise/adaptor/package-frame.html
index a9e3b00..7f20ff2 100644
--- a/javadoc/com/google/enterprise/adaptor/package-frame.html
+++ b/javadoc/com/google/enterprise/adaptor/package-frame.html
@@ -20,7 +20,6 @@
<li><a href="AuthzAuthority.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>AuthzAuthority</i></a></li>
<li><a href="DocIdEncoder.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdEncoder</i></a></li>
<li><a href="DocIdPusher.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdPusher</i></a></li>
-<li><a href="DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocIdPusher.Item</i></a></li>
<li><a href="DocumentTransform.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>DocumentTransform</i></a></li>
<li><a href="ExceptionHandler.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>ExceptionHandler</i></a></li>
<li><a href="PollingIncrementalLister.html" title="interface in com.google.enterprise.adaptor" target="classFrame"><i>PollingIncrementalLister</i></a></li>
diff --git a/javadoc/com/google/enterprise/adaptor/package-summary.html b/javadoc/com/google/enterprise/adaptor/package-summary.html
index 09a1d46..42bee43 100644
--- a/javadoc/com/google/enterprise/adaptor/package-summary.html
+++ b/javadoc/com/google/enterprise/adaptor/package-summary.html
@@ -140,64 +140,58 @@
</td>
</tr>
<tr class="altColor">
-<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a></td>
-<td class="colLast">
-<div class="block">Marker interface for an item that can exist in a feed.</div>
-</td>
-</tr>
-<tr class="rowColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/DocumentTransform.html" title="interface in com.google.enterprise.adaptor">DocumentTransform</a></td>
<td class="colLast">
<div class="block">Represents an individual transform in the transform pipeline.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/ExceptionHandler.html" title="interface in com.google.enterprise.adaptor">ExceptionHandler</a></td>
<td class="colLast">
<div class="block">Interface for handling errors and handling retrying policy.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/PollingIncrementalLister.html" title="interface in com.google.enterprise.adaptor">PollingIncrementalLister</a></td>
<td class="colLast">
<div class="block">Interface for library-assisted polling incremental adaptors.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/Request.html" title="interface in com.google.enterprise.adaptor">Request</a></td>
<td class="colLast">
<div class="block">Interface provided to <a href="../../../../com/google/enterprise/adaptor/Adaptor.html#getDocContent(com.google.enterprise.adaptor.Request, com.google.enterprise.adaptor.Response)"><code>Adaptor.getDocContent(Request, Response)</code></a> for describing the action that
should be taken.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/Response.html" title="interface in com.google.enterprise.adaptor">Response</a></td>
<td class="colLast">
<div class="block">Interface provided to <a href="../../../../com/google/enterprise/adaptor/Adaptor.html#getDocContent(com.google.enterprise.adaptor.Request, com.google.enterprise.adaptor.Response)"><code>Adaptor.getDocContent(Request, Response)</code></a> for performing the actions needed
to satisfy a request.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/SensitiveValueDecoder.html" title="interface in com.google.enterprise.adaptor">SensitiveValueDecoder</a></td>
<td class="colLast">
<div class="block">Provides parsing of sensitive values that can be plain text, obfuscated, or
encrypted.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/Session.html" title="interface in com.google.enterprise.adaptor">Session</a></td>
<td class="colLast">
<div class="block">Generic session-state container, but intended for authn bookkeeping.</div>
</td>
</tr>
-<tr class="altColor">
+<tr class="rowColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/Status.html" title="interface in com.google.enterprise.adaptor">Status</a></td>
<td class="colLast">
<div class="block">Multi-state indicator providing the user with a notification of broken parts
of the system.</div>
</td>
</tr>
-<tr class="rowColor">
+<tr class="altColor">
<td class="colFirst"><a href="../../../../com/google/enterprise/adaptor/StatusSource.html" title="interface in com.google.enterprise.adaptor">StatusSource</a></td>
<td class="colLast">
<div class="block">A source of <a href="../../../../com/google/enterprise/adaptor/Status.html" title="interface in com.google.enterprise.adaptor"><code>Status</code></a> messages.</div>
diff --git a/javadoc/com/google/enterprise/adaptor/package-tree.html b/javadoc/com/google/enterprise/adaptor/package-tree.html
index 2829c25..045c721 100644
--- a/javadoc/com/google/enterprise/adaptor/package-tree.html
+++ b/javadoc/com/google/enterprise/adaptor/package-tree.html
@@ -79,7 +79,7 @@
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/Config.html" title="class in com.google.enterprise.adaptor"><span class="strong">Config</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/Daemon.html" title="class in com.google.enterprise.adaptor"><span class="strong">Daemon</span></a> (implements org.apache.commons.daemon.<a href="http://commons.apache.org/proper/commons-daemon/apidocs/org/apache/commons/daemon/Daemon.html?is-external=true" title="class or interface in org.apache.commons.daemon">Daemon</a>)</li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocId</span></a> (implements java.lang.<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>)</li>
-<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record</span></a> (implements com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a>)</li>
+<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record.Builder</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/ExceptionHandlers.html" title="class in com.google.enterprise.adaptor"><span class="strong">ExceptionHandlers</span></a></li>
<li type="circle">java.util.logging.<a href="http://download.oracle.com/javase/6/docs/api/java/util/logging/Formatter.html?is-external=true" title="class or interface in java.util.logging"><span class="strong">Formatter</span></a>
@@ -114,7 +114,6 @@
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/AuthzAuthority.html" title="interface in com.google.enterprise.adaptor"><span class="strong">AuthzAuthority</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdEncoder</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdPusher</span></a></li>
-<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Item</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/DocumentTransform.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocumentTransform</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/ExceptionHandler.html" title="interface in com.google.enterprise.adaptor"><span class="strong">ExceptionHandler</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="../../../../com/google/enterprise/adaptor/PollingIncrementalLister.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PollingIncrementalLister</span></a></li>
diff --git a/javadoc/index-all.html b/javadoc/index-all.html
index b7db789..32681a4 100644
--- a/javadoc/index-all.html
+++ b/javadoc/index-all.html
@@ -348,10 +348,6 @@
<dd>
<div class="block">Interface that allows at-will pushing of <code>DocId</code>s to the GSA.</div>
</dd>
-<dt><a href="./com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Item</span></a> - Interface in <a href="./com/google/enterprise/adaptor/package-summary.html">com.google.enterprise.adaptor</a></dt>
-<dd>
-<div class="block">Marker interface for an item that can exist in a feed.</div>
-</dd>
<dt><a href="./com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record</span></a> - Class in <a href="./com/google/enterprise/adaptor/package-summary.html">com.google.enterprise.adaptor</a></dt>
<dd>
<div class="block">Immutable feed attributes for a document identified by its <code>DocId</code>.</div>
@@ -1096,10 +1092,6 @@
<div class="block">Blocking call to push group definitions to GSA ends in success or
when provided error handler gives up.</div>
</dd>
-<dt><span class="strong"><a href="./com/google/enterprise/adaptor/AsyncDocIdPusher.html#pushItem(com.google.enterprise.adaptor.DocIdPusher.Item)">pushItem(DocIdPusher.Item)</a></span> - Method in interface com.google.enterprise.adaptor.<a href="./com/google/enterprise/adaptor/AsyncDocIdPusher.html" title="interface in com.google.enterprise.adaptor">AsyncDocIdPusher</a></dt>
-<dd>
-<div class="block">Push a <code>Item</code> asynchronously to the GSA.</div>
-</dd>
<dt><span class="strong"><a href="./com/google/enterprise/adaptor/AsyncDocIdPusher.html#pushNamedResource(com.google.enterprise.adaptor.DocId, com.google.enterprise.adaptor.Acl)">pushNamedResource(DocId, Acl)</a></span> - Method in interface com.google.enterprise.adaptor.<a href="./com/google/enterprise/adaptor/AsyncDocIdPusher.html" title="interface in com.google.enterprise.adaptor">AsyncDocIdPusher</a></dt>
<dd>
<div class="block">Push a named resource asynchronously to the GSA.</div>
diff --git a/javadoc/overview-tree.html b/javadoc/overview-tree.html
index 0540b47..abeb8d9 100644
--- a/javadoc/overview-tree.html
+++ b/javadoc/overview-tree.html
@@ -95,7 +95,7 @@
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/Config.html" title="class in com.google.enterprise.adaptor"><span class="strong">Config</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/Daemon.html" title="class in com.google.enterprise.adaptor"><span class="strong">Daemon</span></a> (implements org.apache.commons.daemon.<a href="http://commons.apache.org/proper/commons-daemon/apidocs/org/apache/commons/daemon/Daemon.html?is-external=true" title="class or interface in org.apache.commons.daemon">Daemon</a>)</li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocId.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocId</span></a> (implements java.lang.<a href="http://download.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a><T>)</li>
-<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record</span></a> (implements com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor">DocIdPusher.Item</a>)</li>
+<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.Record.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.Record.Builder.html" title="class in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Record.Builder</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/ExceptionHandlers.html" title="class in com.google.enterprise.adaptor"><span class="strong">ExceptionHandlers</span></a></li>
<li type="circle">java.util.logging.<a href="http://download.oracle.com/javase/6/docs/api/java/util/logging/Formatter.html?is-external=true" title="class or interface in java.util.logging"><span class="strong">Formatter</span></a>
@@ -148,7 +148,6 @@
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/AuthzAuthority.html" title="interface in com.google.enterprise.adaptor"><span class="strong">AuthzAuthority</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdEncoder.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdEncoder</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdPusher</span></a></li>
-<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocIdPusher.Item.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocIdPusher.Item</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/DocumentTransform.html" title="interface in com.google.enterprise.adaptor"><span class="strong">DocumentTransform</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/ExceptionHandler.html" title="interface in com.google.enterprise.adaptor"><span class="strong">ExceptionHandler</span></a></li>
<li type="circle">com.google.enterprise.adaptor.<a href="com/google/enterprise/adaptor/PollingIncrementalLister.html" title="interface in com.google.enterprise.adaptor"><span class="strong">PollingIncrementalLister</span></a></li>