public static RpcInvokeContext getContext() {
        RpcInvokeContext context = LOCAL.get();
        if (context == null) {
            context = new RpcInvokeContext();
            LOCAL.set(context);
        }
        return context;
    }
@Test
    public void getContext() throws Exception {
        RpcInvokeContext old = RpcInvokeContext.peekContext();
        try {
            if (old != null) {
                RpcInvokeContext.removeContext();
            }
            RpcInvokeContext context = RpcInvokeContext.peekContext();
            Assert.assertTrue(context == null);
            context = RpcInvokeContext.getContext();
            Assert.assertTrue(context != null);
            RpcInvokeContext.removeContext();
            Assert.assertTrue(RpcInvokeContext.peekContext() == null);

            context = new RpcInvokeContext();
            RpcInvokeContext.setContext(context);
            Assert.assertTrue(RpcInvokeContext.getContext() != null);
            Assert.assertNotEquals(RpcInvokeContext.getContext(), context);

            RpcInvokeContext.removeContext();
            Assert.assertTrue(RpcInvokeContext.peekContext() == null);
            Assert.assertTrue(context != null);

            RpcInvokeContext.removeContext();
            Assert.assertTrue(RpcInvokeContext.peekContext() == null);
        } finally {
            RpcInvokeContext.setContext(old);
        }
    }