@Override protected void stateChanged(State oldState) { State state = getState(); if (state.isFinal()) { for (LsFileRequest fr : getFileRequests()) { fr.wlock(); try { State fr_state = fr.getState(); if (!fr_state.isFinal()) { fr.setState(state, "Changing file state because request state has changed."); } } catch (IllegalStateTransition ist) { logger.error("Illegal State Transition : " + ist.getMessage()); } finally { fr.wunlock(); } } } }