diff --git a/acquirer/src/org/webpki/saturn/acquirer/ProcessingBaseServlet.java b/acquirer/src/org/webpki/saturn/acquirer/ProcessingBaseServlet.java
index b3c15c9e..f4a15392 100644
--- a/acquirer/src/org/webpki/saturn/acquirer/ProcessingBaseServlet.java
+++ b/acquirer/src/org/webpki/saturn/acquirer/ProcessingBaseServlet.java
@@ -106,7 +106,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr
// general connectivity problems. //
/////////////////////////////////////////////////////////////////////////////////////////
String message = (urlHolder == null ? "" : "Source" + urlHolder.getCallerAddress()) + e.getMessage();
- logger.log(Level.SEVERE, message, e);
+ logger.log(Level.SEVERE, HttpSupport.getStackTrace(e, message));
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
PrintWriter writer = response.getWriter();
writer.print(message);
diff --git a/bank/src/org/webpki/saturn/bank/ProcessingBaseServlet.java b/bank/src/org/webpki/saturn/bank/ProcessingBaseServlet.java
index 2645e908..d3315650 100644
--- a/bank/src/org/webpki/saturn/bank/ProcessingBaseServlet.java
+++ b/bank/src/org/webpki/saturn/bank/ProcessingBaseServlet.java
@@ -153,7 +153,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr
String message = (urlHolder == null ? "" : "From" + urlHolder.getCallerAddress() +
(urlHolder.getUrl() == null ? "" : "URL=" + urlHolder.getUrl()) + "\n") + e.getMessage();
if (!(e instanceof NormalException)) {
- logger.log(Level.SEVERE, message, e);
+ logger.log(Level.SEVERE, HttpSupport.getStackTrace(e, message));
}
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
PrintWriter writer = response.getWriter();
diff --git a/merchant/src/org/webpki/saturn/merchant/ProcessingBaseServlet.java b/merchant/src/org/webpki/saturn/merchant/ProcessingBaseServlet.java
index f02c5593..07cd08ea 100644
--- a/merchant/src/org/webpki/saturn/merchant/ProcessingBaseServlet.java
+++ b/merchant/src/org/webpki/saturn/merchant/ProcessingBaseServlet.java
@@ -147,23 +147,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr
} catch (Exception e) {
String message = (urlHolder.getUrl() == null ? "" : "URL=" + urlHolder.getUrl() + "\n") + e.getMessage();
- StringBuilder error = new StringBuilder()
- .append(e.getClass().getName())
- .append(": ")
- .append(message);
- StackTraceElement[] st = e.getStackTrace();
- int length = st.length;
- if (length > 20) {
- length = 20;
- }
- for (int i = 0; i < length; i++) {
- String entry = st[i].toString();
- error.append("\n at " + entry);
- if (entry.contains(".HttpServlet")) {
- break;
- }
- }
- logger.log(Level.SEVERE, error.toString());
+ logger.log(Level.SEVERE, HttpSupport.getStackTrace(e, message));
JSONObjectWriter userError = WalletAlertMessage.encode("An unexpected error occurred.
" +
"Please try again or contact support.");
HttpSupport.writeJsonData(response, userError);
diff --git a/merchant/src/org/webpki/saturn/merchant/RefundServlet.java b/merchant/src/org/webpki/saturn/merchant/RefundServlet.java
index f7d3cef0..58218b45 100644
--- a/merchant/src/org/webpki/saturn/merchant/RefundServlet.java
+++ b/merchant/src/org/webpki/saturn/merchant/RefundServlet.java
@@ -32,6 +32,7 @@
import org.webpki.json.JSONObjectWriter;
import org.webpki.saturn.common.AuthorizationRequest;
+import org.webpki.saturn.common.HttpSupport;
import org.webpki.saturn.common.KnownExtensions;
import org.webpki.saturn.common.PayeeAuthority;
import org.webpki.saturn.common.ProviderAuthority;
@@ -87,11 +88,8 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
return;
}
- // We do the assumption that you can receive and send money bidirectionally
- // using the same account type
- String context = authorizationRequest
- .getPayeeReceiveAccount(MerchantService.knownBackendAccountTypes).getContext();
-
+ // We do the assumption here that SEPA is always useful for receiving and sending money
+ String context = new org.payments.sepa.SEPAAccountDataDecoder().getContext();
JSONObjectWriter refundRequestData =
RefundRequest.encode(resultData.optionalRefund,
refundUrl,
@@ -122,7 +120,7 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) thro
resultData);
} catch (Exception e) {
String message = (urlHolder.getUrl() == null ? "" : "URL=" + urlHolder.getUrl() + "\n") + e.getMessage();
- logger.log(Level.SEVERE, message, e);
+ logger.log(Level.SEVERE, HttpSupport.getStackTrace(e, message));
ErrorServlet.systemFail(response, message);
}
}
diff --git a/merchant/src/org/webpki/saturn/merchant/ResultServlet.java b/merchant/src/org/webpki/saturn/merchant/ResultServlet.java
index 96f90cf9..e4091164 100644
--- a/merchant/src/org/webpki/saturn/merchant/ResultServlet.java
+++ b/merchant/src/org/webpki/saturn/merchant/ResultServlet.java
@@ -30,6 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
+import org.webpki.saturn.common.HttpSupport;
import org.webpki.saturn.common.UrlHolder;
//////////////////////////////////////////////////////////////////////////
@@ -100,7 +101,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response) thr
resultData);
} catch (Exception e) {
String message = (urlHolder.getUrl() == null ? "" : "URL=" + urlHolder.getUrl() + "\n") + e.getMessage();
- logger.log(Level.SEVERE, message, e);
+ logger.log(Level.SEVERE, HttpSupport.getStackTrace(e, message));
ErrorServlet.systemFail(response, "An unexpected error occurred.
Please try again or contact support.");
}
}
diff --git a/resources/common/org/webpki/saturn/common/HttpSupport.java b/resources/common/org/webpki/saturn/common/HttpSupport.java
index 01992bed..eecceb81 100644
--- a/resources/common/org/webpki/saturn/common/HttpSupport.java
+++ b/resources/common/org/webpki/saturn/common/HttpSupport.java
@@ -73,4 +73,24 @@ public static JSONObjectReader readJsonData(HttpServletRequest request) throws I
}
return JSONParser.parse(ServletUtil.getData(request));
}
+
+ public static String getStackTrace(Exception e, String message) {
+ StringBuilder error = new StringBuilder()
+ .append(e.getClass().getName())
+ .append(": ")
+ .append(message);
+ StackTraceElement[] st = e.getStackTrace();
+ int length = st.length;
+ if (length > 20) {
+ length = 20;
+ }
+ for (int i = 0; i < length; i++) {
+ String entry = st[i].toString();
+ error.append("\n at " + entry);
+ if (entry.contains(".HttpServlet")) {
+ break;
+ }
+ }
+ return error.toString();
+ }
}