1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.master;
22
23 import static org.junit.Assert.assertTrue;
24 import static org.junit.Assert.fail;
25
26 import org.apache.hadoop.conf.Configuration;
27 import org.apache.hadoop.hbase.HBaseTestingUtility;
28 import org.apache.hadoop.hbase.HConstants;
29 import org.apache.hadoop.hbase.HServerAddress;
30 import org.apache.hadoop.hbase.ipc.HBaseRPC;
31 import org.apache.hadoop.hbase.ipc.HBaseRPCProtocolVersion;
32 import org.apache.hadoop.hbase.ipc.HMasterInterface;
33 import org.apache.hadoop.ipc.RemoteException;
34 import org.junit.Test;
35
36 public class TestHMasterRPCException {
37
38 @Test
39 public void testRPCException() throws Exception {
40 HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
41 TEST_UTIL.startMiniZKCluster();
42 Configuration conf = TEST_UTIL.getConfiguration();
43 conf.set(HConstants.MASTER_PORT, "0");
44
45 HMaster hm = new HMaster(conf);
46
47 HServerAddress hma = hm.getMasterAddress();
48 try {
49 HMasterInterface inf =
50 (HMasterInterface) HBaseRPC.getProxy(
51 HMasterInterface.class, HBaseRPCProtocolVersion.versionID,
52 hma.getInetSocketAddress(), conf, 100);
53 inf.isMasterRunning();
54 fail();
55 } catch (RemoteException ex) {
56 assertTrue(ex.getMessage().startsWith("org.apache.hadoop.hbase.ipc.ServerNotRunningException: Server is not running yet"));
57 } catch (Throwable t) {
58 fail("Unexpected throwable: " + t);
59 }
60 }
61 }