if (pendingTraversal == null) {
final Iterator<Object> it = tearDownKeys.iterator();
while (it.hasNext()) {
keyManager.tearDown(it.next());
it.remove();
<BUG>}
} else if (dispatcher != null) {</BUG>
pendingTraversal.execute();
}
}

if (pendingTraversal == null) {
final Iterator<Object> it = tearDownKeys.iterator();
while (it.hasNext()) {
keyManager.tearDown(it.next());
it.remove();
}
keyManager.clearStatesExcept(history.asList());
} else if (dispatcher != null) {
pendingTraversal.execute();
}
}
