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 java.net.InetSocketAddress;
27
28 import org.apache.hadoop.conf.Configuration;
29 import org.apache.hadoop.hbase.HBaseTestingUtility;
30 import org.apache.hadoop.hbase.HConstants;
31 import org.apache.hadoop.hbase.ServerName;
32 import org.apache.hadoop.hbase.ipc.HBaseRPC;
33 import org.apache.hadoop.hbase.ipc.HMasterInterface;
34 import org.apache.hadoop.ipc.RemoteException;
35 import org.junit.Test;
36
37 public class TestHMasterRPCException {
38
39 @Test
40 public void testRPCException() throws Exception {
41 HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
42 TEST_UTIL.startMiniZKCluster();
43 Configuration conf = TEST_UTIL.getConfiguration();
44 conf.set(HConstants.MASTER_PORT, "0");
45
46 HMaster hm = new HMaster(conf);
47
48 ServerName sm = hm.getServerName();
49 InetSocketAddress isa = new InetSocketAddress(sm.getHostname(), sm.getPort());
50 try {
51 HMasterInterface inf = (HMasterInterface) HBaseRPC.getProxy(
52 HMasterInterface.class, HMasterInterface.VERSION, isa, conf, 100);
53 inf.isMasterRunning();
54 fail();
55 } catch (RemoteException ex) {
56 assertTrue(ex.getMessage().startsWith(
57 "org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet"));
58 } catch (Throwable t) {
59 fail("Unexpected throwable: " + t);
60 }
61 }
62 }