@Test
public void testAppRecoveryFailure() throws YarnException, Exception {

  Configuration conf = createConfiguration();
  // Use the MockRequestInterceptorAcrossRestart instead for the chain
  conf.set(YarnConfiguration.AMRM_PROXY_INTERCEPTOR_CLASS_PIPELINE,
      BadRequestInterceptorAcrossRestart.class.getName());
  mockRM = new MockResourceManagerFacade(new YarnConfiguration(conf), 0);
  createAndStartAMRMProxyService(conf);
  // Create an app entry in NMSS
  registerApplicationMaster(1);
  RecoveredAMRMProxyState state =
      getNMContext().getNMStateStore().loadAMRMProxyState();
  Assert.assertEquals(1, state.getAppContexts().size());
  // AMRMProxy restarts and recover
  createAndStartAMRMProxyService(conf);
  state = getNMContext().getNMStateStore().loadAMRMProxyState();
  // The app that failed to recover should have been removed from NMSS
  Assert.assertEquals(0, state.getAppContexts().size());
}