diff --git a/pom.xml b/pom.xml index 86a2ae45a06059466ff0a90e968c854de4b9d7c3..492953053f3a9ad5d59d0469cf3727711cd3746e 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 0000000000000000000000000000000000000000..5c7f180bea5d01dc4d7d756ac73535401148569b --- /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; + } +}