Skip to content

Commit

Permalink
Stack trace improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
cyberphone committed Feb 12, 2020
1 parent d7a4e17 commit f9f45b9
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 26 deletions.
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion bank/src/org/webpki/saturn/bank/ProcessingBaseServlet.java
Expand Up @@ -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();
Expand Down
Expand Up @@ -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.<br>" +
"Please try again or contact support.");
HttpSupport.writeJsonData(response, userError);
Expand Down
10 changes: 4 additions & 6 deletions merchant/src/org/webpki/saturn/merchant/RefundServlet.java
Expand Up @@ -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;
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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);
}
}
Expand Down
3 changes: 2 additions & 1 deletion merchant/src/org/webpki/saturn/merchant/ResultServlet.java
Expand Up @@ -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;

//////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -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.<br>Please try again or contact support.");
}
}
Expand Down
20 changes: 20 additions & 0 deletions resources/common/org/webpki/saturn/common/HttpSupport.java
Expand Up @@ -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();
}
}

0 comments on commit f9f45b9

Please sign in to comment.