@@ -134,7 +134,7 @@ void writeEntries(JarFile jarFile, EntryTransformer entryTransformer, UnpackHand
134
134
JarArchiveEntry entry = new JarArchiveEntry (entries .nextElement ());
135
135
setUpEntry (jarFile , entry );
136
136
try (ZipHeaderPeekInputStream inputStream = new ZipHeaderPeekInputStream (jarFile .getInputStream (entry ))) {
137
- EntryWriter entryWriter = new InputStreamEntryWriter (inputStream , true );
137
+ EntryWriter entryWriter = new InputStreamEntryWriter (inputStream );
138
138
JarArchiveEntry transformedEntry = entryTransformer .transform (entry );
139
139
if (transformedEntry != null ) {
140
140
writeEntry (transformedEntry , entryWriter , unpackHandler );
@@ -163,7 +163,12 @@ private void setUpEntry(JarFile jarFile, JarArchiveEntry entry) throws IOExcepti
163
163
@ Override
164
164
public void writeEntry (String entryName , InputStream inputStream ) throws IOException {
165
165
JarArchiveEntry entry = new JarArchiveEntry (entryName );
166
- writeEntry (entry , new InputStreamEntryWriter (inputStream , true ));
166
+ try {
167
+ writeEntry (entry , new InputStreamEntryWriter (inputStream ));
168
+ }
169
+ finally {
170
+ inputStream .close ();
171
+ }
167
172
}
168
173
169
174
/**
@@ -177,8 +182,9 @@ public void writeNestedLibrary(String destination, Library library) throws IOExc
177
182
JarArchiveEntry entry = new JarArchiveEntry (destination + library .getName ());
178
183
entry .setTime (getNestedLibraryTime (file ));
179
184
new CrcAndSize (file ).setupStoredEntry (entry );
180
- writeEntry (entry , new InputStreamEntryWriter (new FileInputStream (file ), true ),
181
- new LibraryUnpackHandler (library ));
185
+ try (FileInputStream input = new FileInputStream (file )) {
186
+ writeEntry (entry , new InputStreamEntryWriter (input ), new LibraryUnpackHandler (library ));
187
+ }
182
188
}
183
189
184
190
private long getNestedLibraryTime (File file ) {
@@ -221,7 +227,7 @@ public void writeLoaderClasses(String loaderJarResourceName) throws IOException
221
227
JarEntry entry ;
222
228
while ((entry = inputStream .getNextJarEntry ()) != null ) {
223
229
if (entry .getName ().endsWith (".class" )) {
224
- writeEntry (new JarArchiveEntry (entry ), new InputStreamEntryWriter (inputStream , false ));
230
+ writeEntry (new JarArchiveEntry (entry ), new InputStreamEntryWriter (inputStream ));
225
231
}
226
232
}
227
233
}
@@ -283,7 +289,7 @@ private EntryWriter addUnpackCommentIfNecessary(JarArchiveEntry entry, EntryWrit
283
289
ByteArrayOutputStream output = new ByteArrayOutputStream ();
284
290
entryWriter .write (output );
285
291
entry .setComment ("UNPACK:" + unpackHandler .sha1Hash (entry .getName ()));
286
- return new InputStreamEntryWriter (new ByteArrayInputStream (output .toByteArray ()), true );
292
+ return new InputStreamEntryWriter (new ByteArrayInputStream (output .toByteArray ()));
287
293
}
288
294
289
295
/**
@@ -307,11 +313,8 @@ private static class InputStreamEntryWriter implements EntryWriter {
307
313
308
314
private final InputStream inputStream ;
309
315
310
- private final boolean close ;
311
-
312
- InputStreamEntryWriter (InputStream inputStream , boolean close ) {
316
+ InputStreamEntryWriter (InputStream inputStream ) {
313
317
this .inputStream = inputStream ;
314
- this .close = close ;
315
318
}
316
319
317
320
@ Override
@@ -322,9 +325,6 @@ public void write(OutputStream outputStream) throws IOException {
322
325
outputStream .write (buffer , 0 , bytesRead );
323
326
}
324
327
outputStream .flush ();
325
- if (this .close ) {
326
- this .inputStream .close ();
327
- }
328
328
}
329
329
330
330
}
0 commit comments