This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git
commit 280ffaca103e43bf3dbef7fe11650fbd6b6daeb0 Author: Gary Gregory <[email protected]> AuthorDate: Sun Apr 2 23:18:58 2023 -0400 Move utility method --- .../commons/fileupload2/disk/DiskFileItem.java | 38 +++++++++++-- .../fileupload2/impl/FileItemStreamImpl.java | 4 +- .../apache/commons/fileupload2/util/Streams.java | 65 ---------------------- 3 files changed, 36 insertions(+), 71 deletions(-) diff --git a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java index 87e18c0..cf266ce 100644 --- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java +++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java @@ -34,8 +34,8 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.fileupload2.FileItem; import org.apache.commons.fileupload2.FileItemHeaders; import org.apache.commons.fileupload2.FileUploadException; +import org.apache.commons.fileupload2.InvalidFileNameException; import org.apache.commons.fileupload2.ParameterParser; -import org.apache.commons.fileupload2.util.Streams; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.DeferredFileOutputStream; @@ -69,8 +69,7 @@ import org.apache.commons.io.output.DeferredFileOutputStream; * * @since 1.1 */ -public class DiskFileItem - implements FileItem { +public class DiskFileItem implements FileItem { /** * Default content charset to be used when no explicit charset @@ -339,7 +338,7 @@ public class DiskFileItem */ @Override public String getName() { - return Streams.checkFileName(fileName); + return DiskFileItem.checkFileName(fileName); } /** @@ -607,4 +606,35 @@ public class DiskFileItem FileUtils.moveFile(outputFile, file); } } + + /** + * Checks, whether the given file name is valid in the sense, + * that it doesn't contain any NUL characters. If the file name + * is valid, it will be returned without any modifications. Otherwise, + * an {@link InvalidFileNameException} is raised. + * + * @param fileName The file name to check + * @return Unmodified file name, if valid. + * @throws InvalidFileNameException The file name was found to be invalid. + */ + public static String checkFileName(final String fileName) { + if (fileName != null && fileName.indexOf('\u0000') != -1) { + // pFileName.replace("\u0000", "\\0") + final StringBuilder sb = new StringBuilder(); + for (int i = 0; i < fileName.length(); i++) { + final char c = fileName.charAt(i); + switch (c) { + case 0: + sb.append("\\0"); + break; + default: + sb.append(c); + break; + } + } + throw new InvalidFileNameException(fileName, + "Invalid file name: " + sb); + } + return fileName; + } } diff --git a/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java b/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java index ce94b3f..6a49334 100644 --- a/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java +++ b/src/main/java/org/apache/commons/fileupload2/impl/FileItemStreamImpl.java @@ -26,9 +26,9 @@ import org.apache.commons.fileupload2.FileItemStream; import org.apache.commons.fileupload2.FileUploadException; import org.apache.commons.fileupload2.InvalidFileNameException; import org.apache.commons.fileupload2.MultipartStream.ItemInputStream; +import org.apache.commons.fileupload2.disk.DiskFileItem; import org.apache.commons.fileupload2.pub.FileUploadByteCountLimitException; import org.apache.commons.fileupload2.util.LimitedInputStream; -import org.apache.commons.fileupload2.util.Streams; /** * Default implementation of {@link FileItemStream}. @@ -166,7 +166,7 @@ public class FileItemStreamImpl implements FileItemStream { */ @Override public String getName() { - return Streams.checkFileName(fileName); + return DiskFileItem.checkFileName(fileName); } /** diff --git a/src/main/java/org/apache/commons/fileupload2/util/Streams.java b/src/main/java/org/apache/commons/fileupload2/util/Streams.java deleted file mode 100644 index e29a77c..0000000 --- a/src/main/java/org/apache/commons/fileupload2/util/Streams.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.fileupload2.util; - -import org.apache.commons.fileupload2.InvalidFileNameException; - -/** - * Utility class for working with streams. - */ -public final class Streams { - - /** - * Checks, whether the given file name is valid in the sense, - * that it doesn't contain any NUL characters. If the file name - * is valid, it will be returned without any modifications. Otherwise, - * an {@link InvalidFileNameException} is raised. - * - * @param fileName The file name to check - * @return Unmodified file name, if valid. - * @throws InvalidFileNameException The file name was found to be invalid. - */ - public static String checkFileName(final String fileName) { - if (fileName != null && fileName.indexOf('\u0000') != -1) { - // pFileName.replace("\u0000", "\\0") - final StringBuilder sb = new StringBuilder(); - for (int i = 0; i < fileName.length(); i++) { - final char c = fileName.charAt(i); - switch (c) { - case 0: - sb.append("\\0"); - break; - default: - sb.append(c); - break; - } - } - throw new InvalidFileNameException(fileName, - "Invalid file name: " + sb); - } - return fileName; - } - - /** - * Private constructor, to prevent instantiation. - * This class has only static methods. - */ - private Streams() { - // Does nothing - } - -}
