From 5b48eb30cc31b72c229edfbd3c770d1fbf951dfe Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 5 Jan 2026 12:15:11 -0800 Subject: [PATCH] Polish --- .../boot/jarmode/tools/ExtractCommand.java | 44 +++++++++---------- 1 file changed, 21 insertions(+), 23 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/ExtractCommand.java b/spring-boot-project/spring-boot-tools/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/ExtractCommand.java index 68ae5f7cc64..28603c142e4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/ExtractCommand.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-jarmode-tools/src/main/java/org/springframework/boot/jarmode/tools/ExtractCommand.java @@ -34,6 +34,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.function.Consumer; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; @@ -287,6 +288,26 @@ class ExtractCommand extends Command { } } + private static void mkdirs(File file) throws IOException { + if (!file.exists() && !file.mkdirs()) { + throw new IOException("Unable to create directory " + file); + } + } + + private static JarEntry createJarEntry(String location, JarEntry originalEntry) { + JarEntry entry = new JarEntry(location); + copyFileTime(getLastModifiedTime(originalEntry), entry::setLastModifiedTime); + copyFileTime(getLastAccessTime(originalEntry), entry::setLastAccessTime); + copyFileTime(getCreationTime(originalEntry), entry::setCreationTime); + return entry; + } + + private static void copyFileTime(FileTime fileTime, Consumer setter) { + if (fileTime != null) { + setter.accept(fileTime); + } + } + private static FileTime getCreationTime(JarEntry entry) { return (entry.getCreationTime() != null) ? entry.getCreationTime() : entry.getLastModifiedTime(); } @@ -299,29 +320,6 @@ class ExtractCommand extends Command { return (entry.getLastModifiedTime() != null) ? entry.getLastModifiedTime() : entry.getCreationTime(); } - private static void mkdirs(File file) throws IOException { - if (!file.exists() && !file.mkdirs()) { - throw new IOException("Unable to create directory " + file); - } - } - - private static JarEntry createJarEntry(String location, JarEntry originalEntry) { - JarEntry jarEntry = new JarEntry(location); - FileTime lastModifiedTime = getLastModifiedTime(originalEntry); - if (lastModifiedTime != null) { - jarEntry.setLastModifiedTime(lastModifiedTime); - } - FileTime lastAccessTime = getLastAccessTime(originalEntry); - if (lastAccessTime != null) { - jarEntry.setLastAccessTime(lastAccessTime); - } - FileTime creationTime = getCreationTime(originalEntry); - if (creationTime != null) { - jarEntry.setCreationTime(creationTime); - } - return jarEntry; - } - private static void withJarEntries(File file, ThrowingConsumer callback) throws IOException { try (JarFile jarFile = new JarFile(file)) { Enumeration entries = jarFile.entries();