Add test to check that a file cache is empty after VFS.close().
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/DefaultFileSystemManagerTest.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/DefaultFileSystemManagerTest.java
index 4c22157..51b829c 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/DefaultFileSystemManagerTest.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/impl/DefaultFileSystemManagerTest.java
@@ -25,6 +25,7 @@
 import org.apache.commons.vfs2.FileObject;
 import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileSystemManager;
+import org.apache.commons.vfs2.FilesCache;
 import org.apache.commons.vfs2.VFS;
 import org.apache.commons.vfs2.cache.NullFilesCache;
 import org.apache.commons.vfs2.provider.ram.RamFileProvider;
@@ -77,6 +78,43 @@
         }
     }
 
+    @Test
+    public void testFileCacheEmptyAfterVFSClose() throws FileSystemException {
+        final FileSystemManager manager = VFS.getManager();
+        Assert.assertNotNull(manager);
+        try (final FileObject fileObject = manager
+            .resolveFile(Paths.get("src/test/resources/test-data/read-tests/file1.txt").toUri())) {
+            Assert.assertTrue(fileObject.exists());
+            final FilesCache filesCache = manager.getFilesCache();
+            final FileName name = fileObject.getName();
+            // Make sure we have file object in the cache.
+            Assert.assertNotNull(filesCache.getFile(fileObject.getFileSystem(), name));
+            VFS.close();
+            // Cache MUST now be empty.
+            Assert.assertNull(filesCache.getFile(fileObject.getFileSystem(), name));
+        }
+    }
+
+    @Test
+    public void testFileCacheEmptyAfterManagerClose() throws FileSystemException {
+        final FileSystemManager manager = VFS.getManager();
+        Assert.assertNotNull(manager);
+        try (final FileObject fileObject = manager
+            .resolveFile(Paths.get("src/test/resources/test-data/read-tests/file1.txt").toUri())) {
+            Assert.assertTrue(fileObject.exists());
+            final FilesCache filesCache = manager.getFilesCache();
+            final FileName name = fileObject.getName();
+            // Make sure we have file object in the cache.
+            Assert.assertNotNull(filesCache.getFile(fileObject.getFileSystem(), name));
+            manager.close();
+            // Cache MUST now be empty.
+            Assert.assertNull(filesCache.getFile(fileObject.getFileSystem(), name));
+        } finally {
+            // Makes sure we reset the singleton or other tests will fail.
+            VFS.close();
+        }
+    }
+
     /**
      * Even if the file name is absolute, the base file must be given. This is an inconsistency in the API, but it is
      * documented as such.