[ https://issues.apache.org/jira/browse/HBASE-17096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Samarth Jain updated HBASE-17096: --------------------------------- Summary: checkAndMutateApi doesn't work correctly on 0.98.19+ (was: checkAndMutateApi doesn't work correctly on 0.98.23) > 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 > > 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)