@Test
public void testRecoverTransitionReadDoTransitionFailure()
    throws IOException {

  final int numLocations = 3;
  List<StorageLocation> locations = createStorageLocations(numLocations);
  // Prepare volumes
  storage.recoverTransitionRead(mockDN, nsInfo, locations, START_OPT);
  assertEquals(numLocations, storage.getNumStorageDirs());
  // Reset DataStorage
  storage.unlockAll();
  storage = new DataStorage();
  // Trigger an exception from doTransition().
  nsInfo.clusterID = "cluster1";
  try {
    storage.recoverTransitionRead(mockDN, nsInfo, locations, START_OPT);
    fail("Expect to throw an exception from doTransition()");
  } catch (IOException e) {
    GenericTestUtils.assertExceptionContains("All specified directories", e);
  }
  assertEquals(0, storage.getNumStorageDirs());
}