final UIContext previousUIContext = application.getUIContext(reloadedViewID);
if (previousUIContext != null) previousUIContext.destroy();
}
try {
final Txn txn = Txn.get();
txn.begin(new TxnContextHttp(true, request, response));
try {
final long receivedSeqNum = data.getLong(APPLICATION.SEQ_NUM);
uiContext.updateIncomingSeqNum(receivedSeqNum);
final EntryPoint entryPoint = initializePonySession(uiContext);
final String historyToken = data.getString(HISTORY.TOKEN);
if (historyToken != null && !historyToken.isEmpty()) uiContext.getHistory().newItem(historyToken, false);
final PCookies pCookies = uiContext.getCookies();
final JSONArray cookies = data.getJSONArray(PROPERTY.COOKIES);
for (int i = 0; i < cookies.length(); i++) {
final JSONObject jsoObject = cookies.getJSONObject(i);
final String name = jsoObject.getString(PROPERTY.KEY);
final String value = jsoObject.getString(PROPERTY.VALUE);
pCookies.cacheCookie(name, value);
}
if (isNewHttpSession) {
entryPoint.start(uiContext);
} else {
entryPoint.restart(uiContext);
}
txn.commit();
} catch (final Throwable e) {
log.error("Cannot send instructions to the browser, Session ID #" + session.getId(), e);
txn.rollback();
}
} finally {
UIContext.remove();
}
}