+ protected synchronized String dumpSessionsHistory(
+ DetachedRequest requestCurrent, DetachedAnswer answerCurrent) {
+ StringBuffer buf = new StringBuffer("## SESSIONS HISTORY DUMP\n");
+ buf.append("# CURRENT\n");
+ buf.append("Current session: ").append(getCurrentSession())
+ .append('\n');
+ buf.append("Current request: ").append(requestCurrent).append('\n');
+ buf.append("Current answer: ").append(answerCurrent).append('\n');
+ buf.append("Skip count: ").append(skipCount).append('\n');
+
+ buf.append("# SESSIONS\n");
+ for (int i = 0; i < sessions.size(); i++) {
+ DetachedSession session = (DetachedSession) sessions.get(i);
+ buf.append(i).append(". ").append(session).append('\n');
+ List requests = session.getRequests();
+ List answers = session.getAnswers();
+ for (int j = 0; j < requests.size(); j++) {
+ DetachedRequest request = (DetachedRequest) requests.get(j);
+ buf.append('\t').append(j).append(". ").append(request).append(
+ '\n');
+ if (answers.size() > j) {
+ DetachedAnswer answer = (DetachedAnswer) answers.get(j);
+ buf.append('\t').append(j).append(". ").append(answer)
+ .append('\n');
+ }
+ }
+ }
+
+ buf.append("# DETACHED CONTEXT\n");
+ buf.append(detachedContext).append('\n');
+
+ return buf.toString();
+ }
+
+ protected synchronized final DetachedSession getPreviousSession() {