Skip to content

Commit dc98fb9

Browse files
authored
Makes writing the test jar buffered (#9561)
1 parent f44ec39 commit dc98fb9

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/utils/ClasspathUtils.java

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
import static datadog.trace.util.Strings.getResourceName;
44

5+
import java.io.BufferedOutputStream;
56
import java.io.ByteArrayOutputStream;
67
import java.io.File;
7-
import java.io.FileOutputStream;
88
import java.io.IOException;
99
import java.io.InputStream;
1010
import java.lang.reflect.Method;
1111
import java.net.URL;
12+
import java.nio.file.Files;
1213
import java.util.UUID;
1314
import java.util.jar.JarEntry;
1415
import java.util.jar.JarOutputStream;
@@ -28,14 +29,9 @@ public static byte[] convertToByteArray(final InputStream resource) throws IOExc
2829
}
2930

3031
public static byte[] convertToByteArray(final Class<?> clazz) throws IOException {
31-
InputStream inputStream = null;
32-
try {
33-
inputStream = clazz.getClassLoader().getResourceAsStream(getResourceName(clazz.getName()));
32+
try (InputStream inputStream =
33+
clazz.getClassLoader().getResourceAsStream(getResourceName(clazz.getName()))) {
3434
return convertToByteArray(inputStream);
35-
} finally {
36-
if (inputStream != null) {
37-
inputStream.close();
38-
}
3935
}
4036
}
4137

@@ -56,7 +52,8 @@ public static URL createJarWithClasses(final ClassLoader loader, final String...
5652

5753
final Manifest manifest = new Manifest();
5854
try (final JarOutputStream target =
59-
new JarOutputStream(new FileOutputStream(tmpJar), manifest)) {
55+
new JarOutputStream(
56+
new BufferedOutputStream(Files.newOutputStream(tmpJar.toPath())), manifest)) {
6057
for (final String resourceName : resourceNames) {
6158
try (InputStream is = loader.getResourceAsStream(resourceName)) {
6259
if (is != null) {
@@ -79,11 +76,13 @@ public static URL createJarWithClasses(final ClassLoader loader, final String...
7976
* @throws IOException
8077
*/
8178
public static URL createJarWithClasses(final Class<?>... classes) throws IOException {
82-
final File tmpJar = File.createTempFile(UUID.randomUUID().toString() + "", ".jar");
79+
final File tmpJar = File.createTempFile(UUID.randomUUID().toString(), ".jar");
8380
tmpJar.deleteOnExit();
8481

8582
final Manifest manifest = new Manifest();
86-
final JarOutputStream target = new JarOutputStream(new FileOutputStream(tmpJar), manifest);
83+
final JarOutputStream target =
84+
new JarOutputStream(
85+
new BufferedOutputStream(Files.newOutputStream(tmpJar.toPath())), manifest);
8786
for (final Class<?> clazz : classes) {
8887
addToJar(getResourceName(clazz.getName()), convertToByteArray(clazz), target);
8988
}
@@ -92,11 +91,6 @@ public static URL createJarWithClasses(final Class<?>... classes) throws IOExcep
9291
return tmpJar.toURI().toURL();
9392
}
9493

95-
public static URL createJarWithClasses() {
96-
97-
return null;
98-
}
99-
10094
private static void addToJar(
10195
final String resourceName, final byte[] bytes, final JarOutputStream jarOutputStream)
10296
throws IOException {

0 commit comments

Comments
 (0)