parent
0b22eb90b5
commit
5a4238acfc
|
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package org.springframework.boot.devtools.autoconfigure;
|
package org.springframework.boot.devtools.autoconfigure;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.Statement;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -97,7 +99,11 @@ public class DevToolsDataSourceAutoConfiguration {
|
||||||
@Override
|
@Override
|
||||||
public void destroy() throws Exception {
|
public void destroy() throws Exception {
|
||||||
if (dataSourceRequiresShutdown()) {
|
if (dataSourceRequiresShutdown()) {
|
||||||
this.dataSource.getConnection().createStatement().execute("SHUTDOWN");
|
try (Connection connection = this.dataSource.getConnection()) {
|
||||||
|
try (Statement statement = connection.createStatement()) {
|
||||||
|
statement.execute("SHUTDOWN");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -215,16 +215,16 @@ public class JarWriter implements LoaderClassesWriter, AutoCloseable {
|
||||||
@Override
|
@Override
|
||||||
public void writeLoaderClasses(String loaderJarResourceName) throws IOException {
|
public void writeLoaderClasses(String loaderJarResourceName) throws IOException {
|
||||||
URL loaderJar = getClass().getClassLoader().getResource(loaderJarResourceName);
|
URL loaderJar = getClass().getClassLoader().getResource(loaderJarResourceName);
|
||||||
JarInputStream inputStream = new JarInputStream(
|
try (JarInputStream inputStream = new JarInputStream(
|
||||||
new BufferedInputStream(loaderJar.openStream()));
|
new BufferedInputStream(loaderJar.openStream()))) {
|
||||||
JarEntry entry;
|
JarEntry entry;
|
||||||
while ((entry = inputStream.getNextJarEntry()) != null) {
|
while ((entry = inputStream.getNextJarEntry()) != null) {
|
||||||
if (entry.getName().endsWith(".class")) {
|
if (entry.getName().endsWith(".class")) {
|
||||||
writeEntry(new JarArchiveEntry(entry),
|
writeEntry(new JarArchiveEntry(entry),
|
||||||
new InputStreamEntryWriter(inputStream, false));
|
new InputStreamEntryWriter(inputStream, false));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inputStream.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,9 @@ public class JarFile extends java.util.jar.JarFile {
|
||||||
Manifest manifest = (this.manifest == null ? null : this.manifest.get());
|
Manifest manifest = (this.manifest == null ? null : this.manifest.get());
|
||||||
if (manifest == null) {
|
if (manifest == null) {
|
||||||
if (this.type == JarFileType.NESTED_DIRECTORY) {
|
if (this.type == JarFileType.NESTED_DIRECTORY) {
|
||||||
manifest = new JarFile(this.getRootJarFile()).getManifest();
|
try (JarFile rootJarFile = new JarFile(this.getRootJarFile())) {
|
||||||
|
manifest = rootJarFile.getManifest();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
try (InputStream inputStream = getInputStream(MANIFEST_NAME,
|
try (InputStream inputStream = getInputStream(MANIFEST_NAME,
|
||||||
|
|
|
||||||
|
|
@ -127,8 +127,9 @@ public class RunMojo extends AbstractRunMojo {
|
||||||
private boolean checkForDevtools() {
|
private boolean checkForDevtools() {
|
||||||
try {
|
try {
|
||||||
URL[] urls = getClassPathUrls();
|
URL[] urls = getClassPathUrls();
|
||||||
URLClassLoader classLoader = new URLClassLoader(urls);
|
try (URLClassLoader classLoader = new URLClassLoader(urls)) {
|
||||||
return (classLoader.findResource(RESTARTER_CLASS_LOCATION) != null);
|
return (classLoader.findResource(RESTARTER_CLASS_LOCATION) != null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue