You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mi...@apache.org on 2017/03/21 16:36:13 UTC

[17/52] [partial] hbase-site git commit: Published site at 1cfd22bf43c9b64afae35d9bf16f764d0da80cab.

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html b/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
index 7f2ddf1..c6e88dd 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/ScanResultConsumer.html
@@ -27,33 +27,42 @@
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.21"></a>
-<span class="sourceLineNo">022</span><a name="line.22"></a>
-<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
-<span class="sourceLineNo">024</span> * Receives {@link Result} for an asynchronous scan.<a name="line.24"></a>
-<span class="sourceLineNo">025</span> */<a name="line.25"></a>
-<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
-<span class="sourceLineNo">027</span>@InterfaceStability.Unstable<a name="line.27"></a>
-<span class="sourceLineNo">028</span>public interface ScanResultConsumer {<a name="line.28"></a>
-<span class="sourceLineNo">029</span><a name="line.29"></a>
-<span class="sourceLineNo">030</span>  /**<a name="line.30"></a>
-<span class="sourceLineNo">031</span>   * @param result the data fetched from HBase service.<a name="line.31"></a>
-<span class="sourceLineNo">032</span>   * @return {@code false} if you want to terminate the scan process. Otherwise {@code true}<a name="line.32"></a>
-<span class="sourceLineNo">033</span>   */<a name="line.33"></a>
-<span class="sourceLineNo">034</span>  boolean onNext(Result result);<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
-<span class="sourceLineNo">037</span>   * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.37"></a>
-<span class="sourceLineNo">038</span>   * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>   * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.39"></a>
-<span class="sourceLineNo">040</span>   */<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  void onError(Throwable error);<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  /**<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   * Indicate that the scan operation is completed normally.<a name="line.44"></a>
-<span class="sourceLineNo">045</span>   */<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  void onComplete();<a name="line.46"></a>
-<span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>}<a name="line.48"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.client.metrics.ScanMetrics;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>/**<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * Receives {@link Result} for an asynchronous scan.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>@InterfaceStability.Unstable<a name="line.28"></a>
+<span class="sourceLineNo">029</span>public interface ScanResultConsumer {<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>  /**<a name="line.31"></a>
+<span class="sourceLineNo">032</span>   * @param result the data fetched from HBase service.<a name="line.32"></a>
+<span class="sourceLineNo">033</span>   * @return {@code false} if you want to terminate the scan process. Otherwise {@code true}<a name="line.33"></a>
+<span class="sourceLineNo">034</span>   */<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  boolean onNext(Result result);<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  /**<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * Indicate that we hit an unrecoverable error and the scan operation is terminated.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   * &lt;p&gt;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   * We will not call {@link #onComplete()} after calling {@link #onError(Throwable)}.<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  void onError(Throwable error);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * Indicate that the scan operation is completed normally.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   */<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  void onComplete();<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  /**<a name="line.49"></a>
+<span class="sourceLineNo">050</span>   * If {@code scan.isScanMetricsEnabled()} returns true, then this method will be called prior to<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * all other methods in this interface to give you the {@link ScanMetrics} instance for this scan<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * operation. The {@link ScanMetrics} instance will be updated on-the-fly during the scan, you can<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * store it somewhere to get the metrics at any time if you want.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  default void onScanMetricsCreated(ScanMetrics scanMetrics) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
+<span class="sourceLineNo">057</span>}<a name="line.57"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html b/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
index f4ced21..11f3dbd 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/TableSnapshotScanner.html
@@ -135,7 +135,7 @@
 <span class="sourceLineNo">127</span>    final List&lt;HRegionInfo&gt; restoredRegions = meta.getRegionsToAdd();<a name="line.127"></a>
 <span class="sourceLineNo">128</span><a name="line.128"></a>
 <span class="sourceLineNo">129</span>    htd = meta.getTableDescriptor();<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    regions = new ArrayList&lt;HRegionInfo&gt;(restoredRegions.size());<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    regions = new ArrayList&lt;&gt;(restoredRegions.size());<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    for (HRegionInfo hri: restoredRegions) {<a name="line.131"></a>
 <span class="sourceLineNo">132</span>      if (CellUtil.overlappingKeys(scan.getStartRow(), scan.getStopRow(),<a name="line.132"></a>
 <span class="sourceLineNo">133</span>          hri.getStartKey(), hri.getEndKey())) {<a name="line.133"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
index b2f1221..b9503b7 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/client/replication/ReplicationAdmin.html
@@ -26,49 +26,49 @@
 <span class="sourceLineNo">018</span> */<a name="line.18"></a>
 <span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.client.replication;<a name="line.19"></a>
 <span class="sourceLineNo">020</span><a name="line.20"></a>
-<span class="sourceLineNo">021</span>import com.google.common.annotations.VisibleForTesting;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import com.google.common.collect.Lists;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.io.Closeable;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import java.io.IOException;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.util.ArrayList;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.Collection;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.HashMap;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.HashSet;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.List;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.Map;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.TreeMap;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Map.Entry;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Set;<a name="line.34"></a>
-<span class="sourceLineNo">035</span><a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.commons.logging.Log;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.commons.logging.LogFactory;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.conf.Configuration;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.Abortable;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.HConstants;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.TableName;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.HBaseAdmin;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.replication.ReplicationFactory;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.replication.ReplicationPeer;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.replication.ReplicationPeers;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClient;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClientArguments;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.63"></a>
+<span class="sourceLineNo">021</span>import java.io.Closeable;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.ArrayList;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import java.util.Collection;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import java.util.HashMap;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import java.util.HashSet;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.Map.Entry;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.Set;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.TreeMap;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.commons.logging.Log;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.commons.logging.LogFactory;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.conf.Configuration;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.Abortable;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.HConstants;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ReplicationPeerNotFoundException;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableName;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableNotFoundException;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.classification.InterfaceStability;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.HBaseAdmin;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.RegionLocator;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.replication.ReplicationException;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.replication.ReplicationFactory;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.replication.ReplicationPeer;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.replication.ReplicationPeerConfig;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.replication.ReplicationPeerDescription;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.replication.ReplicationPeers;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClient;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.replication.ReplicationQueuesClientArguments;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>import com.google.common.annotations.VisibleForTesting;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import com.google.common.collect.Lists;<a name="line.63"></a>
 <span class="sourceLineNo">064</span><a name="line.64"></a>
 <span class="sourceLineNo">065</span>/**<a name="line.65"></a>
 <span class="sourceLineNo">066</span> * &lt;p&gt;<a name="line.66"></a>
@@ -281,7 +281,7 @@
 <span class="sourceLineNo">273</span>  @Deprecated<a name="line.273"></a>
 <span class="sourceLineNo">274</span>  public Map&lt;String, ReplicationPeerConfig&gt; listPeerConfigs() throws IOException {<a name="line.274"></a>
 <span class="sourceLineNo">275</span>    List&lt;ReplicationPeerDescription&gt; peers = this.admin.listReplicationPeers();<a name="line.275"></a>
-<span class="sourceLineNo">276</span>    Map&lt;String, ReplicationPeerConfig&gt; result = new TreeMap&lt;String, ReplicationPeerConfig&gt;();<a name="line.276"></a>
+<span class="sourceLineNo">276</span>    Map&lt;String, ReplicationPeerConfig&gt; result = new TreeMap&lt;&gt;();<a name="line.276"></a>
 <span class="sourceLineNo">277</span>    for (ReplicationPeerDescription peer : peers) {<a name="line.277"></a>
 <span class="sourceLineNo">278</span>      result.put(peer.getPeerId(), peer.getPeerConfig());<a name="line.278"></a>
 <span class="sourceLineNo">279</span>    }<a name="line.279"></a>
@@ -351,7 +351,7 @@
 <span class="sourceLineNo">343</span>        if (cfs == null || appendCfs == null || appendCfs.isEmpty()) {<a name="line.343"></a>
 <span class="sourceLineNo">344</span>          preTableCfs.put(table, null);<a name="line.344"></a>
 <span class="sourceLineNo">345</span>        } else {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>          Set&lt;String&gt; cfSet = new HashSet&lt;String&gt;(cfs);<a name="line.346"></a>
+<span class="sourceLineNo">346</span>          Set&lt;String&gt; cfSet = new HashSet&lt;&gt;(cfs);<a name="line.346"></a>
 <span class="sourceLineNo">347</span>          cfSet.addAll(appendCfs);<a name="line.347"></a>
 <span class="sourceLineNo">348</span>          preTableCfs.put(table, Lists.newArrayList(cfSet));<a name="line.348"></a>
 <span class="sourceLineNo">349</span>        }<a name="line.349"></a>
@@ -408,7 +408,7 @@
 <span class="sourceLineNo">400</span>        if (cfs == null &amp;&amp; (removeCfs == null || removeCfs.isEmpty())) {<a name="line.400"></a>
 <span class="sourceLineNo">401</span>          preTableCfs.remove(table);<a name="line.401"></a>
 <span class="sourceLineNo">402</span>        } else if (cfs != null &amp;&amp; (removeCfs != null &amp;&amp; !removeCfs.isEmpty())) {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>          Set&lt;String&gt; cfSet = new HashSet&lt;String&gt;(cfs);<a name="line.403"></a>
+<span class="sourceLineNo">403</span>          Set&lt;String&gt; cfSet = new HashSet&lt;&gt;(cfs);<a name="line.403"></a>
 <span class="sourceLineNo">404</span>          cfSet.removeAll(removeCfs);<a name="line.404"></a>
 <span class="sourceLineNo">405</span>          if (cfSet.isEmpty()) {<a name="line.405"></a>
 <span class="sourceLineNo">406</span>            preTableCfs.remove(table);<a name="line.406"></a>
@@ -492,7 +492,7 @@
 <span class="sourceLineNo">484</span>        tableCFs.getColumnFamilyMap()<a name="line.484"></a>
 <span class="sourceLineNo">485</span>            .forEach(<a name="line.485"></a>
 <span class="sourceLineNo">486</span>              (cf, scope) -&gt; {<a name="line.486"></a>
-<span class="sourceLineNo">487</span>                HashMap&lt;String, String&gt; replicationEntry = new HashMap&lt;String, String&gt;();<a name="line.487"></a>
+<span class="sourceLineNo">487</span>                HashMap&lt;String, String&gt; replicationEntry = new HashMap&lt;&gt;();<a name="line.487"></a>
 <span class="sourceLineNo">488</span>                replicationEntry.put(TNAME, table);<a name="line.488"></a>
 <span class="sourceLineNo">489</span>                replicationEntry.put(CFNAME, cf);<a name="line.489"></a>
 <span class="sourceLineNo">490</span>                replicationEntry.put(REPLICATIONTYPE,<a name="line.490"></a>
@@ -529,66 +529,71 @@
 <span class="sourceLineNo">521</span>  }<a name="line.521"></a>
 <span class="sourceLineNo">522</span><a name="line.522"></a>
 <span class="sourceLineNo">523</span>  @VisibleForTesting<a name="line.523"></a>
-<span class="sourceLineNo">524</span>  public void peerAdded(String id) throws ReplicationException {<a name="line.524"></a>
-<span class="sourceLineNo">525</span>    this.replicationPeers.peerConnected(id);<a name="line.525"></a>
-<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
-<span class="sourceLineNo">527</span><a name="line.527"></a>
-<span class="sourceLineNo">528</span>  @VisibleForTesting<a name="line.528"></a>
-<span class="sourceLineNo">529</span>  List&lt;ReplicationPeer&gt; listReplicationPeers() throws IOException {<a name="line.529"></a>
-<span class="sourceLineNo">530</span>    Map&lt;String, ReplicationPeerConfig&gt; peers = listPeerConfigs();<a name="line.530"></a>
-<span class="sourceLineNo">531</span>    if (peers == null || peers.size() &lt;= 0) {<a name="line.531"></a>
-<span class="sourceLineNo">532</span>      return null;<a name="line.532"></a>
-<span class="sourceLineNo">533</span>    }<a name="line.533"></a>
-<span class="sourceLineNo">534</span>    List&lt;ReplicationPeer&gt; listOfPeers = new ArrayList&lt;ReplicationPeer&gt;(peers.size());<a name="line.534"></a>
-<span class="sourceLineNo">535</span>    for (Entry&lt;String, ReplicationPeerConfig&gt; peerEntry : peers.entrySet()) {<a name="line.535"></a>
-<span class="sourceLineNo">536</span>      String peerId = peerEntry.getKey();<a name="line.536"></a>
-<span class="sourceLineNo">537</span>      try {<a name="line.537"></a>
-<span class="sourceLineNo">538</span>        Pair&lt;ReplicationPeerConfig, Configuration&gt; pair = this.replicationPeers.getPeerConf(peerId);<a name="line.538"></a>
-<span class="sourceLineNo">539</span>        Configuration peerConf = pair.getSecond();<a name="line.539"></a>
-<span class="sourceLineNo">540</span>        ReplicationPeer peer = new ReplicationPeerZKImpl(zkw, pair.getSecond(),<a name="line.540"></a>
-<span class="sourceLineNo">541</span>          peerId, pair.getFirst(), this.connection);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>        listOfPeers.add(peer);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>      } catch (ReplicationException e) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>        LOG.warn("Failed to get valid replication peers. "<a name="line.544"></a>
-<span class="sourceLineNo">545</span>            + "Error connecting to peer cluster with peerId=" + peerId + ". Error message="<a name="line.545"></a>
-<span class="sourceLineNo">546</span>            + e.getMessage());<a name="line.546"></a>
-<span class="sourceLineNo">547</span>        LOG.debug("Failure details to get valid replication peers.", e);<a name="line.547"></a>
-<span class="sourceLineNo">548</span>        continue;<a name="line.548"></a>
-<span class="sourceLineNo">549</span>      }<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    }<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    return listOfPeers;<a name="line.551"></a>
-<span class="sourceLineNo">552</span>  }<a name="line.552"></a>
-<span class="sourceLineNo">553</span><a name="line.553"></a>
-<span class="sourceLineNo">554</span>  /**<a name="line.554"></a>
-<span class="sourceLineNo">555</span>   * Set a namespace in the peer config means that all tables in this namespace<a name="line.555"></a>
-<span class="sourceLineNo">556</span>   * will be replicated to the peer cluster.<a name="line.556"></a>
-<span class="sourceLineNo">557</span>   *<a name="line.557"></a>
-<span class="sourceLineNo">558</span>   * 1. If you already have set a namespace in the peer config, then you can't set any table<a name="line.558"></a>
-<span class="sourceLineNo">559</span>   *    of this namespace to the peer config.<a name="line.559"></a>
-<span class="sourceLineNo">560</span>   * 2. If you already have set a table in the peer config, then you can't set this table's<a name="line.560"></a>
-<span class="sourceLineNo">561</span>   *    namespace to the peer config.<a name="line.561"></a>
+<span class="sourceLineNo">524</span>  @Deprecated<a name="line.524"></a>
+<span class="sourceLineNo">525</span>  public void peerAdded(String id) throws ReplicationException {<a name="line.525"></a>
+<span class="sourceLineNo">526</span>    this.replicationPeers.peerConnected(id);<a name="line.526"></a>
+<span class="sourceLineNo">527</span>  }<a name="line.527"></a>
+<span class="sourceLineNo">528</span><a name="line.528"></a>
+<span class="sourceLineNo">529</span>  /**<a name="line.529"></a>
+<span class="sourceLineNo">530</span>   * @deprecated use {@link org.apache.hadoop.hbase.client.Admin#listReplicationPeers()} instead<a name="line.530"></a>
+<span class="sourceLineNo">531</span>   */<a name="line.531"></a>
+<span class="sourceLineNo">532</span>  @VisibleForTesting<a name="line.532"></a>
+<span class="sourceLineNo">533</span>  @Deprecated<a name="line.533"></a>
+<span class="sourceLineNo">534</span>  List&lt;ReplicationPeer&gt; listReplicationPeers() throws IOException {<a name="line.534"></a>
+<span class="sourceLineNo">535</span>    Map&lt;String, ReplicationPeerConfig&gt; peers = listPeerConfigs();<a name="line.535"></a>
+<span class="sourceLineNo">536</span>    if (peers == null || peers.size() &lt;= 0) {<a name="line.536"></a>
+<span class="sourceLineNo">537</span>      return null;<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    }<a name="line.538"></a>
+<span class="sourceLineNo">539</span>    List&lt;ReplicationPeer&gt; listOfPeers = new ArrayList&lt;&gt;(peers.size());<a name="line.539"></a>
+<span class="sourceLineNo">540</span>    for (Entry&lt;String, ReplicationPeerConfig&gt; peerEntry : peers.entrySet()) {<a name="line.540"></a>
+<span class="sourceLineNo">541</span>      String peerId = peerEntry.getKey();<a name="line.541"></a>
+<span class="sourceLineNo">542</span>      try {<a name="line.542"></a>
+<span class="sourceLineNo">543</span>        Pair&lt;ReplicationPeerConfig, Configuration&gt; pair = this.replicationPeers.getPeerConf(peerId);<a name="line.543"></a>
+<span class="sourceLineNo">544</span>        Configuration peerConf = pair.getSecond();<a name="line.544"></a>
+<span class="sourceLineNo">545</span>        ReplicationPeer peer = new ReplicationPeerZKImpl(zkw, pair.getSecond(),<a name="line.545"></a>
+<span class="sourceLineNo">546</span>          peerId, pair.getFirst(), this.connection);<a name="line.546"></a>
+<span class="sourceLineNo">547</span>        listOfPeers.add(peer);<a name="line.547"></a>
+<span class="sourceLineNo">548</span>      } catch (ReplicationException e) {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>        LOG.warn("Failed to get valid replication peers. "<a name="line.549"></a>
+<span class="sourceLineNo">550</span>            + "Error connecting to peer cluster with peerId=" + peerId + ". Error message="<a name="line.550"></a>
+<span class="sourceLineNo">551</span>            + e.getMessage());<a name="line.551"></a>
+<span class="sourceLineNo">552</span>        LOG.debug("Failure details to get valid replication peers.", e);<a name="line.552"></a>
+<span class="sourceLineNo">553</span>        continue;<a name="line.553"></a>
+<span class="sourceLineNo">554</span>      }<a name="line.554"></a>
+<span class="sourceLineNo">555</span>    }<a name="line.555"></a>
+<span class="sourceLineNo">556</span>    return listOfPeers;<a name="line.556"></a>
+<span class="sourceLineNo">557</span>  }<a name="line.557"></a>
+<span class="sourceLineNo">558</span><a name="line.558"></a>
+<span class="sourceLineNo">559</span>  /**<a name="line.559"></a>
+<span class="sourceLineNo">560</span>   * Set a namespace in the peer config means that all tables in this namespace<a name="line.560"></a>
+<span class="sourceLineNo">561</span>   * will be replicated to the peer cluster.<a name="line.561"></a>
 <span class="sourceLineNo">562</span>   *<a name="line.562"></a>
-<span class="sourceLineNo">563</span>   * @param namespaces<a name="line.563"></a>
-<span class="sourceLineNo">564</span>   * @param tableCfs<a name="line.564"></a>
-<span class="sourceLineNo">565</span>   * @throws ReplicationException<a name="line.565"></a>
-<span class="sourceLineNo">566</span>   */<a name="line.566"></a>
-<span class="sourceLineNo">567</span>  private void checkNamespacesAndTableCfsConfigConflict(Set&lt;String&gt; namespaces,<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs) throws ReplicationException {<a name="line.568"></a>
-<span class="sourceLineNo">569</span>    if (namespaces == null || namespaces.isEmpty()) {<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      return;<a name="line.570"></a>
-<span class="sourceLineNo">571</span>    }<a name="line.571"></a>
-<span class="sourceLineNo">572</span>    if (tableCfs == null || tableCfs.isEmpty()) {<a name="line.572"></a>
-<span class="sourceLineNo">573</span>      return;<a name="line.573"></a>
-<span class="sourceLineNo">574</span>    }<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    for (Map.Entry&lt;TableName, ? extends Collection&lt;String&gt;&gt; entry : tableCfs.entrySet()) {<a name="line.575"></a>
-<span class="sourceLineNo">576</span>      TableName table = entry.getKey();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>      if (namespaces.contains(table.getNamespaceAsString())) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>        throw new ReplicationException(<a name="line.578"></a>
-<span class="sourceLineNo">579</span>            "Table-cfs config conflict with namespaces config in peer");<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      }<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>  }<a name="line.582"></a>
-<span class="sourceLineNo">583</span>}<a name="line.583"></a>
+<span class="sourceLineNo">563</span>   * 1. If you already have set a namespace in the peer config, then you can't set any table<a name="line.563"></a>
+<span class="sourceLineNo">564</span>   *    of this namespace to the peer config.<a name="line.564"></a>
+<span class="sourceLineNo">565</span>   * 2. If you already have set a table in the peer config, then you can't set this table's<a name="line.565"></a>
+<span class="sourceLineNo">566</span>   *    namespace to the peer config.<a name="line.566"></a>
+<span class="sourceLineNo">567</span>   *<a name="line.567"></a>
+<span class="sourceLineNo">568</span>   * @param namespaces<a name="line.568"></a>
+<span class="sourceLineNo">569</span>   * @param tableCfs<a name="line.569"></a>
+<span class="sourceLineNo">570</span>   * @throws ReplicationException<a name="line.570"></a>
+<span class="sourceLineNo">571</span>   */<a name="line.571"></a>
+<span class="sourceLineNo">572</span>  private void checkNamespacesAndTableCfsConfigConflict(Set&lt;String&gt; namespaces,<a name="line.572"></a>
+<span class="sourceLineNo">573</span>      Map&lt;TableName, ? extends Collection&lt;String&gt;&gt; tableCfs) throws ReplicationException {<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    if (namespaces == null || namespaces.isEmpty()) {<a name="line.574"></a>
+<span class="sourceLineNo">575</span>      return;<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    }<a name="line.576"></a>
+<span class="sourceLineNo">577</span>    if (tableCfs == null || tableCfs.isEmpty()) {<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      return;<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span>    for (Map.Entry&lt;TableName, ? extends Collection&lt;String&gt;&gt; entry : tableCfs.entrySet()) {<a name="line.580"></a>
+<span class="sourceLineNo">581</span>      TableName table = entry.getKey();<a name="line.581"></a>
+<span class="sourceLineNo">582</span>      if (namespaces.contains(table.getNamespaceAsString())) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>        throw new ReplicationException(<a name="line.583"></a>
+<span class="sourceLineNo">584</span>            "Table-cfs config conflict with namespaces config in peer");<a name="line.584"></a>
+<span class="sourceLineNo">585</span>      }<a name="line.585"></a>
+<span class="sourceLineNo">586</span>    }<a name="line.586"></a>
+<span class="sourceLineNo">587</span>  }<a name="line.587"></a>
+<span class="sourceLineNo">588</span>}<a name="line.588"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html b/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
index ab67bc0..8540fe3 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/errorhandling/ForeignException.html
@@ -115,92 +115,91 @@
 <span class="sourceLineNo">107</span>    // if there is no stack trace, ignore it and just return the message<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    if (trace == null) return null;<a name="line.108"></a>
 <span class="sourceLineNo">109</span>    // build the stack trace for the message<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    List&lt;StackTraceElementMessage&gt; pbTrace =<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        new ArrayList&lt;StackTraceElementMessage&gt;(trace.length);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    for (StackTraceElement elem : trace) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      StackTraceElementMessage.Builder stackBuilder = StackTraceElementMessage.newBuilder();<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      stackBuilder.setDeclaringClass(elem.getClassName());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      stackBuilder.setFileName(elem.getFileName());<a name="line.115"></a>
-<span class="sourceLineNo">116</span>      stackBuilder.setLineNumber(elem.getLineNumber());<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      stackBuilder.setMethodName(elem.getMethodName());<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      pbTrace.add(stackBuilder.build());<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    return pbTrace;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
-<span class="sourceLineNo">124</span>   * This is a Proxy Throwable that contains the information of the original remote exception<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   */<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  private static class ProxyThrowable extends Throwable {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    ProxyThrowable(String msg, StackTraceElement[] trace) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      super(msg);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      this.setStackTrace(trace);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  /**<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * Converts a ForeignException to an array of bytes.<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * @param source the name of the external exception source<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * @param t the "local" external exception (local)<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @return protobuf serialized version of ForeignException<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static byte[] serialize(String source, Throwable t) {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    gemBuilder.setClassName(t.getClass().getName());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    if (t.getMessage() != null) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      gemBuilder.setMessage(t.getMessage());<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    // set the stack trace, if there is one<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    List&lt;StackTraceElementMessage&gt; stack =<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        ForeignException.toStackTraceElementMessages(t.getStackTrace());<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    if (stack != null) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      gemBuilder.addAllTrace(stack);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    GenericExceptionMessage payload = gemBuilder.build();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    exception.setGenericException(payload).setSource(source);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    ForeignExceptionMessage eem = exception.build();<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    return eem.toByteArray();<a name="line.155"></a>
-<span class="sourceLineNo">156</span>  }<a name="line.156"></a>
-<span class="sourceLineNo">157</span><a name="line.157"></a>
-<span class="sourceLineNo">158</span>  /**<a name="line.158"></a>
-<span class="sourceLineNo">159</span>   * Takes a series of bytes and tries to generate an ForeignException instance for it.<a name="line.159"></a>
-<span class="sourceLineNo">160</span>   * @param bytes<a name="line.160"></a>
-<span class="sourceLineNo">161</span>   * @return the ForeignExcpetion instance<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * @throws InvalidProtocolBufferException if there was deserialization problem this is thrown.<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException <a name="line.163"></a>
-<span class="sourceLineNo">164</span>   */<a name="line.164"></a>
-<span class="sourceLineNo">165</span>  public static ForeignException deserialize(byte[] bytes)<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  throws IOException {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    // figure out the data we need to pass<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    ForeignExceptionMessage eem = ForeignExceptionMessage.parseFrom(bytes);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    GenericExceptionMessage gem = eem.getGenericException();<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    StackTraceElement [] trace = ForeignException.toStackTrace(gem.getTraceList());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    ProxyThrowable dfe = new ProxyThrowable(gem.getMessage(), trace);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    ForeignException e = new ForeignException(eem.getSource(), dfe);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    return e;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  }<a name="line.174"></a>
-<span class="sourceLineNo">175</span><a name="line.175"></a>
-<span class="sourceLineNo">176</span>  /**<a name="line.176"></a>
-<span class="sourceLineNo">177</span>   * Unwind a serialized array of {@link StackTraceElementMessage}s to a<a name="line.177"></a>
-<span class="sourceLineNo">178</span>   * {@link StackTraceElement}s.<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * @param traceList list that was serialized<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   * @return the deserialized list or &lt;tt&gt;null&lt;/tt&gt; if it couldn't be unwound (e.g. wasn't set on<a name="line.180"></a>
-<span class="sourceLineNo">181</span>   *         the sender).<a name="line.181"></a>
-<span class="sourceLineNo">182</span>   */<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  private static StackTraceElement[] toStackTrace(List&lt;StackTraceElementMessage&gt; traceList) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    if (traceList == null || traceList.isEmpty()) {<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      return new StackTraceElement[0]; // empty array<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    }<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    StackTraceElement[] trace = new StackTraceElement[traceList.size()];<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    for (int i = 0; i &lt; traceList.size(); i++) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      StackTraceElementMessage elem = traceList.get(i);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      trace[i] = new StackTraceElement(<a name="line.190"></a>
-<span class="sourceLineNo">191</span>          elem.getDeclaringClass(), elem.getMethodName(), elem.getFileName(), elem.getLineNumber());<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    return trace;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>}<a name="line.195"></a>
+<span class="sourceLineNo">110</span>    List&lt;StackTraceElementMessage&gt; pbTrace = new ArrayList&lt;&gt;(trace.length);<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    for (StackTraceElement elem : trace) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      StackTraceElementMessage.Builder stackBuilder = StackTraceElementMessage.newBuilder();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      stackBuilder.setDeclaringClass(elem.getClassName());<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      stackBuilder.setFileName(elem.getFileName());<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      stackBuilder.setLineNumber(elem.getLineNumber());<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      stackBuilder.setMethodName(elem.getMethodName());<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      pbTrace.add(stackBuilder.build());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return pbTrace;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * This is a Proxy Throwable that contains the information of the original remote exception<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   */<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  private static class ProxyThrowable extends Throwable {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    ProxyThrowable(String msg, StackTraceElement[] trace) {<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      super(msg);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      this.setStackTrace(trace);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    }<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * Converts a ForeignException to an array of bytes.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * @param source the name of the external exception source<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * @param t the "local" external exception (local)<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   * @return protobuf serialized version of ForeignException<a name="line.136"></a>
+<span class="sourceLineNo">137</span>   */<a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static byte[] serialize(String source, Throwable t) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    GenericExceptionMessage.Builder gemBuilder = GenericExceptionMessage.newBuilder();<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    gemBuilder.setClassName(t.getClass().getName());<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    if (t.getMessage() != null) {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      gemBuilder.setMessage(t.getMessage());<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    }<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    // set the stack trace, if there is one<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    List&lt;StackTraceElementMessage&gt; stack =<a name="line.145"></a>
+<span class="sourceLineNo">146</span>        ForeignException.toStackTraceElementMessages(t.getStackTrace());<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    if (stack != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      gemBuilder.addAllTrace(stack);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    GenericExceptionMessage payload = gemBuilder.build();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    ForeignExceptionMessage.Builder exception = ForeignExceptionMessage.newBuilder();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    exception.setGenericException(payload).setSource(source);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    ForeignExceptionMessage eem = exception.build();<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    return eem.toByteArray();<a name="line.154"></a>
+<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>  /**<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * Takes a series of bytes and tries to generate an ForeignException instance for it.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   * @param bytes<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @return the ForeignExcpetion instance<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * @throws InvalidProtocolBufferException if there was deserialization problem this is thrown.<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   * @throws org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException <a name="line.162"></a>
+<span class="sourceLineNo">163</span>   */<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  public static ForeignException deserialize(byte[] bytes)<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  throws IOException {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    // figure out the data we need to pass<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    ForeignExceptionMessage eem = ForeignExceptionMessage.parseFrom(bytes);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    GenericExceptionMessage gem = eem.getGenericException();<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    StackTraceElement [] trace = ForeignException.toStackTrace(gem.getTraceList());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    ProxyThrowable dfe = new ProxyThrowable(gem.getMessage(), trace);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    ForeignException e = new ForeignException(eem.getSource(), dfe);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    return e;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>  /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   * Unwind a serialized array of {@link StackTraceElementMessage}s to a<a name="line.176"></a>
+<span class="sourceLineNo">177</span>   * {@link StackTraceElement}s.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>   * @param traceList list that was serialized<a name="line.178"></a>
+<span class="sourceLineNo">179</span>   * @return the deserialized list or &lt;tt&gt;null&lt;/tt&gt; if it couldn't be unwound (e.g. wasn't set on<a name="line.179"></a>
+<span class="sourceLineNo">180</span>   *         the sender).<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   */<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  private static StackTraceElement[] toStackTrace(List&lt;StackTraceElementMessage&gt; traceList) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (traceList == null || traceList.isEmpty()) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      return new StackTraceElement[0]; // empty array<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    }<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    StackTraceElement[] trace = new StackTraceElement[traceList.size()];<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    for (int i = 0; i &lt; traceList.size(); i++) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      StackTraceElementMessage elem = traceList.get(i);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      trace[i] = new StackTraceElement(<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          elem.getDeclaringClass(), elem.getMethodName(), elem.getFileName(), elem.getLineNumber());<a name="line.190"></a>
+<span class="sourceLineNo">191</span>    }<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    return trace;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
+<span class="sourceLineNo">194</span>}<a name="line.194"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
index 52dbaf6..bb7c162 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html
@@ -185,7 +185,7 @@
 <span class="sourceLineNo">177</span>                                            " can only be used with EQUAL and NOT_EQUAL");<a name="line.177"></a>
 <span class="sourceLineNo">178</span>      }<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    ArrayList&lt;Object&gt; arguments = new ArrayList&lt;Object&gt;(2);<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    ArrayList&lt;Object&gt; arguments = new ArrayList&lt;&gt;(2);<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    arguments.add(compareOp);<a name="line.181"></a>
 <span class="sourceLineNo">182</span>    arguments.add(comparator);<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    return arguments;<a name="line.183"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
