diff --git a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/ClasspathUtils.java b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/ClasspathUtils.java index 30cd4104029..9b3f42adae2 100644 --- a/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/ClasspathUtils.java +++ b/dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/ClasspathUtils.java @@ -2,13 +2,14 @@ import static datadog.trace.util.Strings.getResourceName; +import java.io.BufferedOutputStream; import java.io.ByteArrayOutputStream; import java.io.File; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Method; import java.net.URL; +import java.nio.file.Files; import java.util.UUID; import java.util.jar.JarEntry; import java.util.jar.JarOutputStream; @@ -28,14 +29,9 @@ public static byte[] convertToByteArray(final InputStream resource) throws IOExc } public static byte[] convertToByteArray(final Class clazz) throws IOException { - InputStream inputStream = null; - try { - inputStream = clazz.getClassLoader().getResourceAsStream(getResourceName(clazz.getName())); + try (InputStream inputStream = + clazz.getClassLoader().getResourceAsStream(getResourceName(clazz.getName()))) { return convertToByteArray(inputStream); - } finally { - if (inputStream != null) { - inputStream.close(); - } } } @@ -56,7 +52,8 @@ public static URL createJarWithClasses(final ClassLoader loader, final String... final Manifest manifest = new Manifest(); try (final JarOutputStream target = - new JarOutputStream(new FileOutputStream(tmpJar), manifest)) { + new JarOutputStream( + new BufferedOutputStream(Files.newOutputStream(tmpJar.toPath())), manifest)) { for (final String resourceName : resourceNames) { try (InputStream is = loader.getResourceAsStream(resourceName)) { if (is != null) { @@ -79,11 +76,13 @@ public static URL createJarWithClasses(final ClassLoader loader, final String... * @throws IOException */ public static URL createJarWithClasses(final Class... classes) throws IOException { - final File tmpJar = File.createTempFile(UUID.randomUUID().toString() + "", ".jar"); + final File tmpJar = File.createTempFile(UUID.randomUUID().toString(), ".jar"); tmpJar.deleteOnExit(); final Manifest manifest = new Manifest(); - final JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest); + final JarOutputStream target = + new JarOutputStream( + new BufferedOutputStream(Files.newOutputStream(tmpJar.toPath())), manifest); for (final Class clazz : classes) { addToJar(getResourceName(clazz.getName()), convertToByteArray(clazz), target); } @@ -92,11 +91,6 @@ public static URL createJarWithClasses(final Class... classes) throws IOExcep return tmpJar.toURI().toURL(); } - public static URL createJarWithClasses() { - - return null; - } - private static void addToJar( final String resourceName, final byte[] bytes, final JarOutputStream jarOutputStream) throws IOException {