From bada4fd140c4a21511c0568a0cdbe8be2e307d3e Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 30 Oct 2021 18:21:06 +0100 Subject: [PATCH] Use a buffered digest where possible instead of reading the whole file contents into memory. --- src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java | 2 +- src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java index 0d342e8c..e44fbf8e 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataDiff.java @@ -350,7 +350,7 @@ public class ArbitraryDataDiff { private static byte[] digestFromPath(Path path) { try { - return Crypto.digest(Files.readAllBytes(path)); + return Crypto.digest(path.toFile()); } catch (IOException e) { return null; } diff --git a/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java b/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java index d997d446..8883da71 100644 --- a/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java +++ b/src/main/java/org/qortal/arbitrary/ArbitraryDataFile.java @@ -111,8 +111,7 @@ public class ArbitraryDataFile { File file = path.toFile(); if (file.exists()) { try { - byte[] fileContent = Files.readAllBytes(file.toPath()); - byte[] digest = Crypto.digest(fileContent); + byte[] digest = Crypto.digest(file); ArbitraryDataFile arbitraryDataFile = ArbitraryDataFile.fromHash(digest); // Copy file to data directory if needed @@ -502,8 +501,7 @@ public class ArbitraryDataFile { File file = this.getFile(); if (file != null && file.exists()) { try { - byte[] fileContent = Files.readAllBytes(file.toPath()); - return Crypto.digest(fileContent); + return Crypto.digest(file); } catch (IOException e) { LOGGER.error("Couldn't compute digest for ArbitraryDataFile");