// Acquire a lock on the root node
acquireLocksForStateTransfer(targetRoot, owner, state_fetch_timeout,
true, true);
// 1. Unserialize the states into transient and persistent state
StateTransferIntegrator integrator =
StateTransferFactory.getStateTransferIntegrator(new_state,
targetRoot.getFqn(),
this);
// 2. If transient state is available, integrate it
try
{
integrator.integrateTransientState(targetRoot, cl);
notifyAllNodesCreated(targetRoot);
}
catch (Throwable t)
{
log.error("failed setting transient state", t);
}
// 3. Store any persistent state
integrator.integratePersistentState();
}
finally
{
releaseStateTransferLocks(targetRoot, owner, true);
}