You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2014/08/26 20:49:10 UTC

svn commit: r1620690 [33/40] - in /hbase/hbase.apache.org/trunk: ./ apidocs/org/apache/hadoop/hbase/client/ apidocs/org/apache/hadoop/hbase/client/class-use/ apidocs/org/apache/hadoop/hbase/coprocessor/ apidocs/org/apache/hadoop/hbase/coprocessor/class...

Added: hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/io/encoding/TestPrefixTree.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/io/encoding/TestPrefixTree.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/io/encoding/TestPrefixTree.html (added)
+++ hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/io/encoding/TestPrefixTree.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>TestPrefixTree xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
+<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * limitations under the License.</em>
+<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="18" href="#18">18</a>  
+<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.hadoop.hbase.io.encoding;
+<a class="jxr_linenumber" name="20" href="#20">20</a>  
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.CellScanner;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HConstants;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MediumTests;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Admin;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.junit.Rule;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.junit.rules.TestName;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  
+<a class="jxr_linenumber" name="45" href="#45">45</a>  @Category(MediumTests.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../org/apache/hadoop/hbase/io/encoding/TestPrefixTree.html">TestPrefixTree</a> {
+<a class="jxr_linenumber" name="47" href="#47">47</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String row4 = <span class="jxr_string">"a-b-B-2-1402397300-1402416535"</span>;
+<a class="jxr_linenumber" name="48" href="#48">48</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row4_bytes = Bytes.toBytes(row4);
+<a class="jxr_linenumber" name="49" href="#49">49</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String row3 = <span class="jxr_string">"a-b-A-1-1402397227-1402415999"</span>;
+<a class="jxr_linenumber" name="50" href="#50">50</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row3_bytes = Bytes.toBytes(row3);
+<a class="jxr_linenumber" name="51" href="#51">51</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String row2 = <span class="jxr_string">"a-b-A-1-1402329600-1402396277"</span>;
+<a class="jxr_linenumber" name="52" href="#52">52</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row2_bytes = Bytes.toBytes(row2);
+<a class="jxr_linenumber" name="53" href="#53">53</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> String row1 = <span class="jxr_string">"a-b-A-1"</span>;
+<a class="jxr_linenumber" name="54" href="#54">54</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> byte[] row1_bytes = Bytes.toBytes(row1);
+<a class="jxr_linenumber" name="55" href="#55">55</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">final</strong> <a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> TEST_UTIL = <strong class="jxr_keyword">new</strong> <a href="../../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
+<a class="jxr_linenumber" name="56" href="#56">56</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[] fam = Bytes.toBytes(<span class="jxr_string">"cf_1"</span>);
+<a class="jxr_linenumber" name="57" href="#57">57</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[] qual1 = Bytes.toBytes(<span class="jxr_string">"qf_1"</span>);
+<a class="jxr_linenumber" name="58" href="#58">58</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> byte[] qual2 = Bytes.toBytes(<span class="jxr_string">"qf_2"</span>);
+<a class="jxr_linenumber" name="59" href="#59">59</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Configuration conf;
+<a class="jxr_linenumber" name="60" href="#60">60</a>  
+<a class="jxr_linenumber" name="61" href="#61">61</a>    @Rule
+<a class="jxr_linenumber" name="62" href="#62">62</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">final</strong> TestName TEST_NAME = <strong class="jxr_keyword">new</strong> TestName();
+<a class="jxr_linenumber" name="63" href="#63">63</a>  
+<a class="jxr_linenumber" name="64" href="#64">64</a>    @BeforeClass
+<a class="jxr_linenumber" name="65" href="#65">65</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setupBeforeClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="66" href="#66">66</a>      <em class="jxr_comment">// setup configuration</em>
+<a class="jxr_linenumber" name="67" href="#67">67</a>      conf = TEST_UTIL.getConfiguration();
+<a class="jxr_linenumber" name="68" href="#68">68</a>      conf.setBoolean(HConstants.DISTRIBUTED_LOG_REPLAY_KEY, false);
+<a class="jxr_linenumber" name="69" href="#69">69</a>      conf.setBoolean(<span class="jxr_string">"hbase.online.schema.update.enable"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="70" href="#70">70</a>      conf.setInt(<span class="jxr_string">"hbase.client.scanner.timeout.period"</span>, 600000);
+<a class="jxr_linenumber" name="71" href="#71">71</a>      TEST_UTIL.startMiniCluster(2);
+<a class="jxr_linenumber" name="72" href="#72">72</a>    }
+<a class="jxr_linenumber" name="73" href="#73">73</a>  
+<a class="jxr_linenumber" name="74" href="#74">74</a>    @AfterClass
+<a class="jxr_linenumber" name="75" href="#75">75</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> tearDownAfterClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="76" href="#76">76</a>      TEST_UTIL.shutdownMiniCluster();
+<a class="jxr_linenumber" name="77" href="#77">77</a>    }
+<a class="jxr_linenumber" name="78" href="#78">78</a>  
+<a class="jxr_linenumber" name="79" href="#79">79</a>    @Test
+<a class="jxr_linenumber" name="80" href="#80">80</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testHBASE11728() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="81" href="#81">81</a>      TableName tableName = TableName.valueOf(TEST_NAME.getMethodName());
+<a class="jxr_linenumber" name="82" href="#82">82</a>      HTable table = <strong class="jxr_keyword">null</strong>;
+<a class="jxr_linenumber" name="83" href="#83">83</a>      <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="84" href="#84">84</a>        Admin hBaseAdmin = TEST_UTIL.getHBaseAdmin();
+<a class="jxr_linenumber" name="85" href="#85">85</a>        HColumnDescriptor colDesc = <strong class="jxr_keyword">new</strong> HColumnDescriptor(fam);
+<a class="jxr_linenumber" name="86" href="#86">86</a>        HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(tableName);
+<a class="jxr_linenumber" name="87" href="#87">87</a>        colDesc.setDataBlockEncoding(DataBlockEncoding.PREFIX_TREE);
+<a class="jxr_linenumber" name="88" href="#88">88</a>        colDesc.setTimeToLive(15552000);
+<a class="jxr_linenumber" name="89" href="#89">89</a>        desc.addFamily(colDesc);
+<a class="jxr_linenumber" name="90" href="#90">90</a>        hBaseAdmin.createTable(desc);
+<a class="jxr_linenumber" name="91" href="#91">91</a>        table = <strong class="jxr_keyword">new</strong> HTable(conf, tableName);
+<a class="jxr_linenumber" name="92" href="#92">92</a>        Put put = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"a-b-0-0"</span>));
+<a class="jxr_linenumber" name="93" href="#93">93</a>        put.add(fam, qual1, Bytes.toBytes(<span class="jxr_string">"c1-value"</span>));
+<a class="jxr_linenumber" name="94" href="#94">94</a>        table.put(put);
+<a class="jxr_linenumber" name="95" href="#95">95</a>        table.flushCommits();
+<a class="jxr_linenumber" name="96" href="#96">96</a>        put = <strong class="jxr_keyword">new</strong> Put(row1_bytes);
+<a class="jxr_linenumber" name="97" href="#97">97</a>        put.add(fam, qual1, Bytes.toBytes(<span class="jxr_string">"c1-value"</span>));
+<a class="jxr_linenumber" name="98" href="#98">98</a>        table.put(put);
+<a class="jxr_linenumber" name="99" href="#99">99</a>        table.flushCommits();
+<a class="jxr_linenumber" name="100" href="#100">100</a>       put = <strong class="jxr_keyword">new</strong> Put(row2_bytes);
+<a class="jxr_linenumber" name="101" href="#101">101</a>       put.add(fam, qual2, Bytes.toBytes(<span class="jxr_string">"c2-value"</span>));
+<a class="jxr_linenumber" name="102" href="#102">102</a>       table.put(put);
+<a class="jxr_linenumber" name="103" href="#103">103</a>       table.flushCommits();
+<a class="jxr_linenumber" name="104" href="#104">104</a>       put = <strong class="jxr_keyword">new</strong> Put(row3_bytes);
+<a class="jxr_linenumber" name="105" href="#105">105</a>       put.add(fam, qual2, Bytes.toBytes(<span class="jxr_string">"c2-value-2"</span>));
+<a class="jxr_linenumber" name="106" href="#106">106</a>       table.put(put);
+<a class="jxr_linenumber" name="107" href="#107">107</a>       table.flushCommits();
+<a class="jxr_linenumber" name="108" href="#108">108</a>       put = <strong class="jxr_keyword">new</strong> Put(row4_bytes);
+<a class="jxr_linenumber" name="109" href="#109">109</a>       put.add(fam, qual2, Bytes.toBytes(<span class="jxr_string">"c2-value-3"</span>));
+<a class="jxr_linenumber" name="110" href="#110">110</a>       table.put(put);
+<a class="jxr_linenumber" name="111" href="#111">111</a>       table.flushCommits();
+<a class="jxr_linenumber" name="112" href="#112">112</a>       hBaseAdmin.flush(tableName.getNameAsString());
+<a class="jxr_linenumber" name="113" href="#113">113</a>       String[] rows = <strong class="jxr_keyword">new</strong> String[3];
+<a class="jxr_linenumber" name="114" href="#114">114</a>       rows[0] = row1;
+<a class="jxr_linenumber" name="115" href="#115">115</a>       rows[1] = row2;
+<a class="jxr_linenumber" name="116" href="#116">116</a>       rows[2] = row3;
+<a class="jxr_linenumber" name="117" href="#117">117</a>       Scan scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="118" href="#118">118</a>       scan.setStartRow(row1_bytes);
+<a class="jxr_linenumber" name="119" href="#119">119</a>       scan.setStopRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1:"</span>));
+<a class="jxr_linenumber" name="120" href="#120">120</a>       ResultScanner scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="121" href="#121">121</a>       Result[] next = scanner.next(10);
+<a class="jxr_linenumber" name="122" href="#122">122</a>       assertEquals(3, next.length);
+<a class="jxr_linenumber" name="123" href="#123">123</a>       <strong class="jxr_keyword">int</strong> i = 0;
+<a class="jxr_linenumber" name="124" href="#124">124</a>       <strong class="jxr_keyword">for</strong> (Result res : next) {
+<a class="jxr_linenumber" name="125" href="#125">125</a>         CellScanner cellScanner = res.cellScanner();
+<a class="jxr_linenumber" name="126" href="#126">126</a>         <strong class="jxr_keyword">while</strong> (cellScanner.advance()) {
+<a class="jxr_linenumber" name="127" href="#127">127</a>           assertEquals(rows[i], Bytes.toString(cellScanner.current().getRowArray(), cellScanner
+<a class="jxr_linenumber" name="128" href="#128">128</a>               .current().getRowOffset(), cellScanner.current().getRowLength()));
+<a class="jxr_linenumber" name="129" href="#129">129</a>         }
+<a class="jxr_linenumber" name="130" href="#130">130</a>         i++;
+<a class="jxr_linenumber" name="131" href="#131">131</a>       }
+<a class="jxr_linenumber" name="132" href="#132">132</a>       scanner.close();
+<a class="jxr_linenumber" name="133" href="#133">133</a>       <em class="jxr_comment">// Add column</em>
+<a class="jxr_linenumber" name="134" href="#134">134</a>       scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="135" href="#135">135</a>       scan.addColumn(fam, qual2);
+<a class="jxr_linenumber" name="136" href="#136">136</a>       scan.setStartRow(row1_bytes);
+<a class="jxr_linenumber" name="137" href="#137">137</a>       scan.setStopRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1:"</span>));
+<a class="jxr_linenumber" name="138" href="#138">138</a>       scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="139" href="#139">139</a>       next = scanner.next(10);
+<a class="jxr_linenumber" name="140" href="#140">140</a>       assertEquals(2, next.length);
+<a class="jxr_linenumber" name="141" href="#141">141</a>       i = 1;
+<a class="jxr_linenumber" name="142" href="#142">142</a>       <strong class="jxr_keyword">for</strong> (Result res : next) {
+<a class="jxr_linenumber" name="143" href="#143">143</a>         CellScanner cellScanner = res.cellScanner();
+<a class="jxr_linenumber" name="144" href="#144">144</a>         <strong class="jxr_keyword">while</strong> (cellScanner.advance()) {
+<a class="jxr_linenumber" name="145" href="#145">145</a>           assertEquals(rows[i], Bytes.toString(cellScanner.current().getRowArray(), cellScanner
+<a class="jxr_linenumber" name="146" href="#146">146</a>               .current().getRowOffset(), cellScanner.current().getRowLength()));
+<a class="jxr_linenumber" name="147" href="#147">147</a>         }
+<a class="jxr_linenumber" name="148" href="#148">148</a>         i++;
+<a class="jxr_linenumber" name="149" href="#149">149</a>       }
+<a class="jxr_linenumber" name="150" href="#150">150</a>       scanner.close();
+<a class="jxr_linenumber" name="151" href="#151">151</a>       i = 1;
+<a class="jxr_linenumber" name="152" href="#152">152</a>       scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="153" href="#153">153</a>       scan.addColumn(fam, qual2);
+<a class="jxr_linenumber" name="154" href="#154">154</a>       scan.setStartRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1-"</span>));
+<a class="jxr_linenumber" name="155" href="#155">155</a>       scan.setStopRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1:"</span>));
+<a class="jxr_linenumber" name="156" href="#156">156</a>       scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="157" href="#157">157</a>       next = scanner.next(10);
+<a class="jxr_linenumber" name="158" href="#158">158</a>       assertEquals(2, next.length);
+<a class="jxr_linenumber" name="159" href="#159">159</a>       <strong class="jxr_keyword">for</strong> (Result res : next) {
+<a class="jxr_linenumber" name="160" href="#160">160</a>         CellScanner cellScanner = res.cellScanner();
+<a class="jxr_linenumber" name="161" href="#161">161</a>         <strong class="jxr_keyword">while</strong> (cellScanner.advance()) {
+<a class="jxr_linenumber" name="162" href="#162">162</a>           assertEquals(rows[i], Bytes.toString(cellScanner.current().getRowArray(), cellScanner
+<a class="jxr_linenumber" name="163" href="#163">163</a>               .current().getRowOffset(), cellScanner.current().getRowLength()));
+<a class="jxr_linenumber" name="164" href="#164">164</a>         }
+<a class="jxr_linenumber" name="165" href="#165">165</a>         i++;
+<a class="jxr_linenumber" name="166" href="#166">166</a>       }
+<a class="jxr_linenumber" name="167" href="#167">167</a>       scanner.close();
+<a class="jxr_linenumber" name="168" href="#168">168</a>       scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="169" href="#169">169</a>       scan.addColumn(fam, qual2);
+<a class="jxr_linenumber" name="170" href="#170">170</a>       scan.setStartRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1-140239"</span>));
+<a class="jxr_linenumber" name="171" href="#171">171</a>       scan.setStopRow(Bytes.toBytes(<span class="jxr_string">"a-b-A-1:"</span>));
+<a class="jxr_linenumber" name="172" href="#172">172</a>       scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="173" href="#173">173</a>       next = scanner.next(10);
+<a class="jxr_linenumber" name="174" href="#174">174</a>       assertEquals(1, next.length);
+<a class="jxr_linenumber" name="175" href="#175">175</a>       scanner.close();
+<a class="jxr_linenumber" name="176" href="#176">176</a>     } <strong class="jxr_keyword">finally</strong> {
+<a class="jxr_linenumber" name="177" href="#177">177</a>       table.close();
+<a class="jxr_linenumber" name="178" href="#178">178</a>     }
+<a class="jxr_linenumber" name="179" href="#179">179</a>   }
+<a class="jxr_linenumber" name="180" href="#180">180</a> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+

