Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 5C525200BD0 for ; Tue, 15 Nov 2016 20:13:01 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 5B084160B03; Tue, 15 Nov 2016 19:13:01 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id A795F160B05 for ; Tue, 15 Nov 2016 20:13:00 +0100 (CET) Received: (qmail 66350 invoked by uid 500); 15 Nov 2016 19:12:59 -0000 Mailing-List: contact issues-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list issues@hbase.apache.org Received: (qmail 66028 invoked by uid 99); 15 Nov 2016 19:12:59 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 15 Nov 2016 19:12:59 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 2BCE32C4C7B for ; Tue, 15 Nov 2016 19:12:59 +0000 (UTC) Date: Tue, 15 Nov 2016 19:12:59 +0000 (UTC) From: "Andrew Purtell (JIRA)" To: issues@hbase.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (HBASE-17096) checkAndMutateApi doesn't work correctly on 0.98.19+ MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 15 Nov 2016 19:13:01 -0000 [ https://issues.apache.org/jira/browse/HBASE-17096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Purtell updated HBASE-17096: ----------------------------------- Resolution: Fixed Assignee: Heng Chen Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) Local tests all pass, pushed to 0.98 > checkAndMutateApi doesn't work correctly on 0.98.19+ > ---------------------------------------------------- > > Key: HBASE-17096 > URL: https://issues.apache.org/jira/browse/HBASE-17096 > Project: HBase > Issue Type: Bug > Reporter: Samarth Jain > Assignee: Heng Chen > Fix For: 0.98.24 > > Attachments: HBASE-17096-0.98.patch, HBASE-17096-0.98.v2.patch > > > Below is the test case. It uses some Phoenix APIs for getting hold of admin and HConnection but should be easily adopted for an HBase IT test. The second checkAndMutate should return false but it is returning true. This test fails with HBase-0.98.23 and works fine with HBase-0.98.17 > {code} > @Test > public void testCheckAndMutateApi() throws Exception { > byte[] row = Bytes.toBytes("ROW"); > byte[] tableNameBytes = Bytes.toBytes(generateUniqueName()); > byte[] family = Bytes.toBytes(generateUniqueName()); > byte[] qualifier = Bytes.toBytes("QUALIFIER"); > byte[] oldValue = null; > byte[] newValue = Bytes.toBytes("VALUE"); > Put put = new Put(row); > put.add(family, qualifier, newValue); > try (Connection conn = DriverManager.getConnection(getUrl())) { > PhoenixConnection phxConn = conn.unwrap(PhoenixConnection.class); > try (HBaseAdmin admin = phxConn.getQueryServices().getAdmin()) { > HTableDescriptor tableDesc = new HTableDescriptor( > TableName.valueOf(tableNameBytes)); > HColumnDescriptor columnDesc = new HColumnDescriptor(family); > columnDesc.setTimeToLive(120); > tableDesc.addFamily(columnDesc); > admin.createTable(tableDesc); > HTableInterface tableDescriptor = admin.getConnection().getTable(tableNameBytes); > assertTrue(tableDescriptor.checkAndPut(row, family, qualifier, oldValue, put)); > Delete delete = new Delete(row); > RowMutations mutations = new RowMutations(row); > mutations.add(delete); > assertTrue(tableDescriptor.checkAndMutate(row, family, qualifier, CompareOp.EQUAL, newValue, mutations)); > assertFalse(tableDescriptor.checkAndMutate(row, family, qualifier, CompareOp.EQUAL, newValue, mutations)); > } > } > } > {code} > FYI, [~apurtell], [~jamestaylor], [~lhofhansl]. -- This message was sent by Atlassian JIRA (v6.3.4#6332)