Skip to content

Commit c73e2d2

Browse files
committed
simplified calculating hash
1 parent 76a4f7f commit c73e2d2

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/main/java/cz/sparko/boxitory/service/filesystem/FilesystemDigestHashService.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.io.IOException;
1212
import java.io.InputStream;
1313
import java.nio.file.Files;
14+
import java.security.DigestInputStream;
1415
import java.security.MessageDigest;
1516
import java.util.Objects;
1617

@@ -86,20 +87,16 @@ public String getChecksum(String box) {
8687

8788
private String calculateHash(String box) {
8889
LOG.debug("calculating [{}] hash for box [{}]", hashAlgorithm.name(), box);
89-
try (InputStream boxDataStream = Files.newInputStream(new File(box).toPath())) {
90+
try (InputStream boxDataStream = Files.newInputStream(new File(box).toPath());
91+
InputStream digestInputStream = new DigestInputStream(boxDataStream, messageDigest)) {
9092
LOG.trace("buffering box data (buffer size [{}]b) ...", streamBufferLength);
9193
final byte[] buffer = new byte[streamBufferLength];
92-
int read = boxDataStream.read(buffer, 0, streamBufferLength);
93-
94-
while (read > -1) {
95-
messageDigest.update(buffer, 0, read);
96-
read = boxDataStream.read(buffer, 0, streamBufferLength);
97-
}
94+
//noinspection StatementWithEmptyBody
95+
while (digestInputStream.read(buffer) > 0) ;
9896
} catch (IOException e) {
9997
LOG.error("Error during processing file [{}], message: [{}]", box, e.getMessage());
10098
throw new RuntimeException(
101-
"Error while getting checksum for file " + box + " reason: " + e.getMessage(), e
102-
);
99+
"Error while getting checksum for file " + box + " reason: " + e.getMessage(), e);
103100
}
104101

105102
return getHash(messageDigest.digest());

0 commit comments

Comments
 (0)