In unit test methods we assume the cluster is not null as setup method is called before each test. This works just fine since the unit test methods won't run if setup throws an exception when constructing cluster and other resources.
However, the @After annotated methods are guaranteed to run even if a @Before or @Test method throws an exception. Thus we'd better check the cluster before using it in tearDown.
Another approach is to make the teadDown method throw an exception. This patch looks good to me.