Skip to content

Commit 31a2792

Browse files
committed
fix: simplify populateFromPath and blobId
1 parent 235142d commit 31a2792

1 file changed

Lines changed: 6 additions & 16 deletions

File tree

src/main/java/org/apache/commons/codec/digest/GitIdentifiers.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -359,12 +359,11 @@ public static byte[] blobId(final MessageDigest messageDigest, final long dataSi
359359
* @throws IOException On error accessing the file.
360360
*/
361361
public static byte[] blobId(final MessageDigest messageDigest, final Path data) throws IOException {
362-
messageDigest.reset();
363362
if (Files.isSymbolicLink(data)) {
364363
final byte[] linkTarget = Files.readSymbolicLink(data).toString().getBytes(StandardCharsets.UTF_8);
365-
DigestUtils.updateDigest(messageDigest, getGitBlobPrefix(linkTarget.length));
366-
return DigestUtils.digest(messageDigest, linkTarget);
364+
return blobId(messageDigest, linkTarget);
367365
}
366+
messageDigest.reset();
368367
DigestUtils.updateDigest(messageDigest, getGitBlobPrefix(Files.size(data)));
369368
return DigestUtils.updateDigest(messageDigest, data).digest();
370369
}
@@ -400,19 +399,10 @@ private static void populateFromPath(final TreeIdBuilder builder, final Path dir
400399
for (final Path path : files) {
401400
final String name = Objects.toString(path.getFileName());
402401
final FileMode mode = getGitDirectoryEntryType(path);
403-
switch (mode) {
404-
case DIRECTORY:
405-
populateFromPath(builder.addDirectory(name), path);
406-
break;
407-
case SYMBOLIC_LINK:
408-
final byte[] linkTarget = Files.readSymbolicLink(path).toString().getBytes(StandardCharsets.UTF_8);
409-
builder.addFile(FileMode.SYMBOLIC_LINK, name, linkTarget);
410-
break;
411-
default:
412-
try (InputStream is = Files.newInputStream(path)) {
413-
builder.addFile(mode, name, Files.size(path), is);
414-
}
415-
break;
402+
if (mode == FileMode.DIRECTORY) {
403+
populateFromPath(builder.addDirectory(name), path);
404+
} else {
405+
builder.addFile(mode, name, () -> blobId(builder.messageDigest, path));
416406
}
417407
}
418408
}

0 commit comments

Comments
 (0)