Repository: hbase Updated Branches: refs/heads/branch-1 fb74f215b -> 1eea44c80 refs/heads/branch-2 1cc62e928 -> 1a324e3a7 refs/heads/branch-2.0 383e5cbba -> 99d62d07d refs/heads/branch-2.1 6e0c6271f -> 5410b9858 refs/heads/master 0992a7c1f -> 9c09efc0d
HBASE-21132 return wrong result in rest multiget Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/99d62d07 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/99d62d07 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/99d62d07 Branch: refs/heads/branch-2.0 Commit: 99d62d07d0e5cc19d5068bc748e49fa405898ee3 Parents: 383e5cb Author: Guangxu Cheng <guangxuch...@gmail.com> Authored: Thu Aug 30 20:51:41 2018 +0800 Committer: Guangxu Cheng <guangxuch...@gmail.com> Committed: Sun Sep 2 14:21:38 2018 +0800 ---------------------------------------------------------------------- .../hadoop/hbase/rest/MultiRowResource.java | 2 +- .../hadoop/hbase/rest/TestMultiRowResource.java | 32 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/99d62d07/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java ---------------------------------------------------------------------- diff --git a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java index 1b8cdf5..503f8e9 100644 --- a/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java +++ b/hbase-rest/src/main/java/org/apache/hadoop/hbase/rest/MultiRowResource.java @@ -92,7 +92,7 @@ public class MultiRowResource extends ResourceBase implements Constants { ResultGenerator.fromRowSpec(this.tableResource.getName(), rowSpec, null, !params.containsKey(NOCACHE_PARAM_NAME)); Cell value = null; - RowModel rowModel = new RowModel(rk); + RowModel rowModel = new RowModel(rowSpec.getRow()); if (generator.hasNext()) { while ((value = generator.next()) != null) { rowModel.addCell(new CellModel(CellUtil.cloneFamily(value), CellUtil http://git-wip-us.apache.org/repos/asf/hbase/blob/99d62d07/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java ---------------------------------------------------------------------- diff --git a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java index 928abfd..a8af6c4 100644 --- a/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java +++ b/hbase-rest/src/test/java/org/apache/hadoop/hbase/rest/TestMultiRowResource.java @@ -244,5 +244,37 @@ public class TestMultiRowResource { client.delete(row_5_url, extraHdr); } + @Test + public void testMultiCellGetWithColsInQueryPathJSON() throws IOException, JAXBException { + String row_5_url = "/" + TABLE + "/" + ROW_1 + "/" + COLUMN_1; + String row_6_url = "/" + TABLE + "/" + ROW_2 + "/" + COLUMN_2; + + StringBuilder path = new StringBuilder(); + path.append("/"); + path.append(TABLE); + path.append("/multiget/?row="); + path.append(ROW_1); + path.append("/"); + path.append(COLUMN_1); + path.append("&row="); + path.append(ROW_2); + path.append("/"); + path.append(COLUMN_1); + + client.post(row_5_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_1), extraHdr); + client.post(row_6_url, Constants.MIMETYPE_BINARY, Bytes.toBytes(VALUE_2), extraHdr); + + Response response = client.get(path.toString(), Constants.MIMETYPE_JSON); + assertEquals(200, response.getCode()); + ObjectMapper mapper = new JacksonJaxbJsonProvider().locateMapper( + CellSetModel.class, MediaType.APPLICATION_JSON_TYPE); + CellSetModel cellSet = mapper.readValue(response.getBody(), CellSetModel.class); + assertEquals(1, cellSet.getRows().size()); + assertEquals(ROW_1, Bytes.toString(cellSet.getRows().get(0).getKey())); + assertEquals(VALUE_1, Bytes.toString(cellSet.getRows().get(0).getCells().get(0).getValue())); + + client.delete(row_5_url, extraHdr); + client.delete(row_6_url, extraHdr); + } }