Added: hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/master/TestRegionState.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/master/TestRegionState.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/master/TestRegionState.html (added)
+++ hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/master/TestRegionState.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,58 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>TestRegionState xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_javadoccomment">/**</em>
+<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_javadoccomment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_javadoccomment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_javadoccomment"> * distributed with this work for additional information</em>
+<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_javadoccomment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_javadoccomment"> * to you under the Apache License, Version 2.0 (the</em>
+<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_javadoccomment"> * "License"); you may not use this file except in compliance</em>
+<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_javadoccomment"> * with the License.  You may obtain a copy of the License at</em>
+<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_javadoccomment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_javadoccomment"> *</em>
+<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_javadoccomment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_javadoccomment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_javadoccomment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_javadoccomment"> * See the License for the specific language governing permissions and</em>
+<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment"> * limitations under the License.</em>
+<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment"> */</em>
+<a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.hadoop.hbase.master;
+<a class="jxr_linenumber" name="19" href="#19">19</a>  
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HRegionInfo;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.ServerName;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.SmallTests;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableName;
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.protobuf.generated.ClusterStatusProtos;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertEquals;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.junit.Assert.assertNotEquals;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  
+<a class="jxr_linenumber" name="31" href="#31">31</a>  @Category(SmallTests.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/master/TestRegionState.html">TestRegionState</a> {
+<a class="jxr_linenumber" name="33" href="#33">33</a>    @Test
+<a class="jxr_linenumber" name="34" href="#34">34</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> test() {
+<a class="jxr_linenumber" name="35" href="#35">35</a>      RegionState state1 = <strong class="jxr_keyword">new</strong> RegionState(
+<a class="jxr_linenumber" name="36" href="#36">36</a>              <strong class="jxr_keyword">new</strong> HRegionInfo(TableName.valueOf(<span class="jxr_string">"table"</span>)), RegionState.State.OPENING);
+<a class="jxr_linenumber" name="37" href="#37">37</a>      ClusterStatusProtos.RegionState protobuf1 = state1.convert();
+<a class="jxr_linenumber" name="38" href="#38">38</a>      RegionState state2 = RegionState.convert(protobuf1);
+<a class="jxr_linenumber" name="39" href="#39">39</a>      ClusterStatusProtos.RegionState protobuf2 = state1.convert();
+<a class="jxr_linenumber" name="40" href="#40">40</a>  
+<a class="jxr_linenumber" name="41" href="#41">41</a>      assertEquals(state1, state2);
+<a class="jxr_linenumber" name="42" href="#42">42</a>      assertEquals(protobuf1, protobuf2);
+<a class="jxr_linenumber" name="43" href="#43">43</a>    }
+<a class="jxr_linenumber" name="44" href="#44">44</a>  }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+

Added: hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html
URL: http://svn.apache.org/viewvc/hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html?rev=1620690&view=auto
==============================================================================
--- hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html (added)
+++ hbase/hbase.apache.org/trunk/xref-test/org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html Tue Aug 26 18:49:07 2014
@@ -0,0 +1,240 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+<title>TestScannerWithBulkload xref</title>
+<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
+</head>
+<body>
+<pre>
+
+<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
+<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
+<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
+<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
+<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
+<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
+<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
+<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
+<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> *     <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
+<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
+<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
+<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
+<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
+<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
+<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * limitations under the License.</em>
+<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> */</em>
+<a class="jxr_linenumber" name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.hadoop.hbase.regionserver;
+<a class="jxr_linenumber" name="19" href="#19">19</a>  
+<a class="jxr_linenumber" name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> java.io.IOException;
+<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> java.util.List;
+<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> java.util.concurrent.CountDownLatch;
+<a class="jxr_linenumber" name="23" href="#23">23</a>  
+<a class="jxr_linenumber" name="24" href="#24">24</a>  <strong class="jxr_keyword">import</strong> junit.framework.Assert;
+<a class="jxr_linenumber" name="25" href="#25">25</a>  
+<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.conf.Configuration;
+<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.FileSystem;
+<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.fs.Path;
+<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HBaseTestingUtility;
+<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HColumnDescriptor;
+<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.HTableDescriptor;
+<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.KeyValue;
+<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.MediumTests;
+<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.TableNotFoundException;
+<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HBaseAdmin;
+<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.HTable;
+<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Put;
+<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Result;
+<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.ResultScanner;
+<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.client.Scan;
+<a class="jxr_linenumber" name="41" href="#41">41</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFile;
+<a class="jxr_linenumber" name="42" href="#42">42</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.io.hfile.HFileContext;
+<a class="jxr_linenumber" name="43" href="#43">43</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles;
+<a class="jxr_linenumber" name="44" href="#44">44</a>  <strong class="jxr_keyword">import</strong> org.apache.hadoop.hbase.util.Bytes;
+<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">import</strong> org.junit.AfterClass;
+<a class="jxr_linenumber" name="46" href="#46">46</a>  <strong class="jxr_keyword">import</strong> org.junit.BeforeClass;
+<a class="jxr_linenumber" name="47" href="#47">47</a>  <strong class="jxr_keyword">import</strong> org.junit.Test;
+<a class="jxr_linenumber" name="48" href="#48">48</a>  <strong class="jxr_keyword">import</strong> org.junit.experimental.categories.Category;
+<a class="jxr_linenumber" name="49" href="#49">49</a>  
+<a class="jxr_linenumber" name="50" href="#50">50</a>  @Category(MediumTests.<strong class="jxr_keyword">class</strong>)
+<a class="jxr_linenumber" name="51" href="#51">51</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html">TestScannerWithBulkload</a> {
+<a class="jxr_linenumber" name="52" href="#52">52</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">static</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a> TEST_UTIL = <strong class="jxr_keyword">new</strong> <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html">HBaseTestingUtility</a>();
+<a class="jxr_linenumber" name="53" href="#53">53</a>  
+<a class="jxr_linenumber" name="54" href="#54">54</a>    @BeforeClass
+<a class="jxr_linenumber" name="55" href="#55">55</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> setUpBeforeClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="56" href="#56">56</a>      TEST_UTIL.startMiniCluster(1);
+<a class="jxr_linenumber" name="57" href="#57">57</a>    }
+<a class="jxr_linenumber" name="58" href="#58">58</a>  
+<a class="jxr_linenumber" name="59" href="#59">59</a>    <strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> createTable(HBaseAdmin admin, String tableName) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="60" href="#60">60</a>      HTableDescriptor desc = <strong class="jxr_keyword">new</strong> HTableDescriptor(tableName);
+<a class="jxr_linenumber" name="61" href="#61">61</a>      HColumnDescriptor hcd = <strong class="jxr_keyword">new</strong> HColumnDescriptor(<span class="jxr_string">"col"</span>);
+<a class="jxr_linenumber" name="62" href="#62">62</a>      hcd.setMaxVersions(3);
+<a class="jxr_linenumber" name="63" href="#63">63</a>      desc.addFamily(hcd);
+<a class="jxr_linenumber" name="64" href="#64">64</a>      admin.createTable(desc);
+<a class="jxr_linenumber" name="65" href="#65">65</a>    }
+<a class="jxr_linenumber" name="66" href="#66">66</a>  
+<a class="jxr_linenumber" name="67" href="#67">67</a>    @Test
+<a class="jxr_linenumber" name="68" href="#68">68</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBulkLoad() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="69" href="#69">69</a>      String tableName = <span class="jxr_string">"testBulkLoad"</span>;
+<a class="jxr_linenumber" name="70" href="#70">70</a>      <strong class="jxr_keyword">long</strong> l = System.currentTimeMillis();
+<a class="jxr_linenumber" name="71" href="#71">71</a>      HBaseAdmin admin = <strong class="jxr_keyword">new</strong> HBaseAdmin(TEST_UTIL.getConfiguration());
+<a class="jxr_linenumber" name="72" href="#72">72</a>      createTable(admin, tableName);
+<a class="jxr_linenumber" name="73" href="#73">73</a>      Scan scan = createScan();
+<a class="jxr_linenumber" name="74" href="#74">74</a>      <strong class="jxr_keyword">final</strong> HTable table = init(admin, l, scan, tableName);
+<a class="jxr_linenumber" name="75" href="#75">75</a>      <em class="jxr_comment">// use bulkload</em>
+<a class="jxr_linenumber" name="76" href="#76">76</a>      <strong class="jxr_keyword">final</strong> Path hfilePath = writeToHFile(l, <span class="jxr_string">"/temp/testBulkLoad/"</span>, <span class="jxr_string">"/temp/testBulkLoad/col/file"</span>);
+<a class="jxr_linenumber" name="77" href="#77">77</a>      Configuration conf = TEST_UTIL.getConfiguration();
+<a class="jxr_linenumber" name="78" href="#78">78</a>      conf.setBoolean(<span class="jxr_string">"hbase.mapreduce.bulkload.assign.sequenceNumbers"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="79" href="#79">79</a>      <strong class="jxr_keyword">final</strong> LoadIncrementalHFiles bulkload = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(conf);
+<a class="jxr_linenumber" name="80" href="#80">80</a>      bulkload.doBulkLoad(hfilePath, table);
+<a class="jxr_linenumber" name="81" href="#81">81</a>      ResultScanner scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="82" href="#82">82</a>      Result result = scanner.next();
+<a class="jxr_linenumber" name="83" href="#83">83</a>      result = scanAfterBulkLoad(scanner, result, <span class="jxr_string">"version2"</span>);
+<a class="jxr_linenumber" name="84" href="#84">84</a>      Put put0 = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="85" href="#85">85</a>      put0.add(<strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row1"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l, Bytes
+<a class="jxr_linenumber" name="86" href="#86">86</a>          .toBytes(<span class="jxr_string">"version3"</span>)));
+<a class="jxr_linenumber" name="87" href="#87">87</a>      table.put(put0);
+<a class="jxr_linenumber" name="88" href="#88">88</a>      table.flushCommits();
+<a class="jxr_linenumber" name="89" href="#89">89</a>      admin.flush(tableName);
+<a class="jxr_linenumber" name="90" href="#90">90</a>      scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="91" href="#91">91</a>      result = scanner.next();
+<a class="jxr_linenumber" name="92" href="#92">92</a>      <strong class="jxr_keyword">while</strong> (result != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="93" href="#93">93</a>        List&lt;KeyValue&gt; kvs = result.getColumn(Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>));
+<a class="jxr_linenumber" name="94" href="#94">94</a>        <strong class="jxr_keyword">for</strong> (KeyValue _kv : kvs) {
+<a class="jxr_linenumber" name="95" href="#95">95</a>          <strong class="jxr_keyword">if</strong> (Bytes.toString(_kv.getRow()).equals(<span class="jxr_string">"row1"</span>)) {
+<a class="jxr_linenumber" name="96" href="#96">96</a>            System.out.println(Bytes.toString(_kv.getRow()));
+<a class="jxr_linenumber" name="97" href="#97">97</a>            System.out.println(Bytes.toString(_kv.getQualifier()));
+<a class="jxr_linenumber" name="98" href="#98">98</a>            System.out.println(Bytes.toString(_kv.getValue()));
+<a class="jxr_linenumber" name="99" href="#99">99</a>            Assert.assertEquals(<span class="jxr_string">"version3"</span>, Bytes.toString(_kv.getValue()));
+<a class="jxr_linenumber" name="100" href="#100">100</a>         }
+<a class="jxr_linenumber" name="101" href="#101">101</a>       }
+<a class="jxr_linenumber" name="102" href="#102">102</a>       result = scanner.next();
+<a class="jxr_linenumber" name="103" href="#103">103</a>     }
+<a class="jxr_linenumber" name="104" href="#104">104</a>     table.close();
+<a class="jxr_linenumber" name="105" href="#105">105</a>   }
+<a class="jxr_linenumber" name="106" href="#106">106</a> 
+<a class="jxr_linenumber" name="107" href="#107">107</a>   <strong class="jxr_keyword">private</strong> Result scanAfterBulkLoad(ResultScanner scanner, Result result, String expctedVal)
+<a class="jxr_linenumber" name="108" href="#108">108</a>       <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="109" href="#109">109</a>     <strong class="jxr_keyword">while</strong> (result != <strong class="jxr_keyword">null</strong>) {
+<a class="jxr_linenumber" name="110" href="#110">110</a>       List&lt;KeyValue&gt; kvs = result.getColumn(Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>));
+<a class="jxr_linenumber" name="111" href="#111">111</a>       <strong class="jxr_keyword">for</strong> (KeyValue _kv : kvs) {
+<a class="jxr_linenumber" name="112" href="#112">112</a>         <strong class="jxr_keyword">if</strong> (Bytes.toString(_kv.getRow()).equals(<span class="jxr_string">"row1"</span>)) {
+<a class="jxr_linenumber" name="113" href="#113">113</a>           System.out.println(Bytes.toString(_kv.getRow()));
+<a class="jxr_linenumber" name="114" href="#114">114</a>           System.out.println(Bytes.toString(_kv.getQualifier()));
+<a class="jxr_linenumber" name="115" href="#115">115</a>           System.out.println(Bytes.toString(_kv.getValue()));
+<a class="jxr_linenumber" name="116" href="#116">116</a>           Assert.assertEquals(expctedVal, Bytes.toString(_kv.getValue()));
+<a class="jxr_linenumber" name="117" href="#117">117</a>         }
+<a class="jxr_linenumber" name="118" href="#118">118</a>       }
+<a class="jxr_linenumber" name="119" href="#119">119</a>       result = scanner.next();
+<a class="jxr_linenumber" name="120" href="#120">120</a>     }
+<a class="jxr_linenumber" name="121" href="#121">121</a>     <strong class="jxr_keyword">return</strong> result;
+<a class="jxr_linenumber" name="122" href="#122">122</a>   }
+<a class="jxr_linenumber" name="123" href="#123">123</a> 
+<a class="jxr_linenumber" name="124" href="#124">124</a>   <strong class="jxr_keyword">private</strong> Path writeToHFile(<strong class="jxr_keyword">long</strong> l, String hFilePath, String pathStr) <strong class="jxr_keyword">throws</strong> IOException {
+<a class="jxr_linenumber" name="125" href="#125">125</a>     FileSystem fs = FileSystem.get(TEST_UTIL.getConfiguration());
+<a class="jxr_linenumber" name="126" href="#126">126</a>     <strong class="jxr_keyword">final</strong> Path hfilePath = <strong class="jxr_keyword">new</strong> Path(hFilePath);
+<a class="jxr_linenumber" name="127" href="#127">127</a>     fs.mkdirs(hfilePath);
+<a class="jxr_linenumber" name="128" href="#128">128</a>     Path path = <strong class="jxr_keyword">new</strong> Path(pathStr);
+<a class="jxr_linenumber" name="129" href="#129">129</a>     HFile.WriterFactory wf = HFile.getWriterFactoryNoCache(TEST_UTIL.getConfiguration());
+<a class="jxr_linenumber" name="130" href="#130">130</a>     Assert.assertNotNull(wf);
+<a class="jxr_linenumber" name="131" href="#131">131</a>     HFileContext context = <strong class="jxr_keyword">new</strong> HFileContext();
+<a class="jxr_linenumber" name="132" href="#132">132</a>     HFile.Writer writer = wf.withPath(fs, path).withFileContext(context).create();
+<a class="jxr_linenumber" name="133" href="#133">133</a>     KeyValue kv = <strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row1"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l,
+<a class="jxr_linenumber" name="134" href="#134">134</a>         Bytes.toBytes(<span class="jxr_string">"version2"</span>));
+<a class="jxr_linenumber" name="135" href="#135">135</a>     writer.append(kv);
+<a class="jxr_linenumber" name="136" href="#136">136</a>     <em class="jxr_comment">// Add the bulk load time_key. otherwise we cannot ensure that it is a bulk</em>
+<a class="jxr_linenumber" name="137" href="#137">137</a>     <em class="jxr_comment">// loaded file</em>
+<a class="jxr_linenumber" name="138" href="#138">138</a>     writer.appendFileInfo(StoreFile.BULKLOAD_TIME_KEY, Bytes.toBytes(System.currentTimeMillis()));
+<a class="jxr_linenumber" name="139" href="#139">139</a>     writer.close();
+<a class="jxr_linenumber" name="140" href="#140">140</a>     <strong class="jxr_keyword">return</strong> hfilePath;
+<a class="jxr_linenumber" name="141" href="#141">141</a>   }
+<a class="jxr_linenumber" name="142" href="#142">142</a> 
+<a class="jxr_linenumber" name="143" href="#143">143</a>   <strong class="jxr_keyword">private</strong> HTable init(HBaseAdmin admin, <strong class="jxr_keyword">long</strong> l, Scan scan, String tableName) <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="144" href="#144">144</a>     HTable table = <strong class="jxr_keyword">new</strong> HTable(TEST_UTIL.getConfiguration(), tableName);
+<a class="jxr_linenumber" name="145" href="#145">145</a>     Put put0 = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="146" href="#146">146</a>     put0.add(<strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row1"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l, Bytes
+<a class="jxr_linenumber" name="147" href="#147">147</a>         .toBytes(<span class="jxr_string">"version0"</span>)));
+<a class="jxr_linenumber" name="148" href="#148">148</a>     table.put(put0);
+<a class="jxr_linenumber" name="149" href="#149">149</a>     table.flushCommits();
+<a class="jxr_linenumber" name="150" href="#150">150</a>     admin.flush(tableName);
+<a class="jxr_linenumber" name="151" href="#151">151</a>     Put put1 = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row2"</span>));
+<a class="jxr_linenumber" name="152" href="#152">152</a>     put1.add(<strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row2"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l, Bytes
+<a class="jxr_linenumber" name="153" href="#153">153</a>         .toBytes(<span class="jxr_string">"version0"</span>)));
+<a class="jxr_linenumber" name="154" href="#154">154</a>     table.put(put1);
+<a class="jxr_linenumber" name="155" href="#155">155</a>     table.flushCommits();
+<a class="jxr_linenumber" name="156" href="#156">156</a>     admin.flush(tableName);
+<a class="jxr_linenumber" name="157" href="#157">157</a>     admin.close();
+<a class="jxr_linenumber" name="158" href="#158">158</a>     put0 = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row1"</span>));
+<a class="jxr_linenumber" name="159" href="#159">159</a>     put0.add(<strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row1"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l, Bytes
+<a class="jxr_linenumber" name="160" href="#160">160</a>         .toBytes(<span class="jxr_string">"version1"</span>)));
+<a class="jxr_linenumber" name="161" href="#161">161</a>     table.put(put0);
+<a class="jxr_linenumber" name="162" href="#162">162</a>     table.flushCommits();
+<a class="jxr_linenumber" name="163" href="#163">163</a>     admin.flush(tableName);
+<a class="jxr_linenumber" name="164" href="#164">164</a>     admin.compact(tableName);
+<a class="jxr_linenumber" name="165" href="#165">165</a> 
+<a class="jxr_linenumber" name="166" href="#166">166</a>     ResultScanner scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="167" href="#167">167</a>     Result result = scanner.next();
+<a class="jxr_linenumber" name="168" href="#168">168</a>     List&lt;KeyValue&gt; kvs = result.getColumn(Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>));
+<a class="jxr_linenumber" name="169" href="#169">169</a>     Assert.assertEquals(1, kvs.size());
+<a class="jxr_linenumber" name="170" href="#170">170</a>     Assert.assertEquals(<span class="jxr_string">"version1"</span>, Bytes.toString(kvs.get(0).getValue()));
+<a class="jxr_linenumber" name="171" href="#171">171</a>     scanner.close();
+<a class="jxr_linenumber" name="172" href="#172">172</a>     <strong class="jxr_keyword">return</strong> table;
+<a class="jxr_linenumber" name="173" href="#173">173</a>   }
+<a class="jxr_linenumber" name="174" href="#174">174</a> 
+<a class="jxr_linenumber" name="175" href="#175">175</a>   @Test
+<a class="jxr_linenumber" name="176" href="#176">176</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> testBulkLoadWithParallelScan() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="177" href="#177">177</a>     String tableName = <span class="jxr_string">"testBulkLoadWithParallelScan"</span>;
+<a class="jxr_linenumber" name="178" href="#178">178</a>     <strong class="jxr_keyword">final</strong> <strong class="jxr_keyword">long</strong> l = System.currentTimeMillis();
+<a class="jxr_linenumber" name="179" href="#179">179</a>     HBaseAdmin admin = <strong class="jxr_keyword">new</strong> HBaseAdmin(TEST_UTIL.getConfiguration());
+<a class="jxr_linenumber" name="180" href="#180">180</a>     createTable(admin, tableName);
+<a class="jxr_linenumber" name="181" href="#181">181</a>     Scan scan = createScan();
+<a class="jxr_linenumber" name="182" href="#182">182</a>     <strong class="jxr_keyword">final</strong> HTable table = init(admin, l, scan, tableName);
+<a class="jxr_linenumber" name="183" href="#183">183</a>     <em class="jxr_comment">// use bulkload</em>
+<a class="jxr_linenumber" name="184" href="#184">184</a>     <strong class="jxr_keyword">final</strong> Path hfilePath = writeToHFile(l, <span class="jxr_string">"/temp/testBulkLoadWithParallelScan/"</span>,
+<a class="jxr_linenumber" name="185" href="#185">185</a>         <span class="jxr_string">"/temp/testBulkLoadWithParallelScan/col/file"</span>);
+<a class="jxr_linenumber" name="186" href="#186">186</a>     Configuration conf = TEST_UTIL.getConfiguration();
+<a class="jxr_linenumber" name="187" href="#187">187</a>     conf.setBoolean(<span class="jxr_string">"hbase.mapreduce.bulkload.assign.sequenceNumbers"</span>, <strong class="jxr_keyword">true</strong>);
+<a class="jxr_linenumber" name="188" href="#188">188</a>     <strong class="jxr_keyword">final</strong> LoadIncrementalHFiles bulkload = <strong class="jxr_keyword">new</strong> LoadIncrementalHFiles(conf);
+<a class="jxr_linenumber" name="189" href="#189">189</a>     ResultScanner scanner = table.getScanner(scan);
+<a class="jxr_linenumber" name="190" href="#190">190</a>     <em class="jxr_comment">// Create a scanner and then do bulk load</em>
+<a class="jxr_linenumber" name="191" href="#191">191</a>     <strong class="jxr_keyword">final</strong> CountDownLatch latch = <strong class="jxr_keyword">new</strong> CountDownLatch(1);
+<a class="jxr_linenumber" name="192" href="#192">192</a>     <strong class="jxr_keyword">new</strong> Thread() {
+<a class="jxr_linenumber" name="193" href="#193">193</a>       <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run() {
+<a class="jxr_linenumber" name="194" href="#194">194</a>         <strong class="jxr_keyword">try</strong> {
+<a class="jxr_linenumber" name="195" href="#195">195</a>           Put put1 = <strong class="jxr_keyword">new</strong> Put(Bytes.toBytes(<span class="jxr_string">"row5"</span>));
+<a class="jxr_linenumber" name="196" href="#196">196</a>           put1.add(<strong class="jxr_keyword">new</strong> KeyValue(Bytes.toBytes(<span class="jxr_string">"row5"</span>), Bytes.toBytes(<span class="jxr_string">"col"</span>), Bytes.toBytes(<span class="jxr_string">"q"</span>), l,
+<a class="jxr_linenumber" name="197" href="#197">197</a>               Bytes.toBytes(<span class="jxr_string">"version0"</span>)));
+<a class="jxr_linenumber" name="198" href="#198">198</a>           table.put(put1);
+<a class="jxr_linenumber" name="199" href="#199">199</a>           table.flushCommits();
+<a class="jxr_linenumber" name="200" href="#200">200</a>           bulkload.doBulkLoad(hfilePath, table);
+<a class="jxr_linenumber" name="201" href="#201">201</a>           latch.countDown();
+<a class="jxr_linenumber" name="202" href="#202">202</a>         } <strong class="jxr_keyword">catch</strong> (TableNotFoundException e) {
+<a class="jxr_linenumber" name="203" href="#203">203</a>         } <strong class="jxr_keyword">catch</strong> (IOException e) {
+<a class="jxr_linenumber" name="204" href="#204">204</a>         }
+<a class="jxr_linenumber" name="205" href="#205">205</a>       }
+<a class="jxr_linenumber" name="206" href="#206">206</a>     }.start();
+<a class="jxr_linenumber" name="207" href="#207">207</a>     latch.await();
+<a class="jxr_linenumber" name="208" href="#208">208</a>     <em class="jxr_comment">// By the time we do next() the bulk loaded files are also added to the kv</em>
+<a class="jxr_linenumber" name="209" href="#209">209</a>     <em class="jxr_comment">// scanner</em>
+<a class="jxr_linenumber" name="210" href="#210">210</a>     Result result = scanner.next();
+<a class="jxr_linenumber" name="211" href="#211">211</a>     scanAfterBulkLoad(scanner, result, <span class="jxr_string">"version1"</span>);
+<a class="jxr_linenumber" name="212" href="#212">212</a>     table.close();
+<a class="jxr_linenumber" name="213" href="#213">213</a> 
+<a class="jxr_linenumber" name="214" href="#214">214</a>   }
+<a class="jxr_linenumber" name="215" href="#215">215</a> 
+<a class="jxr_linenumber" name="216" href="#216">216</a>   <strong class="jxr_keyword">private</strong> Scan createScan() {
+<a class="jxr_linenumber" name="217" href="#217">217</a>     Scan scan = <strong class="jxr_keyword">new</strong> Scan();
+<a class="jxr_linenumber" name="218" href="#218">218</a>     scan.setMaxVersions(3);
+<a class="jxr_linenumber" name="219" href="#219">219</a>     <strong class="jxr_keyword">return</strong> scan;
+<a class="jxr_linenumber" name="220" href="#220">220</a>   }
+<a class="jxr_linenumber" name="221" href="#221">221</a> 
+<a class="jxr_linenumber" name="222" href="#222">222</a>   @AfterClass
+<a class="jxr_linenumber" name="223" href="#223">223</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> tearDownAfterClass() <strong class="jxr_keyword">throws</strong> Exception {
+<a class="jxr_linenumber" name="224" href="#224">224</a>     TEST_UTIL.shutdownMiniCluster();
+<a class="jxr_linenumber" name="225" href="#225">225</a>   }
+<a class="jxr_linenumber" name="226" href="#226">226</a> }
+</pre>
+<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
+</html>
+