index 52dbaf6..bb7c162 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/CompareFilter.html
@@ -185,7 +185,7 @@
 <span class="sourceLineNo">177</span>                                            " can only be used with EQUAL and NOT_EQUAL");<a name="line.177"></a>
 <span class="sourceLineNo">178</span>      }<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    ArrayList&lt;Object&gt; arguments = new ArrayList&lt;Object&gt;(2);<a name="line.180"></a>
+<span class="sourceLineNo">180</span>    ArrayList&lt;Object&gt; arguments = new ArrayList&lt;&gt;(2);<a name="line.180"></a>
 <span class="sourceLineNo">181</span>    arguments.add(compareOp);<a name="line.181"></a>
 <span class="sourceLineNo">182</span>    arguments.add(comparator);<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    return arguments;<a name="line.183"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
index ef89262..68f3990 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/DependentColumnFilter.html
@@ -62,7 +62,7 @@
 <span class="sourceLineNo">054</span>  protected byte[] columnQualifier;<a name="line.54"></a>
 <span class="sourceLineNo">055</span>  protected boolean dropDependentColumn;<a name="line.55"></a>
 <span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  protected Set&lt;Long&gt; stampSet = new HashSet&lt;Long&gt;();<a name="line.57"></a>
+<span class="sourceLineNo">057</span>  protected Set&lt;Long&gt; stampSet = new HashSet&lt;&gt;();<a name="line.57"></a>
 <span class="sourceLineNo">058</span>  <a name="line.58"></a>
 <span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
 <span class="sourceLineNo">060</span>   * Build a dependent column filter with value checking<a name="line.60"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
