From 41edd5faf4eb9797218130ee6fe479cffecd2480 Mon Sep 17 00:00:00 2001 From: Basil Crow Date: Thu, 8 Jun 2023 07:18:12 -0700 Subject: [PATCH] Remove usages of `IOUtils#toByteArray` (#8098) --- cli/src/main/java/hudson/cli/PlainCLIProtocol.java | 6 +++--- core/src/main/java/hudson/PluginManager.java | 2 +- .../main/java/hudson/model/FileParameterValue.java | 5 +---- core/src/main/java/hudson/model/Slave.java | 3 +-- core/src/main/java/hudson/util/ProcessTree.java | 12 ++---------- .../jenkins/security/DefaultConfidentialStore.java | 3 +-- .../hudson/model/DirectoryBrowserSupportTest.java | 4 ++-- 7 files changed, 11 insertions(+), 24 deletions(-) diff --git a/cli/src/main/java/hudson/cli/PlainCLIProtocol.java b/cli/src/main/java/hudson/cli/PlainCLIProtocol.java index 4f4fcfc49a..e49daa246f 100644 --- a/cli/src/main/java/hudson/cli/PlainCLIProtocol.java +++ b/cli/src/main/java/hudson/cli/PlainCLIProtocol.java @@ -277,7 +277,7 @@ class PlainCLIProtocol { onStart(); return true; case STDIN: - onStdin(IOUtils.toByteArray(dis)); + onStdin(dis.readAllBytes()); return true; case END_STDIN: onEndStdin(); @@ -327,10 +327,10 @@ class PlainCLIProtocol { onExit(dis.readInt()); return true; case STDOUT: - onStdout(IOUtils.toByteArray(dis)); + onStdout(dis.readAllBytes()); return true; case STDERR: - onStderr(IOUtils.toByteArray(dis)); + onStderr(dis.readAllBytes()); return true; default: return false; diff --git a/core/src/main/java/hudson/PluginManager.java b/core/src/main/java/hudson/PluginManager.java index 0ea2594fad..5d64485cfa 100644 --- a/core/src/main/java/hudson/PluginManager.java +++ b/core/src/main/java/hudson/PluginManager.java @@ -1135,7 +1135,7 @@ public abstract class PluginManager extends AbstractModelObject implements OnMas final JarEntry entry = entryName != null && jarFile != null ? jarFile.getJarEntry(entryName) : null; if (entry != null) { try (InputStream i = jarFile.getInputStream(entry)) { - byte[] manifestBytes = IOUtils.toByteArray(i); + byte[] manifestBytes = i.readAllBytes(); in = new ByteArrayInputStream(manifestBytes); } } else { diff --git a/core/src/main/java/hudson/model/FileParameterValue.java b/core/src/main/java/hudson/model/FileParameterValue.java index e11d31c891..e9e30e6346 100644 --- a/core/src/main/java/hudson/model/FileParameterValue.java +++ b/core/src/main/java/hudson/model/FileParameterValue.java @@ -46,7 +46,6 @@ import org.apache.commons.fileupload.FileItemHeaders; import org.apache.commons.fileupload.disk.DiskFileItem; import org.apache.commons.fileupload.util.FileItemHeadersImpl; import org.apache.commons.io.FilenameUtils; -import org.apache.commons.io.IOUtils; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.NoExternalUse; import org.kohsuke.stapler.DataBoundConstructor; @@ -288,9 +287,7 @@ public class FileParameterValue extends ParameterValue { @Override public byte[] get() { try { - try (InputStream inputStream = Files.newInputStream(file.toPath())) { - return IOUtils.toByteArray(inputStream); - } + return Files.readAllBytes(file.toPath()); } catch (IOException e) { throw new UncheckedIOException(e); } diff --git a/core/src/main/java/hudson/model/Slave.java b/core/src/main/java/hudson/model/Slave.java index d6727ad260..22eb63cd2f 100644 --- a/core/src/main/java/hudson/model/Slave.java +++ b/core/src/main/java/hudson/model/Slave.java @@ -71,7 +71,6 @@ import jenkins.model.Jenkins; import jenkins.security.MasterToSlaveCallable; import jenkins.slaves.WorkspaceLocator; import jenkins.util.SystemProperties; -import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.kohsuke.accmod.Restricted; import org.kohsuke.accmod.restrictions.DoNotUse; @@ -470,7 +469,7 @@ public abstract class Slave extends Node implements Serializable { public byte[] readFully() throws IOException { try (InputStream in = connect().getInputStream()) { - return IOUtils.toByteArray(in); + return in.readAllBytes(); } } diff --git a/core/src/main/java/hudson/util/ProcessTree.java b/core/src/main/java/hudson/util/ProcessTree.java index e9689bde2f..8f99573868 100644 --- a/core/src/main/java/hudson/util/ProcessTree.java +++ b/core/src/main/java/hudson/util/ProcessTree.java @@ -53,7 +53,6 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.IOException; -import java.io.InputStream; import java.io.ObjectStreamException; import java.io.RandomAccessFile; import java.io.Serializable; @@ -75,7 +74,6 @@ import java.util.logging.Logger; import jenkins.agents.AgentComputerUtil; import jenkins.security.SlaveToMasterCallable; import jenkins.util.SystemProperties; -import org.apache.commons.io.FileUtils; import org.jenkinsci.remoting.SerializableOnlyOverRemoting; import org.jvnet.winp.WinProcess; import org.jvnet.winp.WinpException; @@ -914,7 +912,7 @@ public abstract class ProcessTree implements Iterable, IProcessTree, return arguments; arguments = new ArrayList<>(); try { - byte[] cmdline = readFileToByteArray(getFile("cmdline")); + byte[] cmdline = Files.readAllBytes(Util.fileToPath(getFile("cmdline"))); int pos = 0; for (int i = 0; i < cmdline.length; i++) { byte b = cmdline[i]; @@ -938,7 +936,7 @@ public abstract class ProcessTree implements Iterable, IProcessTree, return envVars; envVars = new EnvVars(); try { - byte[] environ = readFileToByteArray(getFile("environ")); + byte[] environ = Files.readAllBytes(Util.fileToPath(getFile("environ"))); int pos = 0; for (int i = 0; i < environ.length; i++) { byte b = environ[i]; @@ -954,12 +952,6 @@ public abstract class ProcessTree implements Iterable, IProcessTree, return envVars; } } - - public byte[] readFileToByteArray(File file) throws IOException { - try (InputStream in = FileUtils.openInputStream(file)) { - return org.apache.commons.io.IOUtils.toByteArray(in); - } - } } /** diff --git a/core/src/main/java/jenkins/security/DefaultConfidentialStore.java b/core/src/main/java/jenkins/security/DefaultConfidentialStore.java index aff89bc1e4..9c97c9ae3b 100644 --- a/core/src/main/java/jenkins/security/DefaultConfidentialStore.java +++ b/core/src/main/java/jenkins/security/DefaultConfidentialStore.java @@ -19,7 +19,6 @@ import javax.crypto.CipherInputStream; import javax.crypto.CipherOutputStream; import javax.crypto.SecretKey; import jenkins.model.Jenkins; -import org.apache.commons.io.IOUtils; /** * Default portable implementation of {@link ConfidentialStore} that uses @@ -104,7 +103,7 @@ public class DefaultConfidentialStore extends ConfidentialStore { sym.init(Cipher.DECRYPT_MODE, masterKey); try (InputStream fis = Files.newInputStream(f.toPath()); CipherInputStream cis = new CipherInputStream(fis, sym)) { - byte[] bytes = IOUtils.toByteArray(cis); + byte[] bytes = cis.readAllBytes(); return verifyMagic(bytes); } } catch (GeneralSecurityException e) { diff --git a/test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java b/test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java index f9a381c95d..7b1bbdb7c9 100644 --- a/test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java +++ b/test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java @@ -405,7 +405,7 @@ public class DirectoryBrowserSupportTest { Map.Entry entry = artifacts.entrySet().iterator().next(); assertEquals("f", entry.getKey()); try (InputStream is = workspace.child(entry.getValue()).read()) { - byte[] data = IOUtils.toByteArray(is); + byte[] data = is.readAllBytes(); ExtensionList.lookupSingleton(ContentAddressableStore.class).files.add(data); hash = Util.getDigestOf(new ByteArrayInputStream(data)); } @@ -1378,7 +1378,7 @@ public class DirectoryBrowserSupportTest { Map.Entry entry = artifacts.entrySet().iterator().next(); assertEquals("f", entry.getKey()); try (InputStream is = workspace.child(entry.getValue()).read()) { - byte[] data = IOUtils.toByteArray(is); + byte[] data = is.readAllBytes(); ExtensionList.lookupSingleton(ContentAddressableStore.class).files.add(data); hash = Util.getDigestOf(new ByteArrayInputStream(data)); }