From 5b8041a1389f7be0ebb55f102db94caaab6e745b Mon Sep 17 00:00:00 2001 From: zhangduo Date: Thu, 25 Apr 2019 22:43:51 +0800 Subject: [PATCH] HBASE-22239 Also catch RemoteException in SyncReplicationTestBase.verifyReplicationRequestRejection --- .../hbase/replication/SyncReplicationTestBase.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SyncReplicationTestBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SyncReplicationTestBase.java index e0d112d0d6..fd8df32fd0 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SyncReplicationTestBase.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SyncReplicationTestBase.java @@ -17,8 +17,10 @@ */ package org.apache.hadoop.hbase.replication; +import static org.hamcrest.CoreMatchers.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -51,6 +53,7 @@ import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.hbase.wal.WAL.Entry; import org.apache.hadoop.hbase.wal.WALEdit; import org.apache.hadoop.hbase.wal.WALKeyImpl; +import org.apache.hadoop.ipc.RemoteException; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -247,6 +250,12 @@ public class SyncReplicationTestBase { } } + private void assertRejection(Throwable error) { + assertThat(error, instanceOf(DoNotRetryIOException.class)); + assertTrue(error.getMessage().contains("Reject to apply to sink cluster")); + assertTrue(error.getMessage().contains(TABLE_NAME.toString())); + } + protected final void verifyReplicationRequestRejection(HBaseTestingUtility utility, boolean expectedRejection) throws Exception { HRegionServer regionServer = utility.getRSForFirstRegionInTable(TABLE_NAME); @@ -264,9 +273,10 @@ public class SyncReplicationTestBase { ReplicationProtbufUtil.replicateWALEntry( connection.getRegionServerAdmin(regionServer.getServerName()), entries, null, null, null); fail("Should throw IOException when sync-replication state is in A or DA"); + } catch (RemoteException e) { + assertRejection(e.unwrapRemoteException()); } catch (DoNotRetryIOException e) { - assertTrue(e.getMessage().contains("Reject to apply to sink cluster")); - assertTrue(e.getMessage().contains(TABLE_NAME.toString())); + assertRejection(e); } } } -- 2.17.1