diff --git a/src/java/org/apache/hadoop/hbase/regionserver/MemStore.java b/src/java/org/apache/hadoop/hbase/regionserver/MemStore.java index a270e65..89e6a63 100644 --- a/src/java/org/apache/hadoop/hbase/regionserver/MemStore.java +++ b/src/java/org/apache/hadoop/hbase/regionserver/MemStore.java @@ -1,4 +1,4 @@ -/** +/* * Copyright 2009 The Apache Software Foundation * * Licensed to the Apache Software Foundation (ASF) under one diff --git a/src/test/org/apache/hadoop/hbase/client/TestPut.java b/src/test/org/apache/hadoop/hbase/client/TestPut.java index 3fb6ba5..dce0800 100644 --- a/src/test/org/apache/hadoop/hbase/client/TestPut.java +++ b/src/test/org/apache/hadoop/hbase/client/TestPut.java @@ -104,6 +104,57 @@ public class TestPut extends HBaseClusterTestCase { } } + public void testDelete() throws IOException, InterruptedException { + Put put = new Put(row1); + put.add(CONTENTS_FAMILY, null, value); + table.put(put); + + Thread.sleep(1); + + Delete del = new Delete(row1); + del.deleteColumn(CONTENTS_FAMILY, null); + table.delete(del); + + Thread.sleep(1); + + Get get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, null); + Result res = table.get(get); + assertNull(res.getRow()); + + Thread.sleep(1); + + put = new Put(row1); + put.add(CONTENTS_FAMILY, null, value); + table.put(put); + + Thread.sleep(1); + + get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, null); + res = table.get(get); + assertTrue(Bytes.equals(res.getRow(), row1)); + + Thread.sleep(1); + + del = new Delete(row1); + del.deleteFamily(CONTENTS_FAMILY); + table.delete(del); + + Thread.sleep(1); + + put = new Put(row1); + put.add(CONTENTS_FAMILY, null, value); + table.put(put); + + Thread.sleep(1); + + get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, null); + res = table.get(get); + assertTrue(Bytes.equals(res.getRow(), row1)); + } + public void testRowsPut() { ArrayList rowsUpdate = new ArrayList(); for(int i = 0; i < NB_BATCH_ROWS; i++) { diff --git a/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java b/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java index 2534e1e..63c1fc3 100644 --- a/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java +++ b/src/test/org/apache/hadoop/hbase/regionserver/TestHRegion.java @@ -1221,10 +1221,66 @@ public class TestHRegion extends HBaseTestCase { List results = new ArrayList(); assertEquals(false, s.next(results)); assertEquals(0, results.size()); + } + public void testJDDeleteBug() throws IOException, InterruptedException { + initHRegion(tableName, getName(), fam1); + final byte[] CONTENTS_FAMILY = fam1; + final byte[] qual = new byte[0]; + final byte[] value = Bytes.toBytes("abcd"); + final byte[] row1 = row; + HRegion table = this.region; + + Put put = new Put(row1); + put.add(CONTENTS_FAMILY, qual, value); + table.put(put); + + Thread.sleep(1); + + Delete del = new Delete(row1); + del.deleteColumn(CONTENTS_FAMILY, qual); + table.delete(del, null, true); + + Thread.sleep(1); + + Get get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, qual); + Result res = table.get(get, null); + assertNull(res.getRow()); + + Thread.sleep(1); + + put = new Put(row1); + put.add(CONTENTS_FAMILY, qual, value); + table.put(put); + + Thread.sleep(1); + + get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, qual); + res = table.get(get, null); + assertTrue(Bytes.equals(res.getRow(), row1)); + + Thread.sleep(1); + + del = new Delete(row1); + del.deleteFamily(CONTENTS_FAMILY); + table.delete(del, null, true); + + Thread.sleep(1); + + put = new Put(row1); + put.add(CONTENTS_FAMILY, qual, value); + table.put(put); + + Thread.sleep(1); + + get = new Get(row1); + get.addColumn(CONTENTS_FAMILY, qual); + res = table.get(get, null); + assertTrue(Bytes.equals(res.getRow(), row1)); - } public void testScanner_Wildcard_FromMemStoreAndFiles_EnforceVersions()