[jboss-cvs] JBossAS SVN: r91901 - projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jul 31 18:15:44 EDT 2009


Author: david.lloyd at jboss.com
Date: 2009-07-31 18:15:44 -0400 (Fri, 31 Jul 2009)
New Revision: 91901

Modified:
   projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/FileSystem.java
   projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JZipFileSystem.java
   projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JavaZipFileSystem.java
   projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/RealFileSystem.java
Log:
Fix NPE in getDirectoryEntries

Modified: projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/FileSystem.java
===================================================================
--- projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/FileSystem.java	2009-07-31 21:46:58 UTC (rev 91900)
+++ projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/FileSystem.java	2009-07-31 22:15:44 UTC (rev 91901)
@@ -121,7 +121,8 @@
    boolean isDirectory(VirtualFile mountPoint, VirtualFile target) throws IOException;
 
    /**
-    * Read a directory.  Returns all the simple path names (excluding "." and "..").
+    * Read a directory.  Returns all the simple path names (excluding "." and "..").  The returned list will be
+    * empty if the node is not a directory.
     *
     * @param mountPoint the mount point of the filesystem instance (guaranteed to be a parent of {@code target})
     * @param target the virtual file to act upon

Modified: projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JZipFileSystem.java
===================================================================
--- projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JZipFileSystem.java	2009-07-31 21:46:58 UTC (rev 91900)
+++ projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JZipFileSystem.java	2009-07-31 22:15:44 UTC (rev 91901)
@@ -44,6 +44,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.ArrayList;
+import java.util.Collections;
 
 /**
  * {@inheritDoc}
@@ -202,6 +203,9 @@
    {
       final ZipNode zipNode = getExistingZipNode(mountPoint, target);
       final Map<String, ZipNode> children = zipNode.children;
+      if (children == null) {
+         return Collections.emptyList();
+      }
       final Collection<ZipNode> values = children.values();
       final List<String> names = new ArrayList<String>(values.size());
       for (ZipNode node : values)

Modified: projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JavaZipFileSystem.java
===================================================================
--- projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JavaZipFileSystem.java	2009-07-31 21:46:58 UTC (rev 91900)
+++ projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/JavaZipFileSystem.java	2009-07-31 22:15:44 UTC (rev 91901)
@@ -42,6 +42,7 @@
 import java.util.Enumeration;
 import java.util.Collection;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.zip.ZipFile;
 import java.util.zip.ZipEntry;
 
@@ -209,6 +210,9 @@
    {
       final ZipNode zipNode = getExistingZipNode(mountPoint, target);
       final Map<String, ZipNode> children = zipNode.children;
+      if (children == null) {
+         return Collections.emptyList();
+      }
       final Collection<ZipNode> values = children.values();
       final List<String> names = new ArrayList<String>(values.size());
       for (ZipNode node : values)

Modified: projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/RealFileSystem.java
===================================================================
--- projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/RealFileSystem.java	2009-07-31 21:46:58 UTC (rev 91900)
+++ projects/vfs/branches/dml-zip-rework/src/main/java/org/jboss/virtual/spi/RealFileSystem.java	2009-07-31 22:15:44 UTC (rev 91901)
@@ -30,6 +30,7 @@
 import java.io.FileInputStream;
 import java.util.List;
 import java.util.Arrays;
+import java.util.Collections;
 
 /**
  * A real filesystem.
@@ -109,7 +110,8 @@
    /** {@inheritDoc} */
    public List<String> getDirectoryEntries(VirtualFile mountPoint, VirtualFile target) throws IOException
    {
-      return Arrays.asList(getFile(mountPoint, target).list());
+      final String[] names = getFile(mountPoint, target).list();
+      return names == null ? Collections.<String>emptyList() : Arrays.asList(names);
    }
 
    /** {@inheritDoc} */




More information about the jboss-cvs-commits mailing list