diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/FlywayEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/FlywayEndpoint.java index 1dd091cded..35dbcf2dbd 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/FlywayEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/FlywayEndpoint.java @@ -62,27 +62,26 @@ public class FlywayEndpoint extends AbstractEndpoint> { */ public static class FlywayMigration { - private MigrationType type; + private final MigrationType type; - private Integer checksum; + private final Integer checksum; - private String version; + private final String version; - private String description; + private final String description; - private String script; + private final String script; - private MigrationState state; + private final MigrationState state; - private Date installedOn; + private final Date installedOn; - private Integer executionTime; + private final Integer executionTime; public FlywayMigration(MigrationInfo info) { this.type = info.getType(); this.checksum = info.getChecksum(); - this.version = info.getVersion() != null ? info.getVersion().toString() - : null; + this.version = nullSafeToString(info.getVersion()); this.description = info.getDescription(); this.script = info.getScript(); this.state = info.getState(); @@ -90,6 +89,10 @@ public class FlywayEndpoint extends AbstractEndpoint> { this.executionTime = info.getExecutionTime(); } + private String nullSafeToString(Object obj) { + return (obj == null ? null : obj.toString()); + } + public MigrationType getType() { return this.type; } diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java index 2b78563cf5..1bc286c5a5 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/ShutdownEndpoint.java @@ -35,6 +35,14 @@ import org.springframework.context.ConfigurableApplicationContext; public class ShutdownEndpoint extends AbstractEndpoint> implements ApplicationContextAware { + private static final Map NO_CONTEXT_MESSAGE = Collections + .unmodifiableMap(Collections.singletonMap("message", + "No context to shutdown.")); + + private static final Map SHUTDOWN_MESSAGE = Collections + .unmodifiableMap(Collections.singletonMap("message", + "Shutting down, bye...")); + private ConfigurableApplicationContext context; /** @@ -46,19 +54,15 @@ public class ShutdownEndpoint extends AbstractEndpoint> @Override public Map invoke() { - if (this.context == null) { - return Collections.singletonMap("message", - "No context to shutdown."); + return NO_CONTEXT_MESSAGE; } - try { - return Collections.singletonMap("message", - "Shutting down, bye..."); + return SHUTDOWN_MESSAGE; } finally { - new Thread(new Runnable() { + @Override public void run() { try { @@ -69,8 +73,8 @@ public class ShutdownEndpoint extends AbstractEndpoint> } ShutdownEndpoint.this.context.close(); } - }).start(); + }).start(); } } diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/AbstractMetricExporter.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/AbstractMetricExporter.java index 05a7782f7d..31d41899cd 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/AbstractMetricExporter.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/AbstractMetricExporter.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2012-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/MetricExporters.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/MetricExporters.java index 204c7e48a1..2a558514c4 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/MetricExporters.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/MetricExporters.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2012-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBeanCreationFailureAnalyzer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBeanCreationFailureAnalyzer.java index 37f6b17f74..ece5dd8f9f 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBeanCreationFailureAnalyzer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceBeanCreationFailureAnalyzer.java @@ -32,10 +32,9 @@ class DataSourceBeanCreationFailureAnalyzer @Override protected FailureAnalysis analyze(Throwable rootFailure, DataSourceBeanCreationException cause) { - String description = cause.getMessage() - .substring(0, cause.getMessage().indexOf(".")).trim(); - String action = cause.getMessage().substring(cause.getMessage().indexOf(".") + 1) - .trim(); + String message = cause.getMessage(); + String description = message.substring(0, message.indexOf(".")).trim(); + String action = message.substring(message.indexOf(".") + 1).trim(); return new FailureAnalysis(description, action, cause); }