throws ServletException, IOException, SQLException,
AuthorizeException
{
// load the current submission process config
// to get the list of steps the user went through
SubmissionConfig subProcessConfig = subInfo.getSubmissionConfig();
// create a HashMap of step data to review for the Verify JSP
// This HashMap will be the following format:
// key = stepNumber.pageNumber
// value = path to review JSP for this Step (which will load the users
// answers)
Map<String, String> reviewData = new LinkedHashMap<String, String>();
// this shouldn't happen...but just in case!
if (subInfo.getProgressBarInfo() == null)
{
// progress bar information is lost!
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil
.getRequestLogInfo(request)));
JSPManager.showIntegrityError(request, response);
return;
}
// loop through the steps in our Progress Bar
// (since these are steps the user visited)
Iterator<String> stepIterator = subInfo.getProgressBarInfo().keySet()
.iterator();
while (stepIterator.hasNext())
{
// remember, the keys of the progressBar hashmap is in the
// format: stepNumber.pageNumber
String stepAndPage = stepIterator.next();
// extract out the step number (which is before the period)
String[] fields = stepAndPage.split("\\."); // split on period
int stepNum = Integer.parseInt(fields[0]);
// only include this step if it is BEFORE the current "verify" step
// (We cannot review steps that we haven't gotten to!!)
if (stepNum < SubmissionController.getCurrentStepConfig(request,
subInfo).getStepNumber())
{
// load this step's information
SubmissionStepConfig s = subProcessConfig.getStep(stepNum);
try
{
JSPStepManager stepManager = JSPStepManager.loadStep(s);