You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/12/16 22:02:34 UTC
[commons-vfs] branch master updated: Reuse zero size arrays.
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-vfs.git
The following commit(s) were added to refs/heads/master by this push:
new 90ed1e9 Reuse zero size arrays.
90ed1e9 is described below
commit 90ed1e9b7f8cdf062e1dc8852834e81f336220c2
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Wed Dec 16 17:02:28 2020 -0500
Reuse zero size arrays.
---
.../vfs2/provider/webdav/WebdavFileObject.java | 7 +++-
.../vfs2/provider/webdav4/Webdav4FileObject.java | 7 +++-
.../apache/commons/vfs2/FileSystemException.java | 3 +-
.../commons/vfs2/filter/WildcardFileFilter.java | 3 +-
.../vfs2/impl/StandardFileSystemManager.java | 7 ++--
.../apache/commons/vfs2/impl/VFSClassLoader.java | 3 +-
.../operations/AbstractFileOperationProvider.java | 1 -
.../commons/vfs2/provider/AbstractFileObject.java | 6 ++--
.../commons/vfs2/provider/AbstractFileSystem.java | 4 ++-
.../commons/vfs2/provider/DefaultFileContent.java | 6 ++--
.../commons/vfs2/provider/DelegateFileObject.java | 3 +-
.../commons/vfs2/provider/ftp/FtpFileObject.java | 1 -
.../commons/vfs2/provider/ram/RamFileSystem.java | 1 -
.../commons/vfs2/provider/sftp/SftpFileObject.java | 2 +-
.../commons/vfs2/provider/tar/TarFileObject.java | 3 +-
.../commons/vfs2/provider/zip/ZipFileObject.java | 3 +-
.../vfs2/util/{OsFamily.java => ArrayUtils.java} | 37 +++++-----------------
.../util/DelegatingFileSystemOptionsBuilder.java | 1 -
.../apache/commons/vfs2/util/FileObjectUtils.java | 7 ++++
.../org/apache/commons/vfs2/util/Messages.java | 3 +-
.../main/java/org/apache/commons/vfs2/util/Os.java | 2 +-
.../org/apache/commons/vfs2/util/OsFamily.java | 3 +-
src/changes/changes.xml | 3 ++
23 files changed, 62 insertions(+), 54 deletions(-)
diff --git a/commons-vfs2-jackrabbit1/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java b/commons-vfs2-jackrabbit1/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
index 21fd6da..ba2d005 100644
--- a/commons-vfs2-jackrabbit1/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
+++ b/commons-vfs2-jackrabbit1/src/main/java/org/apache/commons/vfs2/provider/webdav/WebdavFileObject.java
@@ -78,6 +78,11 @@ import org.w3c.dom.Node;
* @since 2.0
*/
public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
+
+ /**
+ * An empty immutable {@code WebdavFileObject} array.
+ */
+ private static WebdavFileObject[] EMPTY_ARRAY = new WebdavFileObject[0];
/**
* An OutputStream that writes to a Webdav resource.
@@ -394,7 +399,7 @@ public class WebdavFileObject extends HttpFileObject<WebdavFileSystem> {
}
}
}
- return vfs.toArray(new WebdavFileObject[0]);
+ return vfs.toArray(EMPTY_ARRAY);
}
throw new FileNotFolderException(getName());
} catch (final FileNotFolderException fnfe) {
diff --git a/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
index 85a7682..a4b5af8 100644
--- a/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
+++ b/commons-vfs2-jackrabbit2/src/main/java/org/apache/commons/vfs2/provider/webdav4/Webdav4FileObject.java
@@ -80,6 +80,11 @@ import org.w3c.dom.Node;
public class Webdav4FileObject extends Http4FileObject<Webdav4FileSystem> {
/**
+ * An empty immutable {@code Webdav4FileObject} array.
+ */
+ private static Webdav4FileObject[] EMPTY_ARRAY = new Webdav4FileObject[0];
+
+ /**
* An OutputStream that writes to a Webdav resource.
* <p>
* TODO - Use piped stream to avoid temporary file.
@@ -394,7 +399,7 @@ public class Webdav4FileObject extends Http4FileObject<Webdav4FileSystem> {
}
}
}
- return vfs.toArray(new Webdav4FileObject[0]);
+ return vfs.toArray(EMPTY_ARRAY);
}
throw new FileNotFolderException(getName());
} catch (final FileNotFolderException fnfe) {
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemException.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemException.java
index 5c90c53..b64cb5e 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemException.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/FileSystemException.java
@@ -20,6 +20,7 @@ import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.commons.vfs2.util.ArrayUtils;
import org.apache.commons.vfs2.util.Messages;
/**
@@ -163,7 +164,7 @@ public class FileSystemException extends IOException {
super(code, throwable);
if (info == null) {
- this.info = new String[0];
+ this.info = ArrayUtils.EMPTY_STRING_ARRAY;
} else {
this.info = new String[info.length];
for (int i = 0; i < info.length; i++) {
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/WildcardFileFilter.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/WildcardFileFilter.java
index e3ebe52..8c58c0d 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/WildcardFileFilter.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/filter/WildcardFileFilter.java
@@ -24,6 +24,7 @@ import java.util.Stack;
import org.apache.commons.vfs2.FileFilter;
import org.apache.commons.vfs2.FileSelectInfo;
+import org.apache.commons.vfs2.util.ArrayUtils;
/**
* Filters files using the supplied wildcards.
@@ -196,7 +197,7 @@ public class WildcardFileFilter implements FileFilter, Serializable {
list.add(buffer.toString());
}
- return list.toArray(new String[0]);
+ return list.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
// CHECKSTYLE:ON
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
index ee21423..25a7c0e 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/StandardFileSystemManager.java
@@ -32,6 +32,7 @@ import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.VfsLog;
import org.apache.commons.vfs2.operations.FileOperationProvider;
import org.apache.commons.vfs2.provider.FileProvider;
+import org.apache.commons.vfs2.util.ArrayUtils;
import org.apache.commons.vfs2.util.Messages;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -369,7 +370,7 @@ public class StandardFileSystemManager extends DefaultFileSystemManager {
classes.add(className);
}
}
- return classes.toArray(new String[0]);
+ return classes.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
@@ -386,7 +387,7 @@ public class StandardFileSystemManager extends DefaultFileSystemManager {
schemes.add(scheme);
}
}
- return schemes.toArray(new String[0]);
+ return schemes.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
@@ -400,7 +401,7 @@ public class StandardFileSystemManager extends DefaultFileSystemManager {
final Element scheme = (Element) schemaElements.item(i);
schemas.add(scheme.getAttribute("name"));
}
- return schemas.toArray(new String[0]);
+ return schemas.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
private ClassLoader getValidClassLoader(final Class<?> clazz) {
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/VFSClassLoader.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/VFSClassLoader.java
index 970d661..58a78ea 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/VFSClassLoader.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/impl/VFSClassLoader.java
@@ -27,7 +27,6 @@ import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
-import java.util.Iterator;
import java.util.List;
import java.util.jar.Attributes;
import java.util.jar.Attributes.Name;
@@ -110,7 +109,7 @@ public class VFSClassLoader extends SecureClassLoader {
* @since 2.0
*/
public FileObject[] getFileObjects() {
- return resources.toArray(new FileObject[0]);
+ return resources.toArray(FileObjectUtils.EMPTY_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/operations/AbstractFileOperationProvider.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/operations/AbstractFileOperationProvider.java
index 624ebcc..53a142f 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/operations/AbstractFileOperationProvider.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/operations/AbstractFileOperationProvider.java
@@ -18,7 +18,6 @@ package org.apache.commons.vfs2.operations;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Iterator;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java
index f252dc3..b47978a 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileObject.java
@@ -66,6 +66,8 @@ import org.apache.commons.vfs2.util.RandomAccessMode;
*/
public abstract class AbstractFileObject<AFS extends AbstractFileSystem> implements FileObject {
+ private static final FileName[] EMPTY_FILE_NAME_ARRAY = new FileName[0];
+
private static final String DO_GET_INPUT_STREAM_INT = "doGetInputStream(int)";
/**
@@ -205,7 +207,7 @@ public abstract class AbstractFileObject<AFS extends AbstractFileSystem> impleme
} else {
list.add(childName);
}
- children = list.toArray(new FileName[0]);
+ children = list.toArray(EMPTY_FILE_NAME_ARRAY);
}
// removeChildrenCache();
@@ -990,7 +992,7 @@ public abstract class AbstractFileObject<AFS extends AbstractFileSystem> impleme
@Override
public FileObject[] findFiles(final FileSelector selector) throws FileSystemException {
final List<FileObject> list = this.listFiles(selector);
- return list == null ? null : list.toArray(new FileObject[0]);
+ return list == null ? null : list.toArray(FileObjectUtils.EMPTY_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java
index dee6244..f3095bc 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileSystem.java
@@ -55,6 +55,8 @@ import org.apache.commons.vfs2.util.Messages;
*/
public abstract class AbstractFileSystem extends AbstractVfsComponent implements FileSystem {
+ private static final FileListener[] EMPTY_FILE_LISTENER_ARRAY = new FileListener[0];
+
private static final Log LOG = LogFactory.getLog(AbstractFileSystem.class);
/**
@@ -539,7 +541,7 @@ public abstract class AbstractFileSystem extends AbstractVfsComponent implements
synchronized (listenerMap) {
final ArrayList<?> listeners = listenerMap.get(fileObject.getName());
if (listeners != null) {
- fileListeners = listeners.toArray(new FileListener[0]);
+ fileListeners = listeners.toArray(EMPTY_FILE_LISTENER_ARRAY);
}
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DefaultFileContent.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DefaultFileContent.java
index e659ed0..397bc55 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DefaultFileContent.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DefaultFileContent.java
@@ -31,6 +31,7 @@ import org.apache.commons.vfs2.FileContentInfoFactory;
import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.RandomAccessContent;
+import org.apache.commons.vfs2.util.ArrayUtils;
import org.apache.commons.vfs2.util.MonitorInputStream;
import org.apache.commons.vfs2.util.MonitorOutputStream;
import org.apache.commons.vfs2.util.MonitorRandomAccessContent;
@@ -47,6 +48,7 @@ public final class DefaultFileContent implements FileContent {
* final int STATE_RANDOM_ACCESS = 3;
*/
+ private static final Certificate[] EMPTY_CERTIFICATE_ARRAY = new Certificate[0];
static final int STATE_CLOSED = 0;
static final int STATE_OPENED = 1;
@@ -244,7 +246,7 @@ public final class DefaultFileContent implements FileContent {
public String[] getAttributeNames() throws FileSystemException {
getAttributes();
final Set<String> names = attrs.keySet();
- return names.toArray(new String[0]);
+ return names.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
@@ -328,7 +330,7 @@ public final class DefaultFileContent implements FileContent {
if (certs != null) {
return certs;
}
- return new Certificate[0];
+ return EMPTY_CERTIFICATE_ARRAY;
} catch (final Exception e) {
throw new FileSystemException("vfs.provider/get-certificates.error", fileObject, e);
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DelegateFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DelegateFileObject.java
index 3a5afd0..2275164 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DelegateFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/DelegateFileObject.java
@@ -33,6 +33,7 @@ import org.apache.commons.vfs2.FileObject;
import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.RandomAccessContent;
+import org.apache.commons.vfs2.util.ArrayUtils;
import org.apache.commons.vfs2.util.RandomAccessMode;
import org.apache.commons.vfs2.util.WeakRefFileListener;
@@ -191,7 +192,7 @@ public class DelegateFileObject<AFS extends AbstractFileSystem> extends Abstract
return Arrays.stream(children).map(child -> child.getName().getBaseName()).toArray(String[]::new);
}
- return children.toArray(new String[0]);
+ return children.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileObject.java
index 3b70d72..d159d63 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileObject.java
@@ -22,7 +22,6 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileSystem.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileSystem.java
index fda182b..8011e33 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileSystem.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/ram/RamFileSystem.java
@@ -25,7 +25,6 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.commons.vfs2.Capability;
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileObject.java
index 6032dc4..593cc82 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/sftp/SftpFileObject.java
@@ -378,7 +378,7 @@ public class SftpFileObject extends AbstractFileObject<SftpFileSystem> {
children.add(fo);
}
- return children.toArray(new FileObject[0]);
+ return children.toArray(FileObjectUtils.EMPTY_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileObject.java
index 56de37f..65ecb72 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/tar/TarFileObject.java
@@ -25,6 +25,7 @@ import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.provider.AbstractFileName;
import org.apache.commons.vfs2.provider.AbstractFileObject;
+import org.apache.commons.vfs2.util.ArrayUtils;
/**
* A file in a Tar file system.
@@ -108,7 +109,7 @@ public class TarFileObject extends AbstractFileObject<TarFileSystem> {
throw new RuntimeException(e);
}
- return children.toArray(new String[0]);
+ return children.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/zip/ZipFileObject.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/zip/ZipFileObject.java
index 1b90306..935faf3 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/zip/ZipFileObject.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/zip/ZipFileObject.java
@@ -25,6 +25,7 @@ import org.apache.commons.vfs2.FileSystemException;
import org.apache.commons.vfs2.FileType;
import org.apache.commons.vfs2.provider.AbstractFileName;
import org.apache.commons.vfs2.provider.AbstractFileObject;
+import org.apache.commons.vfs2.util.ArrayUtils;
/**
* A file in a ZIP file system.
@@ -110,7 +111,7 @@ public class ZipFileObject extends AbstractFileObject<ZipFileSystem> {
throw new RuntimeException(e);
}
- return children.toArray(new String[0]);
+ return children.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/ArrayUtils.java
similarity index 53%
copy from commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java
copy to commons-vfs2/src/main/java/org/apache/commons/vfs2/util/ArrayUtils.java
index 553aef7..fc7faf2 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/ArrayUtils.java
@@ -14,41 +14,20 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.commons.vfs2.util;
/**
- * An enumerated type, which represents an OS family.
+ * Array utilities.
+ *
+ * See Apache Commons Lang.
+ * @since 2.9.0
*/
-public final class OsFamily {
-
- private final String name;
- private final OsFamily[] families;
-
- OsFamily(final String name) {
- this.name = name;
- families = new OsFamily[0];
- }
-
- OsFamily(final String name, final OsFamily[] families) {
- this.name = name;
- this.families = families;
- }
+public class ArrayUtils {
/**
- * Returns the name of this family.
- *
- * @return The name of this family.
+ * An empty immutable {@code String} array.
*/
- public String getName() {
- return name;
- }
+ public static final String[] EMPTY_STRING_ARRAY = new String[0];
- /**
- * Returns the OS families that this family belongs to.
- *
- * @return an array of OSFamily objects that this family belongs to.
- */
- public OsFamily[] getFamilies() {
- return families;
- }
}
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
index ac7bb6f..c31adf0 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/DelegatingFileSystemOptionsBuilder.java
@@ -22,7 +22,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/FileObjectUtils.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/FileObjectUtils.java
index 9ab8f28..38234f1 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/FileObjectUtils.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/FileObjectUtils.java
@@ -34,6 +34,13 @@ import org.apache.commons.vfs2.provider.AbstractFileObject;
public final class FileObjectUtils {
/**
+ * An empty immutable {@code FileObject} array.
+ *
+ * @since 2.9.0
+ */
+ public static FileObject[] EMPTY_ARRAY = new FileObject[0];
+
+ /**
* Null-safe call to {@link FileObject#exists()}.
*
* @param fileObject the file object to test, may be null.
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Messages.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Messages.java
index 1289cf5..f6c1a46 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Messages.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Messages.java
@@ -27,6 +27,7 @@ import java.util.concurrent.ConcurrentMap;
*/
public final class Messages {
+ private static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
/**
* Map from message code to MessageFormat object for the message.
*/
@@ -43,7 +44,7 @@ public final class Messages {
* @return The formatted message.
*/
public static String getString(final String code) {
- return getString(code, new Object[0]);
+ return getString(code, EMPTY_OBJECT_ARRAY);
}
/**
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Os.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Os.java
index be34ae9..fa4d749 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Os.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/Os.java
@@ -246,7 +246,7 @@ public final class Os {
Collections.addAll(queue, families);
}
}
- return allFamilies.toArray(new OsFamily[0]);
+ return allFamilies.toArray(OsFamily.EMPTY_OS_FAMILY_ARRAY);
}
private static OsFamily determineOsFamily() {
diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java
index 553aef7..00b78fd 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/util/OsFamily.java
@@ -23,10 +23,11 @@ public final class OsFamily {
private final String name;
private final OsFamily[] families;
+ static final OsFamily[] EMPTY_OS_FAMILY_ARRAY = new OsFamily[0];
OsFamily(final String name) {
this.name = name;
- families = new OsFamily[0];
+ families = EMPTY_OS_FAMILY_ARRAY;
}
OsFamily(final String name, final OsFamily[] families) {
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 7435f1c..2ba8968 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -89,6 +89,9 @@ The <action> type attribute can be add,update,fix,remove.
<action dev="ggregory" due-to="Gary Gregory" type="update">
Update org.apache.httpcomponents:httpcore-nio 4.4.13 -> 4.4.14.
</action>
+ <action dev="ggregory" due-to="PeterAlfredLee, Gary Gregory" type="update">
+ Modify some calls of method Collection.toArray #145.
+ </action>
</release>
<release version="2.7.0" date="2020-10-26" description="Maintenance release. Requires Java 8.">
<action issue="VFS-753" dev="ggregory" due-to="John Webb, Gary Gregory" type="fix">