diff --git a/webapp/src/edu/cornell/mannlib/vedit/controller/OperationController.java b/webapp/src/edu/cornell/mannlib/vedit/controller/OperationController.java
index 6d8b6e158..69a711856 100644
--- a/webapp/src/edu/cornell/mannlib/vedit/controller/OperationController.java
+++ b/webapp/src/edu/cornell/mannlib/vedit/controller/OperationController.java
@@ -108,7 +108,7 @@ public class OperationController extends BaseEditController {
//if validation failed, go back to the form controller
if (!valid){
- retry(request,response);
+ retry(request, response, epo);
return;
}
@@ -116,7 +116,7 @@ public class OperationController extends BaseEditController {
boolean status = performEdit(epo, newObj, action);
if (status == FAILURE) {
- retry(request,response);
+ retry(request, response, epo);
return;
}
@@ -166,7 +166,7 @@ public class OperationController extends BaseEditController {
epo.setAttribute("globalErrorMsg", errMsg);
try {
- retry(request, response);
+ retry(request, response, epo);
return;
} catch (IOException ioe) {
log.error(this.getClass().getName() + " IOError on redirect: ", ioe);
@@ -174,18 +174,27 @@ public class OperationController extends BaseEditController {
}
}
- private void retry(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ private void retry(HttpServletRequest request,
+ HttpServletResponse response,
+ EditProcessObject epo) throws IOException {
String referer = request.getHeader("Referer");
-
+ referer = (referer == null) ? epo.getReferer() : referer;
if( referer != null ){
int epoKeyIndex = referer.indexOf("_epoKey");
if (epoKeyIndex >= 0){
- String url = referer.substring(0,epoKeyIndex) + "_epoKey="+request.getParameter("_epoKey");
+ String url = referer.substring(0,epoKeyIndex) + "_epoKey=" +
+ request.getParameter("_epoKey");
response.sendRedirect(url);
return;
}
+ String redirectUrl = (referer.indexOf("?") > -1)
+ ? referer + "&"
+ : referer + "?";
+ redirectUrl += "_epoKey="+request.getParameter("_epoKey");
+ response.sendRedirect(redirectUrl);
+ } else {
+ response.sendRedirect(getDefaultLandingPage(request));
}
- response.sendRedirect(referer+"&_epoKey="+request.getParameter("_epoKey"));
return;
}
diff --git a/webapp/web/templates/edit/specific/vclass_retry.jsp b/webapp/web/templates/edit/specific/vclass_retry.jsp
index 1eb5c718f..bc568b189 100644
--- a/webapp/web/templates/edit/specific/vclass_retry.jsp
+++ b/webapp/web/templates/edit/specific/vclass_retry.jsp
@@ -41,7 +41,6 @@
-