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);
+  }
 }
 

Reply via email to