index a7878d7..99bb715 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.Operator.html
@@ -461,7 +461,7 @@
 <span class="sourceLineNo">453</span>      throw new DeserializationException(e);<a name="line.453"></a>
 <span class="sourceLineNo">454</span>    }<a name="line.454"></a>
 <span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    List&lt;Filter&gt; rowFilters = new ArrayList&lt;Filter&gt;(proto.getFiltersCount());<a name="line.456"></a>
+<span class="sourceLineNo">456</span>    List&lt;Filter&gt; rowFilters = new ArrayList&lt;&gt;(proto.getFiltersCount());<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    try {<a name="line.457"></a>
 <span class="sourceLineNo">458</span>      List&lt;FilterProtos.Filter&gt; filtersList = proto.getFiltersList();<a name="line.458"></a>
 <span class="sourceLineNo">459</span>      int listSize = filtersList.size();<a name="line.459"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
index a7878d7..99bb715 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FilterList.html
@@ -461,7 +461,7 @@
 <span class="sourceLineNo">453</span>      throw new DeserializationException(e);<a name="line.453"></a>
 <span class="sourceLineNo">454</span>    }<a name="line.454"></a>
 <span class="sourceLineNo">455</span><a name="line.455"></a>
-<span class="sourceLineNo">456</span>    List&lt;Filter&gt; rowFilters = new ArrayList&lt;Filter&gt;(proto.getFiltersCount());<a name="line.456"></a>
+<span class="sourceLineNo">456</span>    List&lt;Filter&gt; rowFilters = new ArrayList&lt;&gt;(proto.getFiltersCount());<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    try {<a name="line.457"></a>
 <span class="sourceLineNo">458</span>      List&lt;FilterProtos.Filter&gt; filtersList = proto.getFiltersList();<a name="line.458"></a>
 <span class="sourceLineNo">459</span>      int listSize = filtersList.size();<a name="line.459"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/22cff34f/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
----------------------------------------------------------------------
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
index 6548544..b1d4056 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/filter/FirstKeyValueMatchingQualifiersFilter.html
@@ -49,7 +49,7 @@
 <span class="sourceLineNo">041</span> * Note : It may emit KVs which do not have the given columns in them, if<a name="line.41"></a>
 <span class="sourceLineNo">042</span> * these KVs happen to occur before a KV which does have a match. Given this<a name="line.42"></a>
 <span class="sourceLineNo">043</span> * caveat, this filter is only useful for special cases<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * like {@link org.apache.hadoop.hbase.mapreduce.RowCounter}.<a name="line.44"></a>
+<span class="sourceLineNo">044</span> * like org.apache.hadoop.hbase.mapreduce.RowCounter.<a name="line.44"></a>
 <span class="sourceLineNo">045</span> * &lt;p&gt;<a name="line.45"></a>
 <span class="sourceLineNo">046</span> * @deprecated Deprecated in 2.0. See HBASE-13347<a name="line.46"></a>
 <span class="sourceLineNo">047</span> */<a name="line.47"></a>
@@ -116,7 +116,7 @@
 <span class="sourceLineNo">108</span>      throw new DeserializationException(e);<a name="line.108"></a>
 <span class="sourceLineNo">109</span>    }<a name="line.109"></a>
 <span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>    TreeSet&lt;byte []&gt; qualifiers = new TreeSet&lt;byte []&gt;(Bytes.BYTES_COMPARATOR);<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    TreeSet&lt;byte []&gt; qualifiers = new TreeSet&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    for (ByteString qualifier : proto.getQualifiersList()) {<a name="line.112"></a>
 <span class="sourceLineNo">113</span>      qualifiers.add(qualifier.toByteArray());<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>