Index: TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java =================================================================== diff -u -r044d2c0977e88053366db9cecba68192a6cebe5a -rbe522daa5f74c45a552e71392fe59b94d4ed25bc --- TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java (.../Call.java) (revision 044d2c0977e88053366db9cecba68192a6cebe5a) +++ TestHarness4LAMS2/src/org/lamsfoundation/testharness/Call.java (.../Call.java) (revision be522daa5f74c45a552e71392fe59b94d4ed25bc) @@ -193,10 +193,10 @@ long end = 0; try { WebResponse resp = null; + WebRequest req = null; if (form != null) { SubmitButton[] submitButtons = filterCancelButton(form.getSubmitButtons()); Call.log.debug(submitButtons.length + " non-cancel submit buttons in the form"); - WebRequest req = null; if (submitButtons.length <= 1) { req = form.getRequest(); } else { @@ -209,7 +209,6 @@ end = System.currentTimeMillis(); } else { String absoluteURL = getAbsoluteURL(url); - WebRequest req; if (is == null) { callee = "GET " + url; req = new GetMethodWebRequest(absoluteURL); @@ -222,17 +221,20 @@ resp = wc.getResponse(req); end = System.currentTimeMillis(); } + httpStatusCode = resp.getResponseCode(); - message = resp.getResponseMessage(); - - /*if(callee.indexOf("passon.swf")==-1) - log.debug(resp.getText());*/ - - if (resp.getResponseCode() >= 400) { - Call.log.debug(resp.getText()); - throw new TestHarnessException(test.testName + " got http error code " + httpStatusCode); + if (httpStatusCode >= 400) { + log.debug("Got " + httpStatusCode + " HTTP code. Retrying call: " + callee); + resp = wc.getResponse(req); + end = System.currentTimeMillis(); + httpStatusCode = resp.getResponseCode(); + if (httpStatusCode >= 400) { + Call.log.debug(resp.getText()); + throw new TestHarnessException(test.testName + " got HTTP code " + httpStatusCode); + } } - + + message = resp.getResponseMessage(); for (String headerFieldName : resp.getHeaderFieldNames()) { if (headerFieldName.equalsIgnoreCase("SET-COOKIE")) { for (String headerFieldValue : resp.getHeaderFields(headerFieldName)) {