Modified: 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
 (original)
+++ 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
 Wed Nov 25 22:30:29 2009
@@ -354,4 +354,46 @@
     results.clear();
     assertEquals(false, scan.next(results));
   }
+  
+  /**
+   * Test expiration of KeyValues in combination with a configured TTL for 
+   * a column family (as should be triggered in a major compaction).
+   */
+  public void testWildCardTtlScan() throws IOException {
+    long now = System.currentTimeMillis();
+    KeyValue [] kvs = new KeyValue[] {
+        KeyValueTestUtil.create("R1", "cf", "a", now-1000, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "b", now-10, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "c", now-200, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "d", now-10000, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "a", now, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "b", now-10, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "c", now-200, KeyValue.Type.Put, 
"dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "c", now-1000, KeyValue.Type.Put, 
"dont-care")
+    };
+    KeyValueScanner [] scanners = new KeyValueScanner[] {
+        new KeyValueScanFixture(KeyValue.COMPARATOR, kvs)
+    };
+    Scan scan = new Scan();
+    scan.setMaxVersions(1);
+    StoreScanner scanner =
+      new StoreScanner(scan, CF, 500, KeyValue.COMPARATOR,
+          null, scanners);
+
+    List<KeyValue> results = new ArrayList<KeyValue>();
+    assertEquals(true, scanner.next(results));
+    assertEquals(2, results.size());
+    assertEquals(kvs[1], results.get(0));
+    assertEquals(kvs[2], results.get(1));
+    results.clear();
+    
+    assertEquals(true, scanner.next(results));
+    assertEquals(3, results.size());
+    assertEquals(kvs[4], results.get(0));
+    assertEquals(kvs[5], results.get(1));
+    assertEquals(kvs[6], results.get(2));
+    results.clear();
+    
+    assertEquals(false, scanner.next(results));
+  }
 }

Modified: 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
 (original)
+++ 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
 Wed Nov 25 22:30:29 2009
@@ -330,6 +330,23 @@
       }
     }
   }
+
+  // HBASE-1781
+  public void testStackOverflow(){
+    int maxVersions = 1;
+
+    ColumnTracker wild = new WildcardColumnTracker(maxVersions);
+    for(int i = 0; i < 100000; i+=2) {
+      byte [] col = Bytes.toBytes("col"+i);
+      wild.checkColumn(col, 0, col.length);
+    }
+    wild.update();
+
+    for(int i = 1; i < 100000; i+=2) {
+      byte [] col = Bytes.toBytes("col"+i);
+      wild.checkColumn(col, 0, col.length);
+    }
+  }
   
   
   

Modified: 
hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp 
(original)
+++ hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp 
Wed Nov 25 22:30:29 2009
@@ -110,7 +110,7 @@
 <tr>
   <td><%= Bytes.toString(meta.getRegionName()) %></td>
     <td><a href="<%= url %>"><%= meta.getServer().getHostname().toString() + 
":" + infoPort %></a></td>
-    <td>-</td><td><%= Bytes.toString(meta.getStartKey()) %></td><td>-</td>
+    <td>-</td><td><%= Bytes.toString(meta.getStartKey()) %></td><td><%= 
Bytes.toString(meta.getEndKey()) %></td>
 </tr>
 <%  } %>
 </table>
@@ -131,15 +131,11 @@
     int infoPort = serverAddressToServerInfos.get(
         hriEntry.getValue()).getInfoPort();
     
-    String urlRegionHistorian =
-        "/regionhistorian.jsp?regionname="+
-                Bytes.toStringBinary(hriEntry.getKey().getRegionName());
-
     String urlRegionServer =
         "http://"; + hriEntry.getValue().getHostname().toString() + ":" + 
infoPort + "/";
 %>
 <tr>
-  <td><a href="<%= urlRegionHistorian %>"><%= 
Bytes.toStringBinary(hriEntry.getKey().getRegionName())%></a></td>
+  <td><%= Bytes.toStringBinary(hriEntry.getKey().getRegionName())%></td>
   <td><a href="<%= urlRegionServer %>"><%= 
hriEntry.getValue().getHostname().toString() + ":" + infoPort %></a></td>
   <td><%= hriEntry.getKey().getEncodedName()%></td> <td><%= 
Bytes.toStringBinary(hriEntry.getKey().getStartKey())%></td>
   <td><%= Bytes.toStringBinary(hriEntry.getKey().getEndKey())%></td>


Reply via email to