@Override
    // add synchronized to avoid process 2 or more stmts at same time
    public synchronized ShowResultSet process(List<AlterClause> alterClauses, Database dummyDb,
                                              OlapTable dummyTbl) throws UserException {
        Preconditions.checkArgument(alterClauses.size() == 1);
        AlterClause alterClause = alterClauses.get(0);
        alterClause.accept(SystemHandler.Visitor.getInstance(), null);
        return null;
    }
@Test
    public void testDecommissionInvalidBackend() throws UserException {
        List<String> hostAndPorts = Lists.newArrayList("192.168.1.11:1234");
        DecommissionBackendClause decommissionBackendClause = new DecommissionBackendClause(hostAndPorts);
        Analyzer.analyze(new AlterSystemStmt(decommissionBackendClause), new ConnectContext());

        expectedException.expect(RuntimeException.class);
        expectedException.expectMessage("Backend does not exist");
        systemHandler.process(Lists.newArrayList(decommissionBackendClause), null, null);
    }