Close file input stream after reading image file (#527)

pull/528/head
John Niang 2020-01-31 00:37:45 +08:00 committed by GitHub
parent d47f0f29e6
commit 6b0804a7b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -19,6 +19,7 @@ import run.halo.app.utils.ImageUtils;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
@ -142,14 +143,14 @@ public class LocalFileHandler implements FileHandler {
// Check file type // Check file type
if (FileHandler.isImageType(uploadResult.getMediaType()) && !isSvg) { if (FileHandler.isImageType(uploadResult.getMediaType()) && !isSvg) {
lock.lock(); lock.lock();
try { try (InputStream uploadFileInputStream = new FileInputStream(uploadPath.toFile())) {
// Upload a thumbnail // Upload a thumbnail
String thumbnailBasename = basename + THUMBNAIL_SUFFIX; String thumbnailBasename = basename + THUMBNAIL_SUFFIX;
String thumbnailSubFilePath = subDir + thumbnailBasename + '.' + extension; String thumbnailSubFilePath = subDir + thumbnailBasename + '.' + extension;
Path thumbnailPath = Paths.get(workDir + thumbnailSubFilePath); Path thumbnailPath = Paths.get(workDir + thumbnailSubFilePath);
// Read as image // Read as image
BufferedImage originalImage = ImageUtils.getImageFromFile(new FileInputStream(uploadPath.toFile()), extension); BufferedImage originalImage = ImageUtils.getImageFromFile(uploadFileInputStream, extension);
// Set width and height // Set width and height
uploadResult.setWidth(originalImage.getWidth()); uploadResult.setWidth(originalImage.getWidth());
uploadResult.setHeight(originalImage.getHeight()); uploadResult.setHeight(originalImage.getHeight());
@ -232,7 +233,7 @@ public class LocalFileHandler implements FileHandler {
log.debug("Generated thumbnail image, and wrote the thumbnail to [{}]", thumbPath.toString()); log.debug("Generated thumbnail image, and wrote the thumbnail to [{}]", thumbPath.toString());
result = true; result = true;
} catch (Throwable t) { } catch (Throwable t) {
log.warn("Failed to generate thumbnail: [{}]", thumbPath); log.warn("Failed to generate thumbnail: " + thumbPath, t);
} }
return result; return result;
} }