From ad276a6d166750cd8718d6a7e53a7ba015a3a2de Mon Sep 17 00:00:00 2001
From: Ludovic Claude <ludovic.claude54@gmail.com>
Date: Mon, 26 Jun 2017 11:02:27 +0200
Subject: [PATCH] Update Spring, generate more complete error response

---
 pom.xml                                       |  6 ++--
 .../configuration/PortalErrorAttributes.java  | 31 +++++++++++++++++++
 2 files changed, 34 insertions(+), 3 deletions(-)
 create mode 100644 src/main/java/eu/hbp/mip/configuration/PortalErrorAttributes.java

diff --git a/pom.xml b/pom.xml
index 86a2ae45a..492953053 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
         <asciidoctor.maven.plugin.version>1.5.3</asciidoctor.maven.plugin.version>
         <asciidoctorj.pdf.version>1.5.0-alpha.11</asciidoctorj.pdf.version>
         <asciidoctorj.version>1.5.4</asciidoctorj.version>
-        <spring-data-commons.version>1.12.2.RELEASE</spring-data-commons.version>
+        <spring-data-commons.version>1.13.4.RELEASE</spring-data-commons.version>
         <angularjs.version>1.5.7</angularjs.version>
         <jquery.version>3.0.0</jquery.version>
         <bootstrap.version>3.3.7</bootstrap.version>
@@ -43,9 +43,9 @@
         <hibernate4-maven-plugin.version>1.1.0</hibernate4-maven-plugin.version>
         <flyway-core.version>4.0.3</flyway-core.version>
         <hibernate-jpa-2.1-api.version>1.0.0.Final</hibernate-jpa-2.1-api.version>
-        <hibernate.version>4.3.8.Final</hibernate.version>
+        <hibernate.version>4.3.11.Final</hibernate.version>
         <spring-data-jpa.version>1.10.2.RELEASE</spring-data-jpa.version>
-        <spring-boot-starter-actuator.version>1.4.0.RELEASE</spring-boot-starter-actuator.version>
+        <spring-boot-starter-actuator.version>1.5.4.RELEASE</spring-boot-starter-actuator.version>
         <aspectjweaver.version>1.8.9</aspectjweaver.version>
         <woken-messages.version>76f49ed</woken-messages.version>
         <javax-inject.version>1</javax-inject.version>
diff --git a/src/main/java/eu/hbp/mip/configuration/PortalErrorAttributes.java b/src/main/java/eu/hbp/mip/configuration/PortalErrorAttributes.java
new file mode 100644
index 000000000..5c7f180be
--- /dev/null
+++ b/src/main/java/eu/hbp/mip/configuration/PortalErrorAttributes.java
@@ -0,0 +1,31 @@
+package eu.hbp.mip.configuration;
+
+import org.apache.log4j.Logger;
+import org.springframework.boot.autoconfigure.web.DefaultErrorAttributes;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class PortalErrorAttributes extends DefaultErrorAttributes {
+    private static final Logger LOGGER = Logger.getLogger(PortalErrorAttributes.class);
+
+    @Override
+    public Map<String, Object> getErrorAttributes(RequestAttributes requestAttributes, boolean includeStackTrace) {
+        Map<String, Object> errorAttributes = super.getErrorAttributes(requestAttributes, includeStackTrace);
+
+        Throwable throwable = getError(requestAttributes);
+        LOGGER.warn("Reporting server error", throwable);
+
+        Throwable cause = throwable.getCause();
+        if (cause != null) {
+            Map<String, Object> causeErrorAttributes = new HashMap<>();
+            causeErrorAttributes.put("exception", cause.getClass().getName());
+            causeErrorAttributes.put("message", cause.getMessage());
+            errorAttributes.put("cause", causeErrorAttributes);
+        }
+        return errorAttributes;
+    }
+}
-- 
GitLab