public boolean forceDisconnect(VM vm) throws Exception {
    SerializableCallableIF<Boolean> forceDisconnect = () -> {
      // since the system will disconnect and attempt to reconnect
      // a new system the old reference to DTC.system can cause
      // trouble, so we first null it out.
      nullSystem();
      final Locator oldLocator = Locator.getLocator();
      final DistributedSystem msys = cache.getDistributedSystem();
      MembershipManagerHelper.crashDistributedSystem(msys);
      if (oldLocator != null) {
        GeodeAwaitility.await()
            .until(() -> msys.isReconnecting() || msys.getReconnectedSystem() != null);
      }
      return true;
    };
    if (vm != null) {
      return vm.invoke("crash distributed system", forceDisconnect);
    } else {
      return forceDisconnect.call();
    }
  }
GEODE-2155 Auto-reconnect fails with NPE due to a cache listener Declarable.init method
throwing an exception.
geode-core/src/distributedTest/java/org/apache/geode/cache30/ReconnectDUnitTest.java