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/09/26 20:19:05 UTC

[commons-vfs] branch master updated: FileObject.getURL() returns an illegal URL when it should escape a space.

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 4bd39d7  FileObject.getURL() returns an illegal URL when it should escape a space.
4bd39d7 is described below

commit 4bd39d7b8efa5773afe7d79071358ffdbc1501ac
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sat Sep 26 16:19:00 2020 -0400

    FileObject.getURL() returns an illegal URL when it should escape a
    space.
---
 .../commons/vfs2/provider/AbstractFileName.java    |    4 +-
 .../commons/vfs2/test/ProviderTestSuite.java       |    2 +-
 .../org/apache/commons/vfs2/test/UrlTests.java     |   31 +-
 src/changes/changes.xml                            | 2239 ++++++++++----------
 4 files changed, 1150 insertions(+), 1126 deletions(-)

diff --git a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileName.java b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileName.java
index b08f468..8ac0667 100644
--- a/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileName.java
+++ b/commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/AbstractFileName.java
@@ -33,13 +33,13 @@ public abstract class AbstractFileName implements FileName {
     // How reserved URI chars were selected:
     //
     // URIs can contain :, /, ?, #, @
-    // See http://download.oracle.com/javase/6/docs/api/java/net/URI.html
+    // See https://docs.oracle.com/javase/8/docs/api/java/net/URI.html
     // http://tools.ietf.org/html/rfc3986#section-2.2
     //
     // Since : and / occur before the path, only chars after path are escaped (i.e., # and ?)
     // ? is a reserved filesystem character for Windows and Unix, so can't be part of a file name.
     // Therefore only # is a reserved char in a URI as part of the path that can be in the file name.
-    private static final char[] RESERVED_URI_CHARS = { '#' };
+    private static final char[] RESERVED_URI_CHARS = { '#', ' ' };
 
     private final String scheme;
     private final String absPath;
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderTestSuite.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderTestSuite.java
index 89cecc5..0f1f1f7 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderTestSuite.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/ProviderTestSuite.java
@@ -46,6 +46,7 @@ public class ProviderTestSuite extends AbstractTestSuite {
      */
     @Override
     protected void addBaseTests() throws Exception {
+        addTests(UrlTests.class);
         addTests(ProviderCacheStrategyTests.class);
         addTests(UriTests.class);
         addTests(NamingTests.class);
@@ -59,7 +60,6 @@ public class ProviderTestSuite extends AbstractTestSuite {
         addTests(ProviderRenameTests.class);
         addTests(ProviderDeleteTests.class);
         addTests(LastModifiedTests.class);
-        addTests(UrlTests.class);
         addTests(UrlStructureTests.class);
         addTests(VfsClassLoaderTests.class);
     }
diff --git a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/UrlTests.java b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/UrlTests.java
index 0169ae6..d51ff36 100644
--- a/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/UrlTests.java
+++ b/commons-vfs2/src/test/java/org/apache/commons/vfs2/test/UrlTests.java
@@ -18,12 +18,15 @@ package org.apache.commons.vfs2.test;
 
 import java.io.IOException;
 import java.net.MalformedURLException;
+import java.net.URI;
 import java.net.URL;
 import java.net.URLConnection;
 
 import org.apache.commons.vfs2.Capability;
 import org.apache.commons.vfs2.FileObject;
+import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileSystemOptions;
+import org.junit.Test;
 
 /**
  * URL test cases for providers.
@@ -35,7 +38,21 @@ public class UrlTests extends AbstractProviderTestCase {
      */
     @Override
     protected Capability[] getRequiredCaps() {
-        return new Capability[] { Capability.URI };
+        return new Capability[] {Capability.URI};
+    }
+
+    @Test
+    public void testReservedCharacter_Space() throws FileSystemException {
+        try (final FileObject fileObject = getReadFolder().resolveFile("file with spaces.txt")) {
+            final URL url = fileObject.getURL();
+            final String string = url.toString();
+            assertTrue(string, string.contains("file%20with%20spaces.txt"));
+        }
+        try (final FileObject fileObject = getReadFolder().resolveFile("file%20with%20spaces.txt")) {
+            final URL url = fileObject.getURL();
+            final String string = url.toString();
+            assertTrue(string, string.contains("file%20with%20spaces.txt"));
+        }
     }
 
     /**
@@ -76,15 +93,19 @@ public class UrlTests extends AbstractProviderTestCase {
      * Tests content.
      */
     public void testURLContent() throws Exception {
+        testURLContent(getReadFolder());
+    }
+
+    private void testURLContent(final FileObject readFolder) throws FileSystemException, IOException, Exception {
         // Test non-empty file
-        FileObject file = getReadFolder().resolveFile("file1.txt");
-        assertTrue(file.exists());
+        FileObject file = readFolder.resolveFile("file1.txt");
+        assertTrue(file.toString(), file.exists());
 
         URLConnection urlCon = file.getURL().openConnection();
         assertSameURLContent(FILE1_CONTENT, urlCon);
 
         // Test empty file
-        file = getReadFolder().resolveFile("empty.txt");
+        file = readFolder.resolveFile("empty.txt");
         assertTrue(file.exists());
 
         urlCon = file.getURL().openConnection();
@@ -107,7 +128,7 @@ public class UrlTests extends AbstractProviderTestCase {
 
         assertEquals("Two files resolved by URI must be equals on " + uri, f1, f2);
         assertSame("Resolving two times should not produce new filesystem on " + uri, f1.getFileSystem(),
-                f2.getFileSystem());
+            f2.getFileSystem());
     }
 
 }
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index d184d6a..3d88046 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -1,1118 +1,1121 @@
-<?xml version="1.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.
--->
-<!--
-This file is also used by the maven-changes-plugin to generate the release notes.
-Useful ways of finding items to add to this file are:
-
-1.  Add items when you fix a bug or add a feature (this makes the
-release process easy :-).
-
-2.  Do a JIRA search for tickets closed since the previous release.
-
-3.  Use the report generated by the maven-changelog-plugin to see all
-SVN commits. Set the project.properties' maven.changelog.range
-property to the number of days since the last release.
-
-To generate the release notes from this file:
-
-mvn -N changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
-
-then tweak the formatting if necessary
-and commit
-
-The <action> type attribute can be add,update,fix,remove.
--->
-
-<document xmlns="http://maven.apache.org/changes/1.0.0">
-  <properties>
-    <title>Apache Commons VFS Release Notes</title>
-    <author email="dev@commons.apache.org">Apache Commons Developers</author>
-  </properties>
-
-  <body>
-    <release version="2.7.0" date="2020-MM-DD" description="Maintenance release.">
-<!--       <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
-<!--        [Local] Need an easy way to convert from a FileObject to a File. -->
-<!--       </action> -->
-<!-- START Might need to be moved to the next version -->
-      <action issue="VFS-753" dev="ggregory" due-to="John Webb, Gary Gregory" type="fix">
-        NumberFormatException in SftpFileSystem::getUId.
-      </action>
-      <action issue="VFS-779" dev="ggregory" due-to="Gary Gregory" type="fix">
-        Possible null pointer dereference in org.apache.commons.vfs2.impl.DefaultFileReplicator.close() due to return value of called method.
-      </action>
-      <action dev="ggregory" due-to="Gary Gregory" type="fix">
-        Add org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.isDisableDetectExecChannel(FileSystemOptions) and setDisableDetectExecChannel(FileSystemOptions, boolean).
-      </action>
-      <action dev="ggregory" due-to="Gary Gregory" type="fix">
-        Add org.apache.commons.vfs2.FileSystemConfigBuilder.toBooleanObject(boolean).
-      </action>
-      <action dev="ggregory" due-to="Gary Gregory" type="update">
-        org.apache.commons.vfs2.provider.VfsComponent now implements java.io.Closeable.
-      </action>
-      <action dev="ggregory" due-to="PeterAlfredLee" type="fix">
-        Modify some loop using stream API #96.
-      </action>
-      <action issue="VFS-757" dev="ggregory" due-to="ddg-igh" type="add">
-        [SFTP] Configure whether exec detection is enabled #80.
-      </action>
-      <action dev="ggregory" due-to="PeterAlfredLee" type="add">
-        Add proxy config for some HTTP/HTTPS test #108.
-      </action>
-      <action issue="VFS-780" dev="ggregory" due-to="Wuchte" type="fix">
-        SftpFileSystem returns null channel and produce NPE - fix get… #110.
-      </action>
-      <action dev="ggregory" due-to="PeterAlfredLee" type="add">
-        Fix some test error when JVM's default language is not US en #107. 
-      </action>
-      <action issue="VFS-788" dev="ggregory" due-to="satish bhor" type="fix">
-        [webdav/webdav4] Jackrabbit1 and jackrabbit2 modules getting same OSGi symbolic name.
-      </action>
-      <action issue="VFS-787" dev="ggregory" due-to="satish bhor" type="add">
-        Allow users to set proxy schemes like http/https #122.
-      </action>
-      <action issue="VFS-786" dev="ggregory" due-to="satish bhor" type="add">
-        Allow users to set custom keystore types like JCEKS, PKCS12 #121.
-      </action>
-      <action issue="VFS-624" dev="ggregory" due-to="PeterAlfredLee" type="fix">
-        Fix for read() in constructors of LocalFileRandomAccessContent and RamFileRandomAccessContent #93.
-      </action>
-      <action issue="VFS-769" dev="ggregory" due-to="PeterAlfredLee" type="fix">
-        Fix .tgz and .tbz2 createFileSystem fails #94
-      </action>
-      <action issue="VFS-664" dev="ggregory" due-to="PeterAlfredLee" type="fix">
-        Fix for file names with exclamation mark can not be read #95.
-      </action>
-      <action issue="VFS-777" dev="ggregory" due-to="Bing-ok, Gary Gregory" type="fix">
-        NoSuchMethodError due to multiple versions of commons-codec:commons-codec:jar.
-      </action>
-      <action issue="VFS-570" dev="ggregory" due-to="garpinc, Gary Gregory" type="add">
-        Add HDFS write support #114.
-      </action>
-      <action dev="ggregory" due-to="Gary Gregory" type="fix">
-        Remove workaround for JDK BUG: 6192331 which was fixed way back in Java 6: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6192331
-      </action>
-      <!-- UPDATES -->
-      <action issue="VFS-755" dev="ggregory" due-to="Gary Gregory" type="update">
-        Update org.apache.httpcomponents:httpclient from 4.5.10 to 4.5.11.
-      </action>
-      <action issue="VFS-756" dev="ggregory" due-to="Gary Gregory" type="update">
-        Update org.apache.jackrabbit:jackrabbit-standalone-components from 2.19.6 to 2.21.3.
-      </action>
-      <action issue="VFS-754" dev="ggregory" due-to="Gary Gregory" type="update">
-        Update Apache Commons Compress from 1.19 to 1.20.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Update tests from Apache Commons Lang 3.9 to 3.11.
-      </action>
-      <action issue="VFS-768" dev="ggregory" due-to="ddg-igh" type="add">
-        Update Apache httpclient 4.5.11 to 4.5.12 and httpclient5 5.0-beta7 to 5.0.1.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Update tests from Log4j 2.13.0 to 2.13.3.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Update tests from org.mockito:mockito-core from 3.2.4 to 3.4.4.
-      </action>
-      <action type="update" dev="ggregory" due-to="Gary Gregory">
-        Update Apache Commons IO from 2.6 to 2.8.0.
-      </action>
-      <action dev="ggregory" type="update" due-to="Gary Gregory">
-        Update site reports from org.apache.bcel:bcel 6.4.1 to 6.5.0.
-      </action>
-      <action dev="ggregory" type="update" due-to="Dependabot">
-        Update actions/checkout from v1 to v2.3.3 #100, #109, #130.
-      </action>
-      <action dev="ggregory" type="update" due-to="Dependabot">
-        Update actions/setup-java from v1.4.0 to v1.4.2 #111, #113.
-      </action>
-      <action dev="ggregory" type="update" due-to="Gary Gregory">
-        Update commons-parent from 50 to 52.
-      </action>
-      <action dev="ggregory" type="update" due-to="Dependabot">
-        Update checkstyle from 8.27 to 8.36 #123.
-      </action>
-      <action dev="ggregory" type="update" due-to="Dependabot">
-        Update maven-pmd-plugin from 3.12.0 to 3.13.0 #125.
-      </action>
-      <action dev="ggregory" type="update" due-to="Dependabot">
-        Update exec-maven-plugin from 1.6.0 to 3.0.0 #127.
-      </action>
-    </release>
-    <release version="2.6.0" date="2020-01-06" description="New features and bug fix release.">
-      <action dev="ggregory" due-to="Eitan Adler" type="fix">
-        Clean up tests and simplify assertions #76.
-      </action>
-      <action issue="VFS-750" dev="ggregory" due-to="Boris Petrov, Gary Gregory" type="fix">
-        Fix backwards incompatibility in AbstractFileObject.getInputStream().
-      </action>
-      <action dev="ggregory" due-to="Gary Gregory" type="update">
-        Update JUnit from 4.12 to 4.13.
-      </action>
-      <action issue="VFS-751" dev="ggregory" due-to="Gary Gregory" type="fix">
-        Deprecate org.apache.commons.vfs2.FileUtil for org.apache.commons.vfs2.util.FileObjectUtils.
-      </action>
-    </release>
-    <release version="2.5.0" date="2019-12-24" description="New features and bug fix release.">
-      <action issue="VFS-741" dev="ecki" type="fix">
-        FileObject#getChildren allows listing of files with known scheme prefix (generalizes VFS-398).
-      </action>
-      <action issue="VFS-726" dev="ggregory" type="fix" due-to="Cornelius Höfig, Gary Gregory">
-        getInputStream(int bufferSize) on SftpFileObject effectively ignores buffer size.
-      </action>
-      <action issue="VFS-704" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
-        Some providers wrap their input/output streams twice in a BufferedInputStream.
-      </action>
-      <action issue="VFS-727" dev="ggregory" type="fix" due-to="Michiel Hendriks, Gary Gregory">
-        Prevented creation of singleton file system manager from providers.
-      </action>
-      <action issue="VFS-444" dev="ggregory" type="fix" due-to="Walter Eaves, Xavier Dury, Michiel Hendriks, Gary Gregory">
-        ResourceFileProvider "res://" failed to obtain FileObject from resolved FileName.
-      </action>
-      <action issue="VFS-728" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Compress from 1.18 to 1.19.
-      </action>
-      <action issue="VFS-729" dev="ggregory" type="update" due-to="Michiel Hendriks, Gary Gregory">
-        Upgrade Hadoop to 2.7.4 or later; will use current 3.2.0.
-      </action>
-      <action issue="VFS-731" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update org.apache.httpcomponents:httpclient from 4.5.9 to 4.5.10.
-      </action>
-      <action issue="VFS-732" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update org.apache.httpcomponents:httpcore-nio from 4.4.11 to 4.4.12.
-      </action>
-      <action dev="ggregory" type="update" due-to="Gary Gregory">
-        Update tests using org.mockito:mockito-core from 3.0.0 to 3.1.0.
-      </action>
-      <action issue="VFS-734" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add functional interface org.apache.commons.vfs2.function.VfsConsumer.
-      </action>
-      <action issue="VFS-735" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add org.apache.commons.vfs2.FileSystemManager.close() via AutoCloseable.
-      </action>
-      <action issue="VFS-736" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add org.apache.commons.vfs2.VFS.reset().
-      </action>
-      <action issue="VFS-737" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Hadoop from 3.2.0 to 3.2.1.
-      </action>
-      <action issue="VFS-733" dev="ggregory" type="fix" due-to="Falco, Gary Gregory, Bruno P. Kinoshita">
-        Parent layer of ZipFileSystem set to null through OnCallRefreshFileObject and DecoratedFileObject.refresh().
-      </action>
-      <action issue="VFS-738" dev="ggregory" type="add" due-to="Gary Gregory">
-        Deprecate org.apache.commons.vfs2.FileChangeEvent.getFile() in favor of getFileObject().
-      </action>
-      <action issue="VFS-739" dev="ggregory" type="fix" due-to="xia0c, Gary Gregory">
-        Changes to parseUri breaks backward compatibility by throwing NullPointerException in some cases.
-      </action>
-      <action issue="VFS-686" dev="ggregory" type="add" due-to="Woonsan Ko, Gary Gregory">
-        Add webdav4 provider based on the latest Jackrabbit 2.x #52.
-      </action>
-      <action issue="VFS-742" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add org.apache.commons.vfs2.FileContent.isEmpty().
-      </action>
-      <action issue="VFS-743" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add org.apache.commons.vfs2.provider.compressed.CompressedFileFileObject.SIZE_UNDEFINED.
-      </action>
-      <action issue="VFS-744" dev="ggregory" type="fix" due-to="Gary Gregory">
-        org.apache.commons.vfs2.FileContent.getByteArray() can throw NegativeArraySizeException for BZip2 files.
-      </action>
-      <action issue="VFS-687" dev="ggregory" type="add" due-to="Woonsan Ko, Gary Gregory">
-        Add http5 and http5s providers (#74)
-      </action>
-      <action issue="VFS-590" dev="ggregory" type="fix" due-to="L, Alex Pearce, Gary Gregory">
-         SFTP moveTo operation might fail on permission checks even if the operation itself might succeed. #75.
-      </action>
-      <action issue="VFS-617" dev="ggregory" type="fix" due-to="Tim Nickels, Joshua Woods, David Johansson, Bernd Eckenfels, Len, Nim Lhûg, Vineet Tyagi, Gopal Warawate, Alex Pearce, Gary Gregory">
-         SFTP isReadable fails if unable to determine group identity. #75.
-      </action>
-      <action issue="VFS-749" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Parent from 48 to 50.
-      </action>
-    </release>
-    <release version="2.4.1" date="2019-08-10" description="Bug fix release.">
-      <action issue="VFS-725" dev="ggregory" type="fix" due-to="Gary Gregory">
-        [Local] org.apache.commons.vfs2.FileContent.getLastModifiedTime() is losing milliseconds (always ends in 000).
-      </action>
-      <action issue="VFS-724" dev="ggregory" type="fix" due-to="William R, Gary Gregory">
-        FileContent#getByteArray() throws IllegalArgumentException: Buffer size &lt;= 0 when file size is 0.
-      </action>
-      <action                 dev="ggregory" type="fix" due-to="Gary Gregory">
-        Javadoc fixes.
-      </action>
-    </release>
-    <release version="2.4" date="2019-07-12" description="New features and bug fix release.">
-      <action issue="VFS-690" dev="ggregory" type="add">
-        Allow to set key exchange algorithm explicitly. GitHub #32.
-      </action>
-      <action issue="VFS-692" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Collections from 4.2 to 4.3.
-      </action>
-      <action issue="VFS-693" dev="ggregory" type="update" due-to="Boris Petrov, Gary Gregory">
-        Add support for customizing FTP transfer aborted status codes. GitHub PR #51.
-      </action>
-      <action issue="VFS-694" dev="ggregory" type="fix" due-to="Boris Petrov">
-        Fix inability to start the DefaultFileMonitor after it has been stopped. GitHub PR #55.
-      </action>
-      <action issue="VFS-696" dev="ggregory" type="fix" due-to="rayzzed">
-        SFTP HTTP and SOCKS proxy authentication. GitHub PR #49.
-      </action>
-      <action issue="VFS-497" dev="ggregory" type="add" due-to="Michael Schnell">
-        Ported filters from Commons IO #9.
-      </action>
-      <action issue="VFS-696" dev="ggregory" type="add" due-to="Robert DeRose">
-        More efficient comparison in FileExtensionSelector #44.
-      </action>
-      <action issue="VFS-660" dev="ggregory" type="add" due-to="Liu Yubao">
-        Expose workaround for connecting to FTP server from different subnets in PASV mode #35.
-      </action>
-      <action issue="VFS-699" dev="ggregory" type="add" due-to="Boris Petrov">
-        Add setting for FTP encoding auto-detection #58.
-      </action>
-      <action issue="VFS-702" dev="ggregory" type="update" due-to="Boris Petrov">
-        Simplify adding files to DefaultFileMonitor #57.
-      </action>
-      <action issue="VFS-703" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Lang from 3.8.1 to 3.9.
-      </action>
-      <action issue="VFS-706" dev="ggregory" type="add" due-to="Boris Petrov">
-        Add ability to specify buffer sizes #59.
-      </action>
-      <action issue="VFS-609" dev="ggregory" type="add" due-to="stevezhuang, Rostislav, Gary Gregory">
-        SFTP provider doesn't support a private key as byte array #60.
-      </action>
-      <action issue="VFS-707" dev="ggregory" type="add" due-to="Gary Gregory">
-        Update Apache HttpClient from 4.5.7 to 4.5.8.
-      </action>
-      <action issue="VFS-707" dev="ggregory" type="fix" due-to="Gary Gregory">
-        [SFTP] SftpFileSystem.executeCommand(String, StringBuilder) can leak ChannelExec objects.
-      </action>
-      <action issue="VFS-709" dev="ggregory" type="fix" due-to="Gary Gregory">
-        [SFTP] SftpFileSystem.getGroupsIds() can initialize underlying data more than once while multithreading.
-      </action>
-      <action issue="VFS-710" dev="ggregory" type="fix" due-to="Gary Gregory">
-        [SFTP] SftpFileSystem.getUid() can initialize underlying data more than once while multithreading.
-      </action>
-      <action issue="VFS-711" dev="ggregory" type="fix" due-to="Gary Gregory">
-        [SFTP] SftpFileSystem can initialize underlying Session more than once while multithreading.
-      </action>
-      <action issue="VFS-662" dev="ggregory" type="fix" due-to="qxo, Alexey Abashev, Gary Gregory">
-        [SFTP] SftpFileSystem has Thread-safe issue about idleChannel (#36).
-      </action>
-      <action issue="VFS-700" dev="ggregory" type="fix" due-to="Gary Gregory, Matthias Krueger">
-        Some tests fail on Java 11 and above.
-      </action>
-      <action issue="VFS-712" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add null-safe org.apache.commons.vfs2.util.FileObjectUtils.exists(FileObject).
-      </action>
-      <action issue="VFS-713" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add FileObjectUtils.readProperties(FileObject) method to read a .properties file.
-      </action>
-      <action issue="VFS-715" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add org.apache.commons.vfs2.FileContent.getByteArray().
-      </action>
-      <action issue="VFS-716" dev="ggregory" type="fix" due-to="Boris Petrov">
-        Fix AbstractFileName.getURI returning unencoded #-sign #64.
-      </action>
-      <action issue="VFS-698" dev="ggregory" type="fix" due-to="David Septimus, Bernd">
-        SFTP file attributes are fetched multiple times leading to very slow directory listing; #65.
-      </action>
-      <action issue="VFS-717" dev="ggregory" type="fix" due-to="Gary Gregory">
-        Update org.apache.httpcomponents:httpclient from 4.5.8 to 4.5.9.
-      </action>
-      <action issue="VFS-718" dev="ggregory" type="fix" due-to="Boris Petrov">
-        MonitorInputStream should not close the stream in "read" #67.
-      </action>
-      <action issue="VFS-719" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add methods to get the contents of file objects as strings.
-      </action>
-      <action issue="VFS-720" dev="ggregory" type="add" due-to="Boris Petrov">
-        Implement Closeable for RandomAccessContent #66.
-      </action>
-      <action issue="VFS-721" dev="ggregory" type="add" due-to="Gary Gregory">
-        Add support for symbolic links for the local file system and add FileObject#isSymbolicLink().
-      </action>
-      <action issue="VFS-722" dev="ggregory" type="update" due-to="Gary Gregory">
-        Update Apache Commons Collections from 4.3 to 4.4.
-      </action>
-      <!-- Source code notes -->
-      <action dev="ggregory" type="update">
-        Source incompatibility: org.apache.commons.vfs2.FileFilter.accept(FileSelectInfo) now throws checked exception FileSystemException.
-      </action>
-      <action dev="ggregory" type="update">
-        Public API note: The overridden methods getURI() and getFriendlyURI() in org.apache.commons.vfs2.provider.local.LocalFileName where removed but are implemented in a superclass.
-      </action>
-      <action dev="ggregory" type="update">
-        Public API note: The overridden method org.apache.commons.vfs2.provider.sftp.SftpFileObject#refresh() was removed but is implemented in a superclass.
-      </action>
-      <action dev="ggregory" type="update">
-        Public API note: The overridden method org.apache.commons.vfs2.provider.sftp.SftpFileProvider#init() was removed but is implemented in a superclass.
-      </action>
-    </release>
-    <release version="2.3" date="2019-02-01" description="New features and bug fix release.">
-      <action issue="VFS-645" dev="ggregory" type="fix">
-		VfsClassLoaderTests and JarProviderTestCase fails on Java 9 and up.
-      </action>
-      <action issue="VFS-678" dev="ecki" type="fix">
-        Fix various LGTM.com code review warnings.
-      </action>
-      <action issue="VFS-652" dev="ecki" type="fix">
-        PatternFileSelector documentation to describe actual matching against getPath().
-      </action>
-      <action issue="VFS-650" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.15 to 1.16.1.
-      </action>
-      <action issue="VFS-646" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.14 to 1.15.
-      </action>
-      <action issue="VFS-589" dev="ggregory" type="fix" due-to="L, Gary Gregory">
-        SFTP moveTo operation hangs if the server does not support SSH channelExec.
-      </action>
-      <action issue="VFS-653" dev="ggregory" type="update">
-        Replace use of deprecated APIs in HDFS provider.
-      </action>
-      <action issue="VFS-655" dev="ggregory" type="fix" due-to="Arnaud MERGEY">
-        OSGI MANIFEST.MF "Import-Package" should be ";resolution:=optional" for Maven "optional" dependencies.
-      </action>
-      <action issue="VFS-657" dev="ggregory" type="fix" due-to="Elias Putz">
-        FileSelector implementations like FileDepthSelector should throw Exception.
-      </action>
-      <action issue="VFS-614" dev="ggregory" type="fix" due-to="Boris Petrov, Otto Fowler">
-        MonitorInputStream should not close the stream in read().
-      </action>
-      <action issue="VFS-666" dev="ggregory" type="update">
-        Update Apache Commons Collections from 4.1 to 4.2.
-      </action>
-      <action issue="VFS-667" dev="ggregory" type="fix">
-        org.apache.commons.vfs2.provider.res.ResourceFileProvider.findFile(FileObject, String, FileSystemOptions) should throw a org.apache.commons.vfs2.FileSystemException instead of a NPE when the class loader is null.
-      </action>
-      <action issue="VFS-668" dev="ggregory" type="update">
-        Throw a NPE with a better message when a class loader is null.
-      </action>
-      <action issue="VFS-669" dev="ggregory" type="fix">
-        org.apache.commons.vfs2.util.CombinedResources.loadResources(String) should not throw an NPE for the system class loader is null.
-      </action>
-      <action issue="VFS-671" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.16.1 to 1.18.
-      </action>
-      <action issue="VFS-675" dev="ggregory" type="fix">
-        NullPointerException at AbstractFileObject.java:221.
-      </action>
-      <action issue="VFS-680" dev="ggregory" type="update">
-        Update from Java 7 to Java 8.
-      </action>
-      <action issue="VFS-681" dev="ggregory" type="update" due-to="Robert DeRose">
-        VFS.setManager should be synchronized; #43.
-      </action>
-      <action issue="VFS-674" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
-        Cannot close an FTP input stream without an exception.
-      </action>
-      <action issue="VFS-682" dev="ggregory" type="update">
-        Throw a org.apache.commons.vfs2.FileSystemException instead of a NullPointerException in org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveName(FileName, String, NameScope).
-      </action>
-      <action issue="VFS-294" dev="ggregory" type="fix" due-to="Johannes Scharf">
-        NullPointerException in FtpFileObject.getChildFile().
-      </action>
-      <action issue="VFS-679" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
-        NullPointerException in FtpFileObject.doGetLastModifiedTime().
-      </action>
-      <action issue="VFS-398" dev="ggregory" type="fix" due-to="Otto Fowler">
-        FtpFileObject.getChildren() fails when a folder contains a file with a colon in the name.
-      </action>
-      <action issue="VFS-688" dev="ggregory" type="update">
-        [SFTP] Update jsch from 0.1.54 to 0.1.55.
-      </action>
-      <action issue="VFS-677" dev="ggregory" type="add" due-to="dingxbcn">
-        [SFTP] Add support for append mode.
-      </action>
-      <action issue="VFS-673" dev="ggregory" type="add" due-to="Oleksandr Lykhonosov">
-        [SFTP] Support com.jcraft.jsch.ConfigRepository (~/.ssh/config) with SftpFileSystemConfigBuilder and flag to load OpenSSHConfig.
-      </action>
-      <action issue="VFS-673" dev="ggregory" type="add" due-to="Daniel Banks">
-        DefaultFileSystemManager should implement AutoCloseable.
-      </action>
-      <action issue="VFS-637" dev="ggregory" type="add" due-to="Gary Gregory">
-        Zip files with legacy encoding and special characters let VFS crash.
-      </action>
-      <action issue="VFS-360" dev="ggregory" type="add" due-to="Woonsan Ko">
-        Add HTTP provider based on HttpComponents HttpClient 4.
-      </action>
-      <action issue="VFS-689" dev="ggregory" type="add" due-to="Gary Gregory">
-        org.apache.commons.vfs2.provider.http.HttpFileObject.getHeadMethod() does not release connection when an exception is thrown.
-      </action>
-    </release>
-    <release version="2.2" date="2017-10-06" description="New features and bug fix release.">
-      <action issue="VFS-642" dev="pschumacher" type="update" due-to="ilangoldfeld">
-        Upgrade to jcifs 1.3.17
-      </action>
-      <action issue="VFS-189" dev="kinow" type="fix">
-        Possible NPE in DefaultFileSystemManager.
-      </action>
-      <action issue="VFS-628" dev="ggregory" type="add">
-        Add a file inverter FileSelector: InvertIncludeFileSelector.
-      </action>
-      <action issue="VFS-612" dev="ggregory" type="update">
-        Update the platform requirement from Java 6 to Java 7.
-      </action>
-      <action issue="VFS-615" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.11 to 1.12.
-      </action>
-      <action issue="VFS-629" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.12 to 1.13.
-      </action>
-      <action issue="VFS-639" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.13 to 1.14.
-      </action>
-      <action issue="VFS-631" dev="ggregory" type="update">
-        Update from Apache Commons Net 3.5 to 3.6.
-      </action>
-      <action issue="VFS-632" dev="ggregory" type="update">
-        Update from JCraft jsch for SFTP/SSH from 0.1.53 to 0.1.54.
-      </action>
-      <action issue="VFS-621" dev="ggregory" type="update">
-        Add API VFS.setManager(FileSystemManager).
-      </action>
-      <action issue="VFS-643" dev="ggregory" type="update">
-        VFS should not log at the INFO level.
-      </action>
-      <action issue="VFS-620" dev="ggregory" type="fix" due-to="stevezhuang">
-        FileObject.moveTo(FileObject) API doesn't work well for a Linux FTP.
-      </action>
-      <action issue="VFS-291" dev="ggregory" type="fix">
-        ZIP archives are not properly closed after unzipping and cannot be deleted until the JVM exists.
-      </action>
-      <action issue="VFS-644" dev="ggregory" type="fix">
-        AbstractFileSystem.streamClosed() always sets openStream count to zero.
-      </action>
-    </release>
-    <release version="2.1" date="2016-05-19" description="New features and bug fix release.
-
-
-
-Please note that the Clirr report shows several errors.
-
-These may affect source compatibility.
-
-However they should not affect binary compatibility, as explained below.
-
-
-
-FileContent, FileName, FileObject, FileSystemManager, RandomAccessContent:
-
-The above interfaces have been updated to add new methods.
-
-This does not affect binary compatibility; for details please see:
-
-https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.3-100
-
-The above changes may affect source compatibility.
-
-
-Changes to method parameters and return types in TarFileObject and TarFileSystem
-
-The original parameter/return types were the following:
-
-org.apache.commons.vfs2.provider.tar.TarEntry
-
-org.apache.commons.vfs2.provider.tar.TarInputStream
-
-The above were package protected, so any methods using them did not form part of the public API.
-
-Therefore source and binary compatibility is not affected.">
-<!--       <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
-<!--        [Local] Need an easy way to convert from a FileObject to a File. -->
-<!--       </action> -->
-<!-- START Might need to be moved to the next version -->
-     <action issue="VFS-607" dev="ggregory" type="update">
-        Update Apache Commons Compress from 1.10 to 1.11.
-     </action>
-     <action issue="VFS-608" dev="ggregory" type="update">
-        Update Apache Commons Net from 3.4 to 3.5.
-     </action>
-<!-- END Might need to be moved to the next version -->
-     <action issue="VFS-424" dev="ecki" type="fix">
-        Fix StandardFileSystemManager class loading so it works in a OSGi environment.
-     </action>
-      <action issue="VFS-490" dev="ecki" type="fix">
-        [vfsclassloader] Do not open folders with .jar extension. Adds tests.
-     </action>
-      <action issue="VFS-582" dev="ecki" type="fix">
-        [tests] revert rename of getTestDirectoryFile to make test classes more compatible for external providers.
-     </action>
-      <action issue="VFS-480" dev="ecki" type="fix">
-        Make startup of SoftRefsFileCache cleaner thread work and less racy to avoid leaks.
-     </action>
-      <action issue="VFS-549" dev="ecki" type="fix">
-        Use File.seperator instead of getProperty("file.separator").
-     </action>
-      <action issue="VFS-567" dev="ecki" type="fix" due-to="Antonio Petrelli">
-        [ftp] Ignore exceptions while QUIT/disconnect.
-     </action>
-      <action issue="VFS-572" dev="ecki" type="fix" due-to="Sandra Parsick">
-        [sftp] better documentation for knownhosts file option.
-     </action>
-      <action issue="VFS-574" dev="ecki" type="fix">
-        Ensure FileOpertionProviders are closed. Adds some testcases.
-        The error code for missing operations exceptions corrected: vfs.operation/operation-not-supported.error
-     </action>
-      <action issue="VFS-279" dev="ecki" type="fix" due-to="Didier Earith, Simon Legner">
-        [local] Avoid ClassCastException when replicating local files while OnCall caching is active.
-      </action>
-      <action issue="VFS-297" dev="joehni" type="fix" due-to="Kirill Safonov, Jimmy Praet">
-        [sftp] VSF fails to reuse FileSystem instances if FileSystemOptions contain
-        an array as value. Reported for SFTP using identities.
-      </action>
-      <action issue="VFS-198" dev="ecki" type="add" due-to="Andrew Franklin, Simon Legner">
-        [http] Make user agent configurable.
-      </action>
-      <action issue="VFS-202" dev="ecki" type="fix" due-to="Sergey Vladimirov, Simon Legner">
-        [http] Allow URLs responding with 405 to HEAD requests.
-      </action>
-      <action issue="VFS-490" dev="ecki" type="fix">
-        [hdfs] Make OSGi package imports for hdfs resolution=optional.
-        Removed all scopes from dependency management.
-      </action>
-      <action issue="VFS-560" dev="ecki" type="fix">
-        [http] avoid initial HEAD request to root of HttpFileSystem as it might be wrong context.
-      </action>
-      <action issue="VFS-236" dev="ecki" type="fix" due-to="Matt Casters">
-        [smb] Allow SMB to be used with no authentication.
-      </action>
-      <action issue="VFS-564" dev="ecki" type="fix" due-to="Dmitry Konstantinov">
-        Make some loggers static.
-      </action>
-      <action issue="VFS-555" dev="rwhitcomb" type="add">
-        [hdfs] Add the ability to specify an HDFS configuration file with HdfsFileSystemConfigBuilder.
-      </action>
-      <action issue="VFS-557" dev="ecki" type="fix">
-       [webdav][test] Create WebDav test directory in target/test. Avoid creating core/jackrabbit/tmp.
-       Logfiles of Jackrabbit are preserved when -DWebdavProviderTestCase.Debug=true is specified.
-      </action>
-      <action issue="VFS-558" dev="ecki" type="fix">
-       Make moveTo() and getParent() work with CacheStrategy.ON_CALL.
-       In case of FTP Provider it would lead otherwise to an UnsupportedOperationException.
-      </action>
-      <action dev="ecki" type="fix">
-       [sandbox] RACRandomAccessFile is now in org.apache.commons.vfs2.util package (so sandbox has only one overlapping package).
-      </action>
-      <action issue="VFS-530" dev="ecki" type="update" due-to="Dave Marion">
-       [hdfs] Use stable Apache Hadoop 2.6 dependencies.
-      </action>
-      <action dev="ecki" type="add">
-       [example] make VFS Shell print version and implement new 'info' command.
-      </action>
-      <action issue="VFS-552" dev="ecki" type="fix">
-       [sandbox] include vfs-providers.xml in JAR for dynamic registration of mime and smb providers.
-      </action>
-      <action issue="VFS-551" dev="ecki" type="fix" due-to="David Camilo Espitia Manrique">
-       Javadoc: make it clear that DefaultCryptor is only an obfuscation function.
-      </action>
-      <action issue="VFS-309" dev="ecki" type="fix">
-       DefaultFileContent will remove thread data whenever possible to avoid leaks.
-      </action>
-      <action issue="VFS-487" dev="ecki" type="fix" due-to="Dave Marion">
-       DefaultFileMonitor detects recreated files.
-      </action>
-      <action issue="VFS-523" dev="ecki" type="fix" due-to="Roger Whitcomb">
-       [HDFS] Make HdfsFileObject.equal use system hashcode/equals instead of
-       wrongly comparing file path only.
-      </action>
-      <action issue="VFS-544" dev="ecki" type="fix">
-       [Virtual] Allow virtual file systems and virtual file system provider
-       to be closed, to avoid memory leak.
-      </action>
-      <action issue="VFS-142" dev="ecki" type="fix" due-to="Ryan Boettcher">
-       Use ThreadLocal.remove() to clean out FileContentThreadData objects.
-      </action>
-      <action issue="VFS-545" dev="ecki" type="fix">
-       Make DefaultFilesCache remove reference to filesystem when it is cleared (closed).
-      </action>
-      <action issue="VFS-521" dev="ecki" type="fix">
-       [Ram][Tests] Make RAM provider test pass on Java 8
-       (JDK-8042377, self-suppression not permitted, MonitorOutputStream#close()).
-      </action>
-      <action issue="VFS-601" dev="ggregory" type="update">
-       Update Apache Commons Net from 3.3 to 3.4.
-      </action>
-      <action issue="VFS-602" dev="ggregory" type="update">
-       Update Apache Commons IO from 2.4 to 2.5.
-      </action>
-      <action issue="VFS-579" dev="ggregory" type="update">
-       Update Jsch from 0.1.51 to 0.1.53.
-      </action>
-      <action issue="VFS-542" dev="ggregory" type="update">
-       Update Jsch from 0.1.50 to 0.1.51.
-      </action>
-      <action issue="VFS-578" dev="ggregory" type="update">
-       Update Apache Commons Compress from 1.9 to 1.10.
-      </action>
-      <action issue="VFS-541" dev="ggregory" type="update">
-       Update Apache Commons Compress from 1.6 to 1.9.
-      </action>
-      <action issue="VFS-540" dev="ggregory" type="update">
-       Update Apache Commons Logging from 1.1.3 to 1.2.
-      </action>
-      <action issue="VFS-539" dev="ggregory" type="update">
-       Update Apache Commons Lang from 3.1 to 3.3.2.
-      </action>
-      <action issue="VFS-532" dev="ggregory" type="add" due-to="Gareth Daniel Smith">
-       [FTP] Allow configuring remoteVerificationEnabled on FTPClient instances.
-      </action>
-      <action issue="VFS-338" dev="ecki" type="fix" due-to="Daniel R.">
-       [Local][Tests] Avoid IndexOutOfBoundsException when validating local file URIs.
-      </action>
-      <action issue="VFS-526" dev="ecki" type="update">
-       [HDFS][Tests] Support HDFS testing on Windows (but keep profile "no-hdfs" enabled on Windows VFS-529).
-      </action>
-      <action issue="VFS-453" dev="ecki" type="update" due-to="Jiri Syrovy">
-       [HTTP][WEBDAV] Add file system options for connect and socket timeout.
-      </action>
-      <action issue="VFS-167" dev="ecki" type="update" due-to="Jimmy Praet">
-       [FTP] Allow Proxy support to file system options.
-      </action>
-      <action issue="VFS-520" dev="ecki" type="update">
-       Make Javadoc compatible with Java 8 tool.
-      </action>
-      <action issue="VFS-518" dev="ggregory" type="update" due-to="Roland Illig">
-        Documentation of FileSystemOptions should be more helpful.
-      </action>
-      <action issue="VFS-500" dev="ggregory" type="update" due-to="Bernd Eckenfels">
-        VFSClassLoader.findResources missing.
-      </action>
-      <action issue="VFS-514" dev="ggregory" type="update" due-to="Bernd Eckenfels">
-        [tests] PermissionsTests leaves unclean test directory.
-      </action>
-      <action issue="VFS-501" dev="ggregory" type="update" due-to="Yves Schumann">
-        Hide passwords from log/console output.
-      </action>
-      <action issue="VFS-496" dev="ggregory" type="update" due-to="Bernd Eckenfels">
-        Resource translation issues.
-      </action>
-      <action issue="VFS-494" dev="ggregory" type="update" due-to="Allen Xudong Cheng">
-        [SFTP] No support for SFTP servers with non Latin-1 file name encoding.
-      </action>
-      <action issue="VFS-368" dev="ggregory" type="update" due-to="Brendan Long">
-        [SFTP] Documentation implies that "userDirIsRoot" defaults to true.
-      </action>
-      <action issue="VFS-265" dev="ggregory" type="update" due-to="Scott Bjerstedt">
-        [FTP] Set user dir as root dir by default.
-      </action>
-      <action issue="VFS-489" dev="ggregory" type="fix" due-to="Bernd Eckenfels">
-        [tests] ProviderWriteTests#testListener does not fail cleanly.
-      </action>
-      <action issue="VFS-486" dev="ggregory" type="fix" due-to="Sam Haldane">
-        DefaultFileMonitor sleeps for twice the specified delay when checkPerRun > 0.
-      </action>
-      <action issue="VFS-484" dev="ggregory" type="update">
-        [SFTP] Update Jsch to 0.1.50 from 0.1.49.
-      </action>
-      <action issue="VFS-482" dev="ggregory" type="fix">
-        Wrong assertion messages in RAM provider test case.
-      </action>
-      <action issue="VFS-507" dev="ggregory" type="update">
-        Update to Apache Commons Collection 4.1 from 3.2.1 and use generics.
-      </action>
-      <action issue="VFS-476" dev="ggregory" type="update">
-        Update Apache Commons Logging to 1.1.3 from 1.1.2.
-      </action>
-      <action issue="VFS-475" dev="ggregory" type="update">
-        Update Apache Commons Net to 3.3 from 3.2.
-      </action>
-      <action issue="VFS-506" dev="ggregory" type="update">
-        [Tar][Bzip2] Update Apache Commons Compress to 1.6 from 1.5.
-      </action>
-      <action issue="VFS-471" dev="ggregory" type="update">
-        Update to Apache Commons Compress 1.5.
-      </action>
-      <action issue="VFS-469" dev="joehni" type="remove">
-        Remove unused dependency to javax.jcr:jcr.
-      </action>
-      <action issue="VFS-283" dev="joehni" type="update">
-        [SFTP] SFTP provider did not support passphrase-protected keys nor the exchange of a public key with
-        a requesting SFTP server. To support such triples (private key/passphrase/public key) instead of private
-        keys only, a new structure EntityInfo has been created. SftpFileSystemConfigBuilder has now the new
-        getter and setter methods getIdentityInfo and setIdentity info which replace the now deprecated methods
-        getIdentities and setIdentities.
-      </action>
-      <action issue="VFS-460" dev="joehni" type="fix">
-        Dependency to commons-compress set as optional.
-      </action>
-      <action issue="VFS-468" dev="joehni" type="add">
-        [FTPS] Add option for KeyManager (and TrustManager) to support FTPS servers that ask for the client certificate for authentication.
-      </action>
-      <action issue="VFS-464" dev="joehni" type="fix">
-        StaticUserAuthenticator should return only requested authentication data.
-      </action>
-      <action issue="VFS-463" dev="joehni" type="update">
-        FileSytemConfigBuilder supports system properties for the value of enum-based configuration entries.
-      </action>
-      <action issue="VFS-462" dev="joehni" type="update">
-        [FTPS] Deprecate FtpsFileSystemConfigBuilder.setFtpsType and FtpsFileSystemConfigBuilder.getFtpsType
-        in favor of FtpsFileSystemConfigBuilder.setFtpsMode and FtpsFileSystemConfigBuilder.getFtpsMode which
-        use new enum FtpsMode instead.
-      </action>
-      <action issue="VFS-461" dev="joehni" type="fix">
-        [FTP/FTPS] ConfigBuilder does not consider system properties for the value of SoTimeout and Encoding.
-      </action>
-      <action issue="VFS-412" dev="joehni" type="add" due-to="Jose Juan Montiel">
-        [FTPS] Add support for command to set the DataChannelProtectionLevel.
-      </action>
-      <action issue="VFS-459" dev="joehni" type="update">
-        [FTP/FTPS] Sent commands and the received answer is logged at debug level.
-      </action>
-      <action issue="VFS-458" dev="joehni" type="fix">
-        [FTPS] Provider missed functionality and bug fixes already available for the FTP provider.
-      </action>
-      <action issue="VFS-452" dev="ggregory" type="fix" due-to="Jean-Marc Borer">
-        [HTTP] HttpFileObject read/write attributes should reflect underlying FileSystem capabilities.
-      </action>
-      <action issue="VFS-285" dev="tn" type="fix" due-to="Kirill Safonov">
-        AbstractFileObject.getChildren() may corrupt its internal state if a filename
-        can not be resolved.
-      </action>
-      <action issue="VFS-450" dev="ggregory" type="fix" due-to="Dave Marion">
-        [HDFS] HDFSFileSystem.resolveFile() does not honor CacheStrategy.ON_RESOLVE.
-      </action>
-      <action issue="VFS-442" dev="ggregory" type="add" due-to="Dave Marion">
-        [HDFS] Add an HDFS FileSystem Provider.
-      </action>
-      <action issue="VFS-448" dev="ggregory" type="fix">
-        commons-vfs 2.0 JAR has flawed OSGi MANIFEST.MF.
-      </action>
-      <action issue="VFS-447" dev="ggregory" type="add">
-        [FTP/FTPS] Update Apache Commons Net to 3.2 from 3.1.
-      </action>
-      <action issue="VFS-445" dev="ggregory" type="add">
-        Add FileSystemManager.resolveFile(URI) and resolveFile(URL).
-      </action>
-      <action issue="VFS-440" dev="ggregory" type="add" due-to="bpiwowar">
-        [SFTP] Stream (e.g. netcat) proxy for Sftp file system (aka ProxyCommand).
-      </action>
-      <action issue="VFS-439" dev="ggregory" type="fix" due-to="pensecit">
-        StaticUserAuthenticator usage example wrong.
-      </action>
-      <action issue="VFS-437" dev="ggregory" type="fix" due-to="denniszhu, danttran, jpowang">
-        [FTP] StackOverFlowError getting the type of a directory with a symbolic link to a parent directory with the same name.
-      </action>
-      <action issue="VFS-435" dev="ggregory" type="fix" due-to="george scott">
-        FileSystemConfigBuilder does not use prefix for some system property lookups.
-      </action>
-      <action issue="VFS-434" dev="ggregory" type="fix">
-        FileSystemException should reuse IOException's chained exception.
-      </action>
-      <action issue="VFS-433" dev="ggregory" type="fix">
-        [WebDAV] Message "vfs.provider.webdav/propfind.error" is not defined.
-      </action>
-      <action issue="VFS-430" dev="ggregory" type="fix" due-to="antonin.stefanutti">
-        The SoftRefFilesCache class logs clear text password.
-      </action>
-      <action issue="VFS-432" dev="ggregory" type="add">
-        [HTTP][WebDAV] Allow HTTP follow redirect.
-      </action>
-      <action issue="VFS-431" dev="ggregory" type="add">
-        FileSystemOption does not implement toString().
-      </action>
-      <action issue="VFS-429" dev="ggregory" type="fix">
-        Remove extra FileSystem ivar in AbstractFileObject subclasses with generics.
-      </action>
-      <action issue="VFS-427" dev="ggregory" type="fix" due-to="awelynant">
-        [HTTP] NPE on HttpFileObject.getContent().getContentInfo().
-      </action>
-      <action issue="VFS-405" dev="ggregory" type="add" due-to="dwaszak">
-        Get/set the file permissions.
-      </action>
-      <action issue="VFS-457" dev="joehni" type="update">
-        Update test dependencies: sshd-core version 0.7.0 to 0.8.0; mina-core 2.0.4 to 2.0.7; junit 4.11 to 4.12; slf4j-* 1.5.5 to 1.5.11
-      </action>
-      <action issue="VFS-456" dev="joehni" type="update">
-        Use org.bouncycastel:bcprov-jdk16 instead of org.bouncycastle:bcprof-jdk15on since Java 1.6 is required.
-      </action>
-      <action issue="VFS-415" dev="ggregory" type="update">
-        Update VFS requirement to Java 1.6.
-      </action>
-      <action issue="VFS-426" dev="ggregory" type="add" due-to="daniel.bergholm">
-        HTTP URL query string not part of cache key.
-      </action>
-      <action issue="VFS-425" dev="ggregory" type="add">
-        Add API FileObject.isExecutable().
-      </action>
-      <action issue="VFS-421" dev="ggregory" type="add" due-to="bpiwowar">
-        [SFTP] Configure a custom Identity Repository.
-      </action>
-      <action issue="VFS-418" dev="ggregory" type="update">
-        Update to Apache Commons Compress 1.4.1.
-      </action>
-      <action issue="VFS-417" dev="ggregory" type="add">
-        [RAM][Local] Add and implement new API: RandomAccessContent.setLength(long).
-      </action>
-      <action issue="VFS-406" dev="ggregory" type="fix" due-to="mp1">
-        [RAM] resize throws ArrayOOBE when shrinking in size.
-      </action>
-      <action issue="VFS-321" dev="ggregory" type="update" due-to="sebb">
-        AbstractFileObject sometimes uses getFileSystem() and sometimes references "fs" field directly.
-      </action>
-      <action issue="VFS-327" dev="ggregory" type="update" due-to="sebb">
-        UriParser.canonicalizePath possible NPE for filenameParser.
-      </action>
-      <action issue="VFS-353" dev="ggregory" type="fix" due-to="bergander">
-        [FTP] Client should call logout before disconnecting.
-      </action>
-      <action issue="VFS-408" dev="ggregory" type="fix" due-to="anilm2@yahoo.com">
-        CompressedFileFileObject Exception thrown when container file has no extension.
-      </action>
-      <action issue="VFS-400" dev="ggregory" type="add">
-        Add a FileSelector based on regular expressions.
-      </action>
-      <action issue="VFS-258" dev="ggregory" type="fix" due-to="mzawirski">
-        [SFTP][RAM] Unsafe casting to AbstractFileObject subclasses in doRename().
-      </action>
-      <action issue="VFS-254" dev="ggregory" type="add" due-to="mzawirski">
-        Let FileObject and FileContent extend java.io.Closeable.
-      </action>
-      <action issue="VFS-413" dev="ggregory" type="fix" due-to="polivenok">
-        [FTP] No support for FTP servers with non Latin-1 control encoding.
-      </action>
-      <action issue="VFS-252" dev="ggregory" type="add">
-        [SMB] SmbFileObject does not support setLastModifiedTime while jcifs supports it.
-      </action>
-      <action issue="VFS-200" dev="ggregory" type="fix">
-        [SFTP] Failure when files are very large.
-      </action>
-      <action issue="VFS-416" dev="joehni" type="update">
-        [SFTP] Update Jsch to version 0.1.49 from 0.1.47.
-      </action>
-      <action issue="VFS-296" dev="ggregory" type="fix" due-to="andreasp">
-        [FTP] FTP socket timeout setting doesn't work if connect hangs.
-      </action>
-      <action issue="VFS-313" dev="ggregory" type="add" due-to="bdavis@saintandreas.org">
-        [FTP] Configuration does not include option for setting socket timeout.
-      </action>
-      <action issue="VFS-414" dev="ggregory" type="add">
-        [FTP] Add config API to set the file type.
-      </action>
-      <action issue="VFS-182" dev="ggregory" type="add">
-        [FTP] Usage of FTP with heterogeneous FTP server (possibility of using Ascii file type).
-      </action>
-      <action issue="VFS-395" dev="ggregory" type="update">
-        [POM] Remove maven-scm-* dependencies.
-      </action>
-      <action issue="VFS-411" dev="ggregory" type="update">
-        [SFTP] Update Jsch to version 0.1.47 from 0.1.46.
-      </action>
-      <action issue="VFS-410" dev="ggregory" type="fix" due-to="mstockhammer">
-        [SFTP] SftpFileObject getInputStream(long) reads the whole file into memory.
-      </action>
-      <action issue="VFS-409" dev="ggregory" type="update">
-        Update Apache Commons Compress to 1.4 from 1.3.
-      </action>
-      <action issue="VFS-407" dev="ggregory" type="fix" due-to="mp1">
-        [RAM] Reading a RAM FileSystem file fails because it never returns EOF -1.
-      </action>
-      <action issue="VFS-404" dev="ggregory" type="update">
-        [FTP][FTPS] Update Apache Commons Net to 3.1 from 3.0.1.
-      </action>
-      <action issue="VFS-402" dev="ggregory" type="update">
-        [WebDAV] Update Apache Jackrabbit 1.5.2 to 1.6.5.
-      </action>
-      <action issue="VFS-401" dev="ggregory" type="update">
-        Update JSch to 0.1.46 from 0.1.45 for the SFTP provider.
-      </action>
-      <action issue="VFS-392" dev="ggregory" type="update">
-        Build tests WebDAV file system with an embedded WebDAV server (Apache Jackrabbit).
-      </action>
-      <action issue="VFS-391" dev="ggregory" type="update">
-        Build tests URL HTTP file system with an embedded HTTP server (Apache HttpComponent Core).
-      </action>
-      <action issue="VFS-390" dev="ggregory" type="update">
-        Use variable argument list in org.apache.commons.vfs2.util.Messages instead of Object[].
-      </action>
-      <action issue="VFS-389" dev="ggregory" type="update">
-        Use variable argument lists in FileSystemException instead of Object[]s.
-      </action>
-      <action issue="VFS-388" dev="ggregory" type="update">
-        Build tests SFTP file system with an embedded SFTP server (Apache MINA).
-      </action>
-      <action issue="VFS-387" dev="ggregory" type="update">
-        Build tests FTP file system with an embedded FTP server (Apache MINA).
-      </action>
-      <action issue="VFS-386" dev="ggregory" type="update">
-        Build tests HTTP file system with an embedded HTTP server (Apache HttpComponent Core).
-      </action>
-      <action issue="VFS-385" dev="ggregory" type="update">
-        Add HTTP status code to HTTP file provider exception messages when available.
-      </action>
-      <action issue="VFS-384" dev="ggregory" type="update">
-        Update Apache Commons Net to 3.0.1 from 2.2 for FTP and SFTP providers.
-      </action>
-      <action issue="VFS-383" dev="ggregory" type="update">
-        Update JSch to 0.1.45 from 0.1.42 for the SFTP provider.
-      </action>
-      <action issue="VFS-382" dev="ggregory" type="fix">
-        SFTP getChildren() does not fail when called on a file.
-      </action>
-      <action issue="VFS-381" dev="ggregory" type="add">
-        Iterate over a FileObject using the Java "foreach" statement, to provide all descendents of a FileObject.
-      </action>
-      <action issue="VFS-380" dev="ggregory" type="fix">
-        FTP connect.error message used instead of SFTP connect.error message.
-      </action>
-      <action issue="VFS-379" dev="ggregory" type="update">
-        Replace custom BZIP2 code with Apache Commons Compress 1.3.
-      </action>
-      <action issue="VFS-378" dev="ggregory" type="fix">
-        Tar error message are missing from resource file.
-      </action>
-      <action issue="VFS-377" dev="ggregory" type="update">
-        Replace custom TAR code with Apache Commons Compress 1.3.
-      </action>
-      <action issue="VFS-375" dev="ggregory" type="update">
-        Upgrade to Apache Commons Compress 1.3 from 1.2.
-      </action>
-      <action issue="VFS-374" dev="ggregory" type="fix">
-        Incorrect lazy initialization of static field org.apache.commons.vfs2.util.Messages.resources in org.apache.commons.vfs2.util.Messages.findMessage(String)Add FileContent write APIs.
-      </action>
-      <action issue="VFS-373" dev="ggregory" type="add">
-        Add FileContent write APIs.
-      </action>
-      <action issue="VFS-372" dev="ggregory" type="add">
-        Add constructors FileDepthSelector() and FileDepthSelector(int).
-      </action>
-      <action issue="VFS-371" dev="ggregory" type="add">
-        Add FileObject API deleteAll().
-      </action>
-      <action issue="VFS-370" dev="ggregory" type="add">
-        Add a FileExtensionSelector class.
-      </action>
-      <action issue="VFS-367" dev="ggregory" type="add">
-        Add APIs FileObject isFile(), FileObject isFolder(), and FileName isFile().
-      </action>
-      <action issue="VFS-366" dev="ggregory" type="update">
-        Can't sort a List of FileObject's, FileObject to implement Comparable&lt;FileObject&gt;.
-      </action>
-      <action issue="VFS-341" dev="rgoers" type="update" due-to="Rajika Kumarasiri">
-        Enable logging of JSch using the Commons Logging Log object in SftpClientFactory.
-      </action>
-      <action issue="VFS-355" dev="rgoers" type="fix" due-to="Miroslav Pokorny">
-        The read method of RamFileRandomAccessContent's input stream does not return -1 at eof.
-      </action>
-      <action issue="VFS-356" dev="rgoers" type="fix">
-        Throw an IOException if an attempt is made to seek to a position before the start of the file.
-      </action>
-      <action issue="VFS-359" dev="rgoers" type="fix" due-to="Miroslav Pokorny">
-        Don't delete a RamFileObject if it is open.
-      </action>
-      <action issue="VFS-352" dev="rgoers" type="fix">
-        ZipFileSystem now uses an internal Map as a cache for all the files in the zip archive.
-      </action>
-      <action issue="VFS-351" dev="rgoers" type="fix" due-to="John Backstrand">
-        Chain the SftpException in the FileSystemException.
-      </action>
-      <action issue="VFS-361" dev="rgoers" type="update">
-        Upgrade commons collections version to 3.2.1.
-      </action>
-      <action issue="VFS-325" dev="rgoers" type="fix" due-to="Larry Reeve">
-        Allow # character in file names.
-      </action>
-      <action issue="VFS-335" dev="rgoers" type="fix">
-        Use atomic variables in MonitorInputStream.
-      </action>
-      <action issue="VFS-364" dev="rgoers" type="fix">
-        Check the href in the response for just a path in addition to a full uri.
-      </action>
-    </release>
-    <release version="2.0" date="2011-08-24" description="Backwards incompatible update of Commons VFS to Java 5">
-      <action issue="VFS-348" dev="rgoers" type="fix" due-to="Stefan Bodewig">
-        Update the version of commons-net.
-      </action>
-      <action issue="VFS-230" dev="rgoers" type="fix">
-        Documented FileSystem capabilities on the web site.
-      </action>
-      <action issue="VFS-337" dev="rgoers" type="fix">
-        AbstractFileObject and classes that extend from it use AbstractFileName in the constructor and in
-        the createFile method.
-      </action>
-       <action issue="VFS-245" dev="rgoers" type="fix">
-        AbstractFileName is not immutable as it should be. equals(), hashcode() and compareTo() have been modified
-        to return the same results regardless of whether the FileType is changed.
-      </action>
-      <action issue="VFS-334" dev="sebb" type="fix">
-        DefaultFileSystemConfigBuilder.getConfigClass() returns DefaultFileSystemConfigBuilder.class which is not a FileSystem
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-305" due-to="Tom">
-        Add encoding option to FTP provider.
-      </action>
-       <action dev="rgoers" type="fix" issue="VFS-315" due-to="David Hausladen">
-        Fix potential NullPointerException if the DavProperty is null or contains null values.
-      </action>
-       <action dev="rgoers" type="fix" issue="VFS-316" due-to="David Hausladen">
-        Add option for preemptive authentication for HTTP based protocols.
-      </action>
-       <action dev="rgoers" type="fix" issue="VFS-322" due-to="Curtis Boyden">
-        Allow tar files that contain files over 2GB in size.
-      </action>
-       <action dev="rgoers" type="fix" issue="VFS-324" due-to="sebb">
-        Clear the cache in RamFileSystem and the children in RamFileData.
-      </action>
-      <action dev="sebb" type="fix" issue="VFS-319">
-        Typo in FtpsFileSystemConfigBuilder.setFtpsType
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-227" due-to="Sergey Vladimirov">
-        InputStream and RandomAccessContent memory leak in FileContentThreadData
-      </action>
-      <action dev="rgoers" type="update" issue="VFS-263" due-to="Ingo Maas">
-        WebdavFileObject does not implement doSetAttribute()
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-259" due-to="Marek Zawirski">
-        Http and Webdav FIleContentInfoFactory: undress to AbstractFileObject before casting
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-261" due-to="Simon Olofsson">
-        WebDAV upload corrupts binary files
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-276" due-to="Vince Bonfanti">
-        add ProviderTestConfig.getDefaultFileSystemManager() method
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-282" due-to="Alexey">
-        SftpFileProvider and SftpFileSystemConfigBuilder can't change ssh authentication methods
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-269" due-to="Marek Zawirski">
-        HttpFileObject: unsupported content over 2GB length
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-287" due-to="Mircea-Eugen Ionica">
-        LocalFileName objects are not released from AbstractFileSystem.listenerMap when all listeners are removed.
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-216" due-to="Reetu Mutti">
-        The FTP Configuration includes an option to set a timeout for the data connection, but not for the socket
-        timeout. This is a problem, as idle sockets can cause your download to hang forever and never timeout.
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-289" due-to="Kirill Safonov">
-        FTP connection is not released If exception is thrown out of FtpFileObject.doGetOutputStream().
-      </action>
-      <action dev="rgoers" type="fix" issue="VFS-286" due-to="Kirill Safonov">
-        SftpFileObject.doListChildrenResolved() changes the working dir before doing ChannelSftp.ls() call.
-        If ls() throws an exception, the current directory is not reset. All the subsequent operations that rely on the
-        current dir will fail trying to change into nonexistent directory.
-      </action>
-      <action dev="jcarman" type="add" issue="VFS-264" due-to="Scott Bjerstedt">
-        Add FTPS provider.
-      </action>
-      <action dev="rgoers" type="add" issue="VFS-244">
-        Rename HttpRandomAccesContent to HttpRandomAccessContent.
-      </action>
-    </release>
-  </body>
-</document>
+<?xml version="1.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.
+-->
+<!--
+This file is also used by the maven-changes-plugin to generate the release notes.
+Useful ways of finding items to add to this file are:
+
+1.  Add items when you fix a bug or add a feature (this makes the
+release process easy :-).
+
+2.  Do a JIRA search for tickets closed since the previous release.
+
+3.  Use the report generated by the maven-changelog-plugin to see all
+SVN commits. Set the project.properties' maven.changelog.range
+property to the number of days since the last release.
+
+To generate the release notes from this file:
+
+mvn -N changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
+
+then tweak the formatting if necessary
+and commit
+
+The <action> type attribute can be add,update,fix,remove.
+-->
+
+<document xmlns="http://maven.apache.org/changes/1.0.0">
+  <properties>
+    <title>Apache Commons VFS Release Notes</title>
+    <author email="dev@commons.apache.org">Apache Commons Developers</author>
+  </properties>
+
+  <body>
+    <release version="2.7.0" date="2020-MM-DD" description="Maintenance release.">
+<!--       <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
+<!--        [Local] Need an easy way to convert from a FileObject to a File. -->
+<!--       </action> -->
+<!-- START Might need to be moved to the next version -->
+      <action issue="VFS-753" dev="ggregory" due-to="John Webb, Gary Gregory" type="fix">
+        NumberFormatException in SftpFileSystem::getUId.
+      </action>
+      <action issue="VFS-779" dev="ggregory" due-to="Gary Gregory" type="fix">
+        Possible null pointer dereference in org.apache.commons.vfs2.impl.DefaultFileReplicator.close() due to return value of called method.
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="fix">
+        Add org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.isDisableDetectExecChannel(FileSystemOptions) and setDisableDetectExecChannel(FileSystemOptions, boolean).
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="fix">
+        Add org.apache.commons.vfs2.FileSystemConfigBuilder.toBooleanObject(boolean).
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="update">
+        org.apache.commons.vfs2.provider.VfsComponent now implements java.io.Closeable.
+      </action>
+      <action dev="ggregory" due-to="PeterAlfredLee" type="fix">
+        Modify some loop using stream API #96.
+      </action>
+      <action issue="VFS-757" dev="ggregory" due-to="ddg-igh" type="add">
+        [SFTP] Configure whether exec detection is enabled #80.
+      </action>
+      <action dev="ggregory" due-to="PeterAlfredLee" type="add">
+        Add proxy config for some HTTP/HTTPS test #108.
+      </action>
+      <action issue="VFS-780" dev="ggregory" due-to="Wuchte" type="fix">
+        SftpFileSystem returns null channel and produce NPE - fix get… #110.
+      </action>
+      <action dev="ggregory" due-to="PeterAlfredLee" type="add">
+        Fix some test error when JVM's default language is not US en #107. 
+      </action>
+      <action issue="VFS-788" dev="ggregory" due-to="satish bhor" type="fix">
+        [webdav/webdav4] Jackrabbit1 and jackrabbit2 modules getting same OSGi symbolic name.
+      </action>
+      <action issue="VFS-787" dev="ggregory" due-to="satish bhor" type="add">
+        Allow users to set proxy schemes like http/https #122.
+      </action>
+      <action issue="VFS-786" dev="ggregory" due-to="satish bhor" type="add">
+        Allow users to set custom keystore types like JCEKS, PKCS12 #121.
+      </action>
+      <action issue="VFS-624" dev="ggregory" due-to="PeterAlfredLee" type="fix">
+        Fix for read() in constructors of LocalFileRandomAccessContent and RamFileRandomAccessContent #93.
+      </action>
+      <action issue="VFS-769" dev="ggregory" due-to="PeterAlfredLee" type="fix">
+        Fix .tgz and .tbz2 createFileSystem fails #94
+      </action>
+      <action issue="VFS-664" dev="ggregory" due-to="PeterAlfredLee" type="fix">
+        Fix for file names with exclamation mark can not be read #95.
+      </action>
+      <action issue="VFS-777" dev="ggregory" due-to="Bing-ok, Gary Gregory" type="fix">
+        NoSuchMethodError due to multiple versions of commons-codec:commons-codec:jar.
+      </action>
+      <action issue="VFS-570" dev="ggregory" due-to="garpinc, Gary Gregory" type="add">
+        Add HDFS write support #114.
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="fix">
+        Remove workaround for JDK BUG: 6192331 which was fixed way back in Java 6: https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6192331
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="fix">
+        FileObject.getURL() returns an illegal URL when a it should escape a space.
+      </action>
+      <!-- UPDATES -->
+      <action issue="VFS-755" dev="ggregory" due-to="Gary Gregory" type="update">
+        Update org.apache.httpcomponents:httpclient from 4.5.10 to 4.5.11.
+      </action>
+      <action issue="VFS-756" dev="ggregory" due-to="Gary Gregory" type="update">
+        Update org.apache.jackrabbit:jackrabbit-standalone-components from 2.19.6 to 2.21.3.
+      </action>
+      <action issue="VFS-754" dev="ggregory" due-to="Gary Gregory" type="update">
+        Update Apache Commons Compress from 1.19 to 1.20.
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Update tests from Apache Commons Lang 3.9 to 3.11.
+      </action>
+      <action issue="VFS-768" dev="ggregory" due-to="ddg-igh" type="add">
+        Update Apache httpclient 4.5.11 to 4.5.12 and httpclient5 5.0-beta7 to 5.0.1.
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Update tests from Log4j 2.13.0 to 2.13.3.
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Update tests from org.mockito:mockito-core from 3.2.4 to 3.4.4.
+      </action>
+      <action type="update" dev="ggregory" due-to="Gary Gregory">
+        Update Apache Commons IO from 2.6 to 2.8.0.
+      </action>
+      <action dev="ggregory" type="update" due-to="Gary Gregory">
+        Update site reports from org.apache.bcel:bcel 6.4.1 to 6.5.0.
+      </action>
+      <action dev="ggregory" type="update" due-to="Dependabot">
+        Update actions/checkout from v1 to v2.3.3 #100, #109, #130.
+      </action>
+      <action dev="ggregory" type="update" due-to="Dependabot">
+        Update actions/setup-java from v1.4.0 to v1.4.2 #111, #113.
+      </action>
+      <action dev="ggregory" type="update" due-to="Gary Gregory">
+        Update commons-parent from 50 to 52.
+      </action>
+      <action dev="ggregory" type="update" due-to="Dependabot">
+        Update checkstyle from 8.27 to 8.36 #123.
+      </action>
+      <action dev="ggregory" type="update" due-to="Dependabot">
+        Update maven-pmd-plugin from 3.12.0 to 3.13.0 #125.
+      </action>
+      <action dev="ggregory" type="update" due-to="Dependabot">
+        Update exec-maven-plugin from 1.6.0 to 3.0.0 #127.
+      </action>
+    </release>
+    <release version="2.6.0" date="2020-01-06" description="New features and bug fix release.">
+      <action dev="ggregory" due-to="Eitan Adler" type="fix">
+        Clean up tests and simplify assertions #76.
+      </action>
+      <action issue="VFS-750" dev="ggregory" due-to="Boris Petrov, Gary Gregory" type="fix">
+        Fix backwards incompatibility in AbstractFileObject.getInputStream().
+      </action>
+      <action dev="ggregory" due-to="Gary Gregory" type="update">
+        Update JUnit from 4.12 to 4.13.
+      </action>
+      <action issue="VFS-751" dev="ggregory" due-to="Gary Gregory" type="fix">
+        Deprecate org.apache.commons.vfs2.FileUtil for org.apache.commons.vfs2.util.FileObjectUtils.
+      </action>
+    </release>
+    <release version="2.5.0" date="2019-12-24" description="New features and bug fix release.">
+      <action issue="VFS-741" dev="ecki" type="fix">
+        FileObject#getChildren allows listing of files with known scheme prefix (generalizes VFS-398).
+      </action>
+      <action issue="VFS-726" dev="ggregory" type="fix" due-to="Cornelius Höfig, Gary Gregory">
+        getInputStream(int bufferSize) on SftpFileObject effectively ignores buffer size.
+      </action>
+      <action issue="VFS-704" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
+        Some providers wrap their input/output streams twice in a BufferedInputStream.
+      </action>
+      <action issue="VFS-727" dev="ggregory" type="fix" due-to="Michiel Hendriks, Gary Gregory">
+        Prevented creation of singleton file system manager from providers.
+      </action>
+      <action issue="VFS-444" dev="ggregory" type="fix" due-to="Walter Eaves, Xavier Dury, Michiel Hendriks, Gary Gregory">
+        ResourceFileProvider "res://" failed to obtain FileObject from resolved FileName.
+      </action>
+      <action issue="VFS-728" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Compress from 1.18 to 1.19.
+      </action>
+      <action issue="VFS-729" dev="ggregory" type="update" due-to="Michiel Hendriks, Gary Gregory">
+        Upgrade Hadoop to 2.7.4 or later; will use current 3.2.0.
+      </action>
+      <action issue="VFS-731" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update org.apache.httpcomponents:httpclient from 4.5.9 to 4.5.10.
+      </action>
+      <action issue="VFS-732" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update org.apache.httpcomponents:httpcore-nio from 4.4.11 to 4.4.12.
+      </action>
+      <action dev="ggregory" type="update" due-to="Gary Gregory">
+        Update tests using org.mockito:mockito-core from 3.0.0 to 3.1.0.
+      </action>
+      <action issue="VFS-734" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add functional interface org.apache.commons.vfs2.function.VfsConsumer.
+      </action>
+      <action issue="VFS-735" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.vfs2.FileSystemManager.close() via AutoCloseable.
+      </action>
+      <action issue="VFS-736" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.vfs2.VFS.reset().
+      </action>
+      <action issue="VFS-737" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Hadoop from 3.2.0 to 3.2.1.
+      </action>
+      <action issue="VFS-733" dev="ggregory" type="fix" due-to="Falco, Gary Gregory, Bruno P. Kinoshita">
+        Parent layer of ZipFileSystem set to null through OnCallRefreshFileObject and DecoratedFileObject.refresh().
+      </action>
+      <action issue="VFS-738" dev="ggregory" type="add" due-to="Gary Gregory">
+        Deprecate org.apache.commons.vfs2.FileChangeEvent.getFile() in favor of getFileObject().
+      </action>
+      <action issue="VFS-739" dev="ggregory" type="fix" due-to="xia0c, Gary Gregory">
+        Changes to parseUri breaks backward compatibility by throwing NullPointerException in some cases.
+      </action>
+      <action issue="VFS-686" dev="ggregory" type="add" due-to="Woonsan Ko, Gary Gregory">
+        Add webdav4 provider based on the latest Jackrabbit 2.x #52.
+      </action>
+      <action issue="VFS-742" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.vfs2.FileContent.isEmpty().
+      </action>
+      <action issue="VFS-743" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.vfs2.provider.compressed.CompressedFileFileObject.SIZE_UNDEFINED.
+      </action>
+      <action issue="VFS-744" dev="ggregory" type="fix" due-to="Gary Gregory">
+        org.apache.commons.vfs2.FileContent.getByteArray() can throw NegativeArraySizeException for BZip2 files.
+      </action>
+      <action issue="VFS-687" dev="ggregory" type="add" due-to="Woonsan Ko, Gary Gregory">
+        Add http5 and http5s providers (#74)
+      </action>
+      <action issue="VFS-590" dev="ggregory" type="fix" due-to="L, Alex Pearce, Gary Gregory">
+         SFTP moveTo operation might fail on permission checks even if the operation itself might succeed. #75.
+      </action>
+      <action issue="VFS-617" dev="ggregory" type="fix" due-to="Tim Nickels, Joshua Woods, David Johansson, Bernd Eckenfels, Len, Nim Lhûg, Vineet Tyagi, Gopal Warawate, Alex Pearce, Gary Gregory">
+         SFTP isReadable fails if unable to determine group identity. #75.
+      </action>
+      <action issue="VFS-749" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Parent from 48 to 50.
+      </action>
+    </release>
+    <release version="2.4.1" date="2019-08-10" description="Bug fix release.">
+      <action issue="VFS-725" dev="ggregory" type="fix" due-to="Gary Gregory">
+        [Local] org.apache.commons.vfs2.FileContent.getLastModifiedTime() is losing milliseconds (always ends in 000).
+      </action>
+      <action issue="VFS-724" dev="ggregory" type="fix" due-to="William R, Gary Gregory">
+        FileContent#getByteArray() throws IllegalArgumentException: Buffer size &lt;= 0 when file size is 0.
+      </action>
+      <action                 dev="ggregory" type="fix" due-to="Gary Gregory">
+        Javadoc fixes.
+      </action>
+    </release>
+    <release version="2.4" date="2019-07-12" description="New features and bug fix release.">
+      <action issue="VFS-690" dev="ggregory" type="add">
+        Allow to set key exchange algorithm explicitly. GitHub #32.
+      </action>
+      <action issue="VFS-692" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Collections from 4.2 to 4.3.
+      </action>
+      <action issue="VFS-693" dev="ggregory" type="update" due-to="Boris Petrov, Gary Gregory">
+        Add support for customizing FTP transfer aborted status codes. GitHub PR #51.
+      </action>
+      <action issue="VFS-694" dev="ggregory" type="fix" due-to="Boris Petrov">
+        Fix inability to start the DefaultFileMonitor after it has been stopped. GitHub PR #55.
+      </action>
+      <action issue="VFS-696" dev="ggregory" type="fix" due-to="rayzzed">
+        SFTP HTTP and SOCKS proxy authentication. GitHub PR #49.
+      </action>
+      <action issue="VFS-497" dev="ggregory" type="add" due-to="Michael Schnell">
+        Ported filters from Commons IO #9.
+      </action>
+      <action issue="VFS-696" dev="ggregory" type="add" due-to="Robert DeRose">
+        More efficient comparison in FileExtensionSelector #44.
+      </action>
+      <action issue="VFS-660" dev="ggregory" type="add" due-to="Liu Yubao">
+        Expose workaround for connecting to FTP server from different subnets in PASV mode #35.
+      </action>
+      <action issue="VFS-699" dev="ggregory" type="add" due-to="Boris Petrov">
+        Add setting for FTP encoding auto-detection #58.
+      </action>
+      <action issue="VFS-702" dev="ggregory" type="update" due-to="Boris Petrov">
+        Simplify adding files to DefaultFileMonitor #57.
+      </action>
+      <action issue="VFS-703" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Lang from 3.8.1 to 3.9.
+      </action>
+      <action issue="VFS-706" dev="ggregory" type="add" due-to="Boris Petrov">
+        Add ability to specify buffer sizes #59.
+      </action>
+      <action issue="VFS-609" dev="ggregory" type="add" due-to="stevezhuang, Rostislav, Gary Gregory">
+        SFTP provider doesn't support a private key as byte array #60.
+      </action>
+      <action issue="VFS-707" dev="ggregory" type="add" due-to="Gary Gregory">
+        Update Apache HttpClient from 4.5.7 to 4.5.8.
+      </action>
+      <action issue="VFS-707" dev="ggregory" type="fix" due-to="Gary Gregory">
+        [SFTP] SftpFileSystem.executeCommand(String, StringBuilder) can leak ChannelExec objects.
+      </action>
+      <action issue="VFS-709" dev="ggregory" type="fix" due-to="Gary Gregory">
+        [SFTP] SftpFileSystem.getGroupsIds() can initialize underlying data more than once while multithreading.
+      </action>
+      <action issue="VFS-710" dev="ggregory" type="fix" due-to="Gary Gregory">
+        [SFTP] SftpFileSystem.getUid() can initialize underlying data more than once while multithreading.
+      </action>
+      <action issue="VFS-711" dev="ggregory" type="fix" due-to="Gary Gregory">
+        [SFTP] SftpFileSystem can initialize underlying Session more than once while multithreading.
+      </action>
+      <action issue="VFS-662" dev="ggregory" type="fix" due-to="qxo, Alexey Abashev, Gary Gregory">
+        [SFTP] SftpFileSystem has Thread-safe issue about idleChannel (#36).
+      </action>
+      <action issue="VFS-700" dev="ggregory" type="fix" due-to="Gary Gregory, Matthias Krueger">
+        Some tests fail on Java 11 and above.
+      </action>
+      <action issue="VFS-712" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add null-safe org.apache.commons.vfs2.util.FileObjectUtils.exists(FileObject).
+      </action>
+      <action issue="VFS-713" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add FileObjectUtils.readProperties(FileObject) method to read a .properties file.
+      </action>
+      <action issue="VFS-715" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add org.apache.commons.vfs2.FileContent.getByteArray().
+      </action>
+      <action issue="VFS-716" dev="ggregory" type="fix" due-to="Boris Petrov">
+        Fix AbstractFileName.getURI returning unencoded #-sign #64.
+      </action>
+      <action issue="VFS-698" dev="ggregory" type="fix" due-to="David Septimus, Bernd">
+        SFTP file attributes are fetched multiple times leading to very slow directory listing; #65.
+      </action>
+      <action issue="VFS-717" dev="ggregory" type="fix" due-to="Gary Gregory">
+        Update org.apache.httpcomponents:httpclient from 4.5.8 to 4.5.9.
+      </action>
+      <action issue="VFS-718" dev="ggregory" type="fix" due-to="Boris Petrov">
+        MonitorInputStream should not close the stream in "read" #67.
+      </action>
+      <action issue="VFS-719" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add methods to get the contents of file objects as strings.
+      </action>
+      <action issue="VFS-720" dev="ggregory" type="add" due-to="Boris Petrov">
+        Implement Closeable for RandomAccessContent #66.
+      </action>
+      <action issue="VFS-721" dev="ggregory" type="add" due-to="Gary Gregory">
+        Add support for symbolic links for the local file system and add FileObject#isSymbolicLink().
+      </action>
+      <action issue="VFS-722" dev="ggregory" type="update" due-to="Gary Gregory">
+        Update Apache Commons Collections from 4.3 to 4.4.
+      </action>
+      <!-- Source code notes -->
+      <action dev="ggregory" type="update">
+        Source incompatibility: org.apache.commons.vfs2.FileFilter.accept(FileSelectInfo) now throws checked exception FileSystemException.
+      </action>
+      <action dev="ggregory" type="update">
+        Public API note: The overridden methods getURI() and getFriendlyURI() in org.apache.commons.vfs2.provider.local.LocalFileName where removed but are implemented in a superclass.
+      </action>
+      <action dev="ggregory" type="update">
+        Public API note: The overridden method org.apache.commons.vfs2.provider.sftp.SftpFileObject#refresh() was removed but is implemented in a superclass.
+      </action>
+      <action dev="ggregory" type="update">
+        Public API note: The overridden method org.apache.commons.vfs2.provider.sftp.SftpFileProvider#init() was removed but is implemented in a superclass.
+      </action>
+    </release>
+    <release version="2.3" date="2019-02-01" description="New features and bug fix release.">
+      <action issue="VFS-645" dev="ggregory" type="fix">
+		VfsClassLoaderTests and JarProviderTestCase fails on Java 9 and up.
+      </action>
+      <action issue="VFS-678" dev="ecki" type="fix">
+        Fix various LGTM.com code review warnings.
+      </action>
+      <action issue="VFS-652" dev="ecki" type="fix">
+        PatternFileSelector documentation to describe actual matching against getPath().
+      </action>
+      <action issue="VFS-650" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.15 to 1.16.1.
+      </action>
+      <action issue="VFS-646" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.14 to 1.15.
+      </action>
+      <action issue="VFS-589" dev="ggregory" type="fix" due-to="L, Gary Gregory">
+        SFTP moveTo operation hangs if the server does not support SSH channelExec.
+      </action>
+      <action issue="VFS-653" dev="ggregory" type="update">
+        Replace use of deprecated APIs in HDFS provider.
+      </action>
+      <action issue="VFS-655" dev="ggregory" type="fix" due-to="Arnaud MERGEY">
+        OSGI MANIFEST.MF "Import-Package" should be ";resolution:=optional" for Maven "optional" dependencies.
+      </action>
+      <action issue="VFS-657" dev="ggregory" type="fix" due-to="Elias Putz">
+        FileSelector implementations like FileDepthSelector should throw Exception.
+      </action>
+      <action issue="VFS-614" dev="ggregory" type="fix" due-to="Boris Petrov, Otto Fowler">
+        MonitorInputStream should not close the stream in read().
+      </action>
+      <action issue="VFS-666" dev="ggregory" type="update">
+        Update Apache Commons Collections from 4.1 to 4.2.
+      </action>
+      <action issue="VFS-667" dev="ggregory" type="fix">
+        org.apache.commons.vfs2.provider.res.ResourceFileProvider.findFile(FileObject, String, FileSystemOptions) should throw a org.apache.commons.vfs2.FileSystemException instead of a NPE when the class loader is null.
+      </action>
+      <action issue="VFS-668" dev="ggregory" type="update">
+        Throw a NPE with a better message when a class loader is null.
+      </action>
+      <action issue="VFS-669" dev="ggregory" type="fix">
+        org.apache.commons.vfs2.util.CombinedResources.loadResources(String) should not throw an NPE for the system class loader is null.
+      </action>
+      <action issue="VFS-671" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.16.1 to 1.18.
+      </action>
+      <action issue="VFS-675" dev="ggregory" type="fix">
+        NullPointerException at AbstractFileObject.java:221.
+      </action>
+      <action issue="VFS-680" dev="ggregory" type="update">
+        Update from Java 7 to Java 8.
+      </action>
+      <action issue="VFS-681" dev="ggregory" type="update" due-to="Robert DeRose">
+        VFS.setManager should be synchronized; #43.
+      </action>
+      <action issue="VFS-674" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
+        Cannot close an FTP input stream without an exception.
+      </action>
+      <action issue="VFS-682" dev="ggregory" type="update">
+        Throw a org.apache.commons.vfs2.FileSystemException instead of a NullPointerException in org.apache.commons.vfs2.impl.DefaultFileSystemManager.resolveName(FileName, String, NameScope).
+      </action>
+      <action issue="VFS-294" dev="ggregory" type="fix" due-to="Johannes Scharf">
+        NullPointerException in FtpFileObject.getChildFile().
+      </action>
+      <action issue="VFS-679" dev="ggregory" type="fix" due-to="Boris Petrov, Gary Gregory">
+        NullPointerException in FtpFileObject.doGetLastModifiedTime().
+      </action>
+      <action issue="VFS-398" dev="ggregory" type="fix" due-to="Otto Fowler">
+        FtpFileObject.getChildren() fails when a folder contains a file with a colon in the name.
+      </action>
+      <action issue="VFS-688" dev="ggregory" type="update">
+        [SFTP] Update jsch from 0.1.54 to 0.1.55.
+      </action>
+      <action issue="VFS-677" dev="ggregory" type="add" due-to="dingxbcn">
+        [SFTP] Add support for append mode.
+      </action>
+      <action issue="VFS-673" dev="ggregory" type="add" due-to="Oleksandr Lykhonosov">
+        [SFTP] Support com.jcraft.jsch.ConfigRepository (~/.ssh/config) with SftpFileSystemConfigBuilder and flag to load OpenSSHConfig.
+      </action>
+      <action issue="VFS-673" dev="ggregory" type="add" due-to="Daniel Banks">
+        DefaultFileSystemManager should implement AutoCloseable.
+      </action>
+      <action issue="VFS-637" dev="ggregory" type="add" due-to="Gary Gregory">
+        Zip files with legacy encoding and special characters let VFS crash.
+      </action>
+      <action issue="VFS-360" dev="ggregory" type="add" due-to="Woonsan Ko">
+        Add HTTP provider based on HttpComponents HttpClient 4.
+      </action>
+      <action issue="VFS-689" dev="ggregory" type="add" due-to="Gary Gregory">
+        org.apache.commons.vfs2.provider.http.HttpFileObject.getHeadMethod() does not release connection when an exception is thrown.
+      </action>
+    </release>
+    <release version="2.2" date="2017-10-06" description="New features and bug fix release.">
+      <action issue="VFS-642" dev="pschumacher" type="update" due-to="ilangoldfeld">
+        Upgrade to jcifs 1.3.17
+      </action>
+      <action issue="VFS-189" dev="kinow" type="fix">
+        Possible NPE in DefaultFileSystemManager.
+      </action>
+      <action issue="VFS-628" dev="ggregory" type="add">
+        Add a file inverter FileSelector: InvertIncludeFileSelector.
+      </action>
+      <action issue="VFS-612" dev="ggregory" type="update">
+        Update the platform requirement from Java 6 to Java 7.
+      </action>
+      <action issue="VFS-615" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.11 to 1.12.
+      </action>
+      <action issue="VFS-629" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.12 to 1.13.
+      </action>
+      <action issue="VFS-639" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.13 to 1.14.
+      </action>
+      <action issue="VFS-631" dev="ggregory" type="update">
+        Update from Apache Commons Net 3.5 to 3.6.
+      </action>
+      <action issue="VFS-632" dev="ggregory" type="update">
+        Update from JCraft jsch for SFTP/SSH from 0.1.53 to 0.1.54.
+      </action>
+      <action issue="VFS-621" dev="ggregory" type="update">
+        Add API VFS.setManager(FileSystemManager).
+      </action>
+      <action issue="VFS-643" dev="ggregory" type="update">
+        VFS should not log at the INFO level.
+      </action>
+      <action issue="VFS-620" dev="ggregory" type="fix" due-to="stevezhuang">
+        FileObject.moveTo(FileObject) API doesn't work well for a Linux FTP.
+      </action>
+      <action issue="VFS-291" dev="ggregory" type="fix">
+        ZIP archives are not properly closed after unzipping and cannot be deleted until the JVM exists.
+      </action>
+      <action issue="VFS-644" dev="ggregory" type="fix">
+        AbstractFileSystem.streamClosed() always sets openStream count to zero.
+      </action>
+    </release>
+    <release version="2.1" date="2016-05-19" description="New features and bug fix release.
+
+
+
+Please note that the Clirr report shows several errors.
+
+These may affect source compatibility.
+
+However they should not affect binary compatibility, as explained below.
+
+
+
+FileContent, FileName, FileObject, FileSystemManager, RandomAccessContent:
+
+The above interfaces have been updated to add new methods.
+
+This does not affect binary compatibility; for details please see:
+
+https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.5.3-100
+
+The above changes may affect source compatibility.
+
+
+Changes to method parameters and return types in TarFileObject and TarFileSystem
+
+The original parameter/return types were the following:
+
+org.apache.commons.vfs2.provider.tar.TarEntry
+
+org.apache.commons.vfs2.provider.tar.TarInputStream
+
+The above were package protected, so any methods using them did not form part of the public API.
+
+Therefore source and binary compatibility is not affected.">
+<!--       <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
+<!--        [Local] Need an easy way to convert from a FileObject to a File. -->
+<!--       </action> -->
+<!-- START Might need to be moved to the next version -->
+     <action issue="VFS-607" dev="ggregory" type="update">
+        Update Apache Commons Compress from 1.10 to 1.11.
+     </action>
+     <action issue="VFS-608" dev="ggregory" type="update">
+        Update Apache Commons Net from 3.4 to 3.5.
+     </action>
+<!-- END Might need to be moved to the next version -->
+     <action issue="VFS-424" dev="ecki" type="fix">
+        Fix StandardFileSystemManager class loading so it works in a OSGi environment.
+     </action>
+      <action issue="VFS-490" dev="ecki" type="fix">
+        [vfsclassloader] Do not open folders with .jar extension. Adds tests.
+     </action>
+      <action issue="VFS-582" dev="ecki" type="fix">
+        [tests] revert rename of getTestDirectoryFile to make test classes more compatible for external providers.
+     </action>
+      <action issue="VFS-480" dev="ecki" type="fix">
+        Make startup of SoftRefsFileCache cleaner thread work and less racy to avoid leaks.
+     </action>
+      <action issue="VFS-549" dev="ecki" type="fix">
+        Use File.seperator instead of getProperty("file.separator").
+     </action>
+      <action issue="VFS-567" dev="ecki" type="fix" due-to="Antonio Petrelli">
+        [ftp] Ignore exceptions while QUIT/disconnect.
+     </action>
+      <action issue="VFS-572" dev="ecki" type="fix" due-to="Sandra Parsick">
+        [sftp] better documentation for knownhosts file option.
+     </action>
+      <action issue="VFS-574" dev="ecki" type="fix">
+        Ensure FileOpertionProviders are closed. Adds some testcases.
+        The error code for missing operations exceptions corrected: vfs.operation/operation-not-supported.error
+     </action>
+      <action issue="VFS-279" dev="ecki" type="fix" due-to="Didier Earith, Simon Legner">
+        [local] Avoid ClassCastException when replicating local files while OnCall caching is active.
+      </action>
+      <action issue="VFS-297" dev="joehni" type="fix" due-to="Kirill Safonov, Jimmy Praet">
+        [sftp] VSF fails to reuse FileSystem instances if FileSystemOptions contain
+        an array as value. Reported for SFTP using identities.
+      </action>
+      <action issue="VFS-198" dev="ecki" type="add" due-to="Andrew Franklin, Simon Legner">
+        [http] Make user agent configurable.
+      </action>
+      <action issue="VFS-202" dev="ecki" type="fix" due-to="Sergey Vladimirov, Simon Legner">
+        [http] Allow URLs responding with 405 to HEAD requests.
+      </action>
+      <action issue="VFS-490" dev="ecki" type="fix">
+        [hdfs] Make OSGi package imports for hdfs resolution=optional.
+        Removed all scopes from dependency management.
+      </action>
+      <action issue="VFS-560" dev="ecki" type="fix">
+        [http] avoid initial HEAD request to root of HttpFileSystem as it might be wrong context.
+      </action>
+      <action issue="VFS-236" dev="ecki" type="fix" due-to="Matt Casters">
+        [smb] Allow SMB to be used with no authentication.
+      </action>
+      <action issue="VFS-564" dev="ecki" type="fix" due-to="Dmitry Konstantinov">
+        Make some loggers static.
+      </action>
+      <action issue="VFS-555" dev="rwhitcomb" type="add">
+        [hdfs] Add the ability to specify an HDFS configuration file with HdfsFileSystemConfigBuilder.
+      </action>
+      <action issue="VFS-557" dev="ecki" type="fix">
+       [webdav][test] Create WebDav test directory in target/test. Avoid creating core/jackrabbit/tmp.
+       Logfiles of Jackrabbit are preserved when -DWebdavProviderTestCase.Debug=true is specified.
+      </action>
+      <action issue="VFS-558" dev="ecki" type="fix">
+       Make moveTo() and getParent() work with CacheStrategy.ON_CALL.
+       In case of FTP Provider it would lead otherwise to an UnsupportedOperationException.
+      </action>
+      <action dev="ecki" type="fix">
+       [sandbox] RACRandomAccessFile is now in org.apache.commons.vfs2.util package (so sandbox has only one overlapping package).
+      </action>
+      <action issue="VFS-530" dev="ecki" type="update" due-to="Dave Marion">
+       [hdfs] Use stable Apache Hadoop 2.6 dependencies.
+      </action>
+      <action dev="ecki" type="add">
+       [example] make VFS Shell print version and implement new 'info' command.
+      </action>
+      <action issue="VFS-552" dev="ecki" type="fix">
+       [sandbox] include vfs-providers.xml in JAR for dynamic registration of mime and smb providers.
+      </action>
+      <action issue="VFS-551" dev="ecki" type="fix" due-to="David Camilo Espitia Manrique">
+       Javadoc: make it clear that DefaultCryptor is only an obfuscation function.
+      </action>
+      <action issue="VFS-309" dev="ecki" type="fix">
+       DefaultFileContent will remove thread data whenever possible to avoid leaks.
+      </action>
+      <action issue="VFS-487" dev="ecki" type="fix" due-to="Dave Marion">
+       DefaultFileMonitor detects recreated files.
+      </action>
+      <action issue="VFS-523" dev="ecki" type="fix" due-to="Roger Whitcomb">
+       [HDFS] Make HdfsFileObject.equal use system hashcode/equals instead of
+       wrongly comparing file path only.
+      </action>
+      <action issue="VFS-544" dev="ecki" type="fix">
+       [Virtual] Allow virtual file systems and virtual file system provider
+       to be closed, to avoid memory leak.
+      </action>
+      <action issue="VFS-142" dev="ecki" type="fix" due-to="Ryan Boettcher">
+       Use ThreadLocal.remove() to clean out FileContentThreadData objects.
+      </action>
+      <action issue="VFS-545" dev="ecki" type="fix">
+       Make DefaultFilesCache remove reference to filesystem when it is cleared (closed).
+      </action>
+      <action issue="VFS-521" dev="ecki" type="fix">
+       [Ram][Tests] Make RAM provider test pass on Java 8
+       (JDK-8042377, self-suppression not permitted, MonitorOutputStream#close()).
+      </action>
+      <action issue="VFS-601" dev="ggregory" type="update">
+       Update Apache Commons Net from 3.3 to 3.4.
+      </action>
+      <action issue="VFS-602" dev="ggregory" type="update">
+       Update Apache Commons IO from 2.4 to 2.5.
+      </action>
+      <action issue="VFS-579" dev="ggregory" type="update">
+       Update Jsch from 0.1.51 to 0.1.53.
+      </action>
+      <action issue="VFS-542" dev="ggregory" type="update">
+       Update Jsch from 0.1.50 to 0.1.51.
+      </action>
+      <action issue="VFS-578" dev="ggregory" type="update">
+       Update Apache Commons Compress from 1.9 to 1.10.
+      </action>
+      <action issue="VFS-541" dev="ggregory" type="update">
+       Update Apache Commons Compress from 1.6 to 1.9.
+      </action>
+      <action issue="VFS-540" dev="ggregory" type="update">
+       Update Apache Commons Logging from 1.1.3 to 1.2.
+      </action>
+      <action issue="VFS-539" dev="ggregory" type="update">
+       Update Apache Commons Lang from 3.1 to 3.3.2.
+      </action>
+      <action issue="VFS-532" dev="ggregory" type="add" due-to="Gareth Daniel Smith">
+       [FTP] Allow configuring remoteVerificationEnabled on FTPClient instances.
+      </action>
+      <action issue="VFS-338" dev="ecki" type="fix" due-to="Daniel R.">
+       [Local][Tests] Avoid IndexOutOfBoundsException when validating local file URIs.
+      </action>
+      <action issue="VFS-526" dev="ecki" type="update">
+       [HDFS][Tests] Support HDFS testing on Windows (but keep profile "no-hdfs" enabled on Windows VFS-529).
+      </action>
+      <action issue="VFS-453" dev="ecki" type="update" due-to="Jiri Syrovy">
+       [HTTP][WEBDAV] Add file system options for connect and socket timeout.
+      </action>
+      <action issue="VFS-167" dev="ecki" type="update" due-to="Jimmy Praet">
+       [FTP] Allow Proxy support to file system options.
+      </action>
+      <action issue="VFS-520" dev="ecki" type="update">
+       Make Javadoc compatible with Java 8 tool.
+      </action>
+      <action issue="VFS-518" dev="ggregory" type="update" due-to="Roland Illig">
+        Documentation of FileSystemOptions should be more helpful.
+      </action>
+      <action issue="VFS-500" dev="ggregory" type="update" due-to="Bernd Eckenfels">
+        VFSClassLoader.findResources missing.
+      </action>
+      <action issue="VFS-514" dev="ggregory" type="update" due-to="Bernd Eckenfels">
+        [tests] PermissionsTests leaves unclean test directory.
+      </action>
+      <action issue="VFS-501" dev="ggregory" type="update" due-to="Yves Schumann">
+        Hide passwords from log/console output.
+      </action>
+      <action issue="VFS-496" dev="ggregory" type="update" due-to="Bernd Eckenfels">
+        Resource translation issues.
+      </action>
+      <action issue="VFS-494" dev="ggregory" type="update" due-to="Allen Xudong Cheng">
+        [SFTP] No support for SFTP servers with non Latin-1 file name encoding.
+      </action>
+      <action issue="VFS-368" dev="ggregory" type="update" due-to="Brendan Long">
+        [SFTP] Documentation implies that "userDirIsRoot" defaults to true.
+      </action>
+      <action issue="VFS-265" dev="ggregory" type="update" due-to="Scott Bjerstedt">
+        [FTP] Set user dir as root dir by default.
+      </action>
+      <action issue="VFS-489" dev="ggregory" type="fix" due-to="Bernd Eckenfels">
+        [tests] ProviderWriteTests#testListener does not fail cleanly.
+      </action>
+      <action issue="VFS-486" dev="ggregory" type="fix" due-to="Sam Haldane">
+        DefaultFileMonitor sleeps for twice the specified delay when checkPerRun > 0.
+      </action>
+      <action issue="VFS-484" dev="ggregory" type="update">
+        [SFTP] Update Jsch to 0.1.50 from 0.1.49.
+      </action>
+      <action issue="VFS-482" dev="ggregory" type="fix">
+        Wrong assertion messages in RAM provider test case.
+      </action>
+      <action issue="VFS-507" dev="ggregory" type="update">
+        Update to Apache Commons Collection 4.1 from 3.2.1 and use generics.
+      </action>
+      <action issue="VFS-476" dev="ggregory" type="update">
+        Update Apache Commons Logging to 1.1.3 from 1.1.2.
+      </action>
+      <action issue="VFS-475" dev="ggregory" type="update">
+        Update Apache Commons Net to 3.3 from 3.2.
+      </action>
+      <action issue="VFS-506" dev="ggregory" type="update">
+        [Tar][Bzip2] Update Apache Commons Compress to 1.6 from 1.5.
+      </action>
+      <action issue="VFS-471" dev="ggregory" type="update">
+        Update to Apache Commons Compress 1.5.
+      </action>
+      <action issue="VFS-469" dev="joehni" type="remove">
+        Remove unused dependency to javax.jcr:jcr.
+      </action>
+      <action issue="VFS-283" dev="joehni" type="update">
+        [SFTP] SFTP provider did not support passphrase-protected keys nor the exchange of a public key with
+        a requesting SFTP server. To support such triples (private key/passphrase/public key) instead of private
+        keys only, a new structure EntityInfo has been created. SftpFileSystemConfigBuilder has now the new
+        getter and setter methods getIdentityInfo and setIdentity info which replace the now deprecated methods
+        getIdentities and setIdentities.
+      </action>
+      <action issue="VFS-460" dev="joehni" type="fix">
+        Dependency to commons-compress set as optional.
+      </action>
+      <action issue="VFS-468" dev="joehni" type="add">
+        [FTPS] Add option for KeyManager (and TrustManager) to support FTPS servers that ask for the client certificate for authentication.
+      </action>
+      <action issue="VFS-464" dev="joehni" type="fix">
+        StaticUserAuthenticator should return only requested authentication data.
+      </action>
+      <action issue="VFS-463" dev="joehni" type="update">
+        FileSytemConfigBuilder supports system properties for the value of enum-based configuration entries.
+      </action>
+      <action issue="VFS-462" dev="joehni" type="update">
+        [FTPS] Deprecate FtpsFileSystemConfigBuilder.setFtpsType and FtpsFileSystemConfigBuilder.getFtpsType
+        in favor of FtpsFileSystemConfigBuilder.setFtpsMode and FtpsFileSystemConfigBuilder.getFtpsMode which
+        use new enum FtpsMode instead.
+      </action>
+      <action issue="VFS-461" dev="joehni" type="fix">
+        [FTP/FTPS] ConfigBuilder does not consider system properties for the value of SoTimeout and Encoding.
+      </action>
+      <action issue="VFS-412" dev="joehni" type="add" due-to="Jose Juan Montiel">
+        [FTPS] Add support for command to set the DataChannelProtectionLevel.
+      </action>
+      <action issue="VFS-459" dev="joehni" type="update">
+        [FTP/FTPS] Sent commands and the received answer is logged at debug level.
+      </action>
+      <action issue="VFS-458" dev="joehni" type="fix">
+        [FTPS] Provider missed functionality and bug fixes already available for the FTP provider.
+      </action>
+      <action issue="VFS-452" dev="ggregory" type="fix" due-to="Jean-Marc Borer">
+        [HTTP] HttpFileObject read/write attributes should reflect underlying FileSystem capabilities.
+      </action>
+      <action issue="VFS-285" dev="tn" type="fix" due-to="Kirill Safonov">
+        AbstractFileObject.getChildren() may corrupt its internal state if a filename
+        can not be resolved.
+      </action>
+      <action issue="VFS-450" dev="ggregory" type="fix" due-to="Dave Marion">
+        [HDFS] HDFSFileSystem.resolveFile() does not honor CacheStrategy.ON_RESOLVE.
+      </action>
+      <action issue="VFS-442" dev="ggregory" type="add" due-to="Dave Marion">
+        [HDFS] Add an HDFS FileSystem Provider.
+      </action>
+      <action issue="VFS-448" dev="ggregory" type="fix">
+        commons-vfs 2.0 JAR has flawed OSGi MANIFEST.MF.
+      </action>
+      <action issue="VFS-447" dev="ggregory" type="add">
+        [FTP/FTPS] Update Apache Commons Net to 3.2 from 3.1.
+      </action>
+      <action issue="VFS-445" dev="ggregory" type="add">
+        Add FileSystemManager.resolveFile(URI) and resolveFile(URL).
+      </action>
+      <action issue="VFS-440" dev="ggregory" type="add" due-to="bpiwowar">
+        [SFTP] Stream (e.g. netcat) proxy for Sftp file system (aka ProxyCommand).
+      </action>
+      <action issue="VFS-439" dev="ggregory" type="fix" due-to="pensecit">
+        StaticUserAuthenticator usage example wrong.
+      </action>
+      <action issue="VFS-437" dev="ggregory" type="fix" due-to="denniszhu, danttran, jpowang">
+        [FTP] StackOverFlowError getting the type of a directory with a symbolic link to a parent directory with the same name.
+      </action>
+      <action issue="VFS-435" dev="ggregory" type="fix" due-to="george scott">
+        FileSystemConfigBuilder does not use prefix for some system property lookups.
+      </action>
+      <action issue="VFS-434" dev="ggregory" type="fix">
+        FileSystemException should reuse IOException's chained exception.
+      </action>
+      <action issue="VFS-433" dev="ggregory" type="fix">
+        [WebDAV] Message "vfs.provider.webdav/propfind.error" is not defined.
+      </action>
+      <action issue="VFS-430" dev="ggregory" type="fix" due-to="antonin.stefanutti">
+        The SoftRefFilesCache class logs clear text password.
+      </action>
+      <action issue="VFS-432" dev="ggregory" type="add">
+        [HTTP][WebDAV] Allow HTTP follow redirect.
+      </action>
+      <action issue="VFS-431" dev="ggregory" type="add">
+        FileSystemOption does not implement toString().
+      </action>
+      <action issue="VFS-429" dev="ggregory" type="fix">
+        Remove extra FileSystem ivar in AbstractFileObject subclasses with generics.
+      </action>
+      <action issue="VFS-427" dev="ggregory" type="fix" due-to="awelynant">
+        [HTTP] NPE on HttpFileObject.getContent().getContentInfo().
+      </action>
+      <action issue="VFS-405" dev="ggregory" type="add" due-to="dwaszak">
+        Get/set the file permissions.
+      </action>
+      <action issue="VFS-457" dev="joehni" type="update">
+        Update test dependencies: sshd-core version 0.7.0 to 0.8.0; mina-core 2.0.4 to 2.0.7; junit 4.11 to 4.12; slf4j-* 1.5.5 to 1.5.11
+      </action>
+      <action issue="VFS-456" dev="joehni" type="update">
+        Use org.bouncycastel:bcprov-jdk16 instead of org.bouncycastle:bcprof-jdk15on since Java 1.6 is required.
+      </action>
+      <action issue="VFS-415" dev="ggregory" type="update">
+        Update VFS requirement to Java 1.6.
+      </action>
+      <action issue="VFS-426" dev="ggregory" type="add" due-to="daniel.bergholm">
+        HTTP URL query string not part of cache key.
+      </action>
+      <action issue="VFS-425" dev="ggregory" type="add">
+        Add API FileObject.isExecutable().
+      </action>
+      <action issue="VFS-421" dev="ggregory" type="add" due-to="bpiwowar">
+        [SFTP] Configure a custom Identity Repository.
+      </action>
+      <action issue="VFS-418" dev="ggregory" type="update">
+        Update to Apache Commons Compress 1.4.1.
+      </action>
+      <action issue="VFS-417" dev="ggregory" type="add">
+        [RAM][Local] Add and implement new API: RandomAccessContent.setLength(long).
+      </action>
+      <action issue="VFS-406" dev="ggregory" type="fix" due-to="mp1">
+        [RAM] resize throws ArrayOOBE when shrinking in size.
+      </action>
+      <action issue="VFS-321" dev="ggregory" type="update" due-to="sebb">
+        AbstractFileObject sometimes uses getFileSystem() and sometimes references "fs" field directly.
+      </action>
+      <action issue="VFS-327" dev="ggregory" type="update" due-to="sebb">
+        UriParser.canonicalizePath possible NPE for filenameParser.
+      </action>
+      <action issue="VFS-353" dev="ggregory" type="fix" due-to="bergander">
+        [FTP] Client should call logout before disconnecting.
+      </action>
+      <action issue="VFS-408" dev="ggregory" type="fix" due-to="anilm2@yahoo.com">
+        CompressedFileFileObject Exception thrown when container file has no extension.
+      </action>
+      <action issue="VFS-400" dev="ggregory" type="add">
+        Add a FileSelector based on regular expressions.
+      </action>
+      <action issue="VFS-258" dev="ggregory" type="fix" due-to="mzawirski">
+        [SFTP][RAM] Unsafe casting to AbstractFileObject subclasses in doRename().
+      </action>
+      <action issue="VFS-254" dev="ggregory" type="add" due-to="mzawirski">
+        Let FileObject and FileContent extend java.io.Closeable.
+      </action>
+      <action issue="VFS-413" dev="ggregory" type="fix" due-to="polivenok">
+        [FTP] No support for FTP servers with non Latin-1 control encoding.
+      </action>
+      <action issue="VFS-252" dev="ggregory" type="add">
+        [SMB] SmbFileObject does not support setLastModifiedTime while jcifs supports it.
+      </action>
+      <action issue="VFS-200" dev="ggregory" type="fix">
+        [SFTP] Failure when files are very large.
+      </action>
+      <action issue="VFS-416" dev="joehni" type="update">
+        [SFTP] Update Jsch to version 0.1.49 from 0.1.47.
+      </action>
+      <action issue="VFS-296" dev="ggregory" type="fix" due-to="andreasp">
+        [FTP] FTP socket timeout setting doesn't work if connect hangs.
+      </action>
+      <action issue="VFS-313" dev="ggregory" type="add" due-to="bdavis@saintandreas.org">
+        [FTP] Configuration does not include option for setting socket timeout.
+      </action>
+      <action issue="VFS-414" dev="ggregory" type="add">
+        [FTP] Add config API to set the file type.
+      </action>
+      <action issue="VFS-182" dev="ggregory" type="add">
+        [FTP] Usage of FTP with heterogeneous FTP server (possibility of using Ascii file type).
+      </action>
+      <action issue="VFS-395" dev="ggregory" type="update">
+        [POM] Remove maven-scm-* dependencies.
+      </action>
+      <action issue="VFS-411" dev="ggregory" type="update">
+        [SFTP] Update Jsch to version 0.1.47 from 0.1.46.
+      </action>
+      <action issue="VFS-410" dev="ggregory" type="fix" due-to="mstockhammer">
+        [SFTP] SftpFileObject getInputStream(long) reads the whole file into memory.
+      </action>
+      <action issue="VFS-409" dev="ggregory" type="update">
+        Update Apache Commons Compress to 1.4 from 1.3.
+      </action>
+      <action issue="VFS-407" dev="ggregory" type="fix" due-to="mp1">
+        [RAM] Reading a RAM FileSystem file fails because it never returns EOF -1.
+      </action>
+      <action issue="VFS-404" dev="ggregory" type="update">
+        [FTP][FTPS] Update Apache Commons Net to 3.1 from 3.0.1.
+      </action>
+      <action issue="VFS-402" dev="ggregory" type="update">
+        [WebDAV] Update Apache Jackrabbit 1.5.2 to 1.6.5.
+      </action>
+      <action issue="VFS-401" dev="ggregory" type="update">
+        Update JSch to 0.1.46 from 0.1.45 for the SFTP provider.
+      </action>
+      <action issue="VFS-392" dev="ggregory" type="update">
+        Build tests WebDAV file system with an embedded WebDAV server (Apache Jackrabbit).
+      </action>
+      <action issue="VFS-391" dev="ggregory" type="update">
+        Build tests URL HTTP file system with an embedded HTTP server (Apache HttpComponent Core).
+      </action>
+      <action issue="VFS-390" dev="ggregory" type="update">
+        Use variable argument list in org.apache.commons.vfs2.util.Messages instead of Object[].
+      </action>
+      <action issue="VFS-389" dev="ggregory" type="update">
+        Use variable argument lists in FileSystemException instead of Object[]s.
+      </action>
+      <action issue="VFS-388" dev="ggregory" type="update">
+        Build tests SFTP file system with an embedded SFTP server (Apache MINA).
+      </action>
+      <action issue="VFS-387" dev="ggregory" type="update">
+        Build tests FTP file system with an embedded FTP server (Apache MINA).
+      </action>
+      <action issue="VFS-386" dev="ggregory" type="update">
+        Build tests HTTP file system with an embedded HTTP server (Apache HttpComponent Core).
+      </action>
+      <action issue="VFS-385" dev="ggregory" type="update">
+        Add HTTP status code to HTTP file provider exception messages when available.
+      </action>
+      <action issue="VFS-384" dev="ggregory" type="update">
+        Update Apache Commons Net to 3.0.1 from 2.2 for FTP and SFTP providers.
+      </action>
+      <action issue="VFS-383" dev="ggregory" type="update">
+        Update JSch to 0.1.45 from 0.1.42 for the SFTP provider.
+      </action>
+      <action issue="VFS-382" dev="ggregory" type="fix">
+        SFTP getChildren() does not fail when called on a file.
+      </action>
+      <action issue="VFS-381" dev="ggregory" type="add">
+        Iterate over a FileObject using the Java "foreach" statement, to provide all descendents of a FileObject.
+      </action>
+      <action issue="VFS-380" dev="ggregory" type="fix">
+        FTP connect.error message used instead of SFTP connect.error message.
+      </action>
+      <action issue="VFS-379" dev="ggregory" type="update">
+        Replace custom BZIP2 code with Apache Commons Compress 1.3.
+      </action>
+      <action issue="VFS-378" dev="ggregory" type="fix">
+        Tar error message are missing from resource file.
+      </action>
+      <action issue="VFS-377" dev="ggregory" type="update">
+        Replace custom TAR code with Apache Commons Compress 1.3.
+      </action>
+      <action issue="VFS-375" dev="ggregory" type="update">
+        Upgrade to Apache Commons Compress 1.3 from 1.2.
+      </action>
+      <action issue="VFS-374" dev="ggregory" type="fix">
+        Incorrect lazy initialization of static field org.apache.commons.vfs2.util.Messages.resources in org.apache.commons.vfs2.util.Messages.findMessage(String)Add FileContent write APIs.
+      </action>
+      <action issue="VFS-373" dev="ggregory" type="add">
+        Add FileContent write APIs.
+      </action>
+      <action issue="VFS-372" dev="ggregory" type="add">
+        Add constructors FileDepthSelector() and FileDepthSelector(int).
+      </action>
+      <action issue="VFS-371" dev="ggregory" type="add">
+        Add FileObject API deleteAll().
+      </action>
+      <action issue="VFS-370" dev="ggregory" type="add">
+        Add a FileExtensionSelector class.
+      </action>
+      <action issue="VFS-367" dev="ggregory" type="add">
+        Add APIs FileObject isFile(), FileObject isFolder(), and FileName isFile().
+      </action>
+      <action issue="VFS-366" dev="ggregory" type="update">
+        Can't sort a List of FileObject's, FileObject to implement Comparable&lt;FileObject&gt;.
+      </action>
+      <action issue="VFS-341" dev="rgoers" type="update" due-to="Rajika Kumarasiri">
+        Enable logging of JSch using the Commons Logging Log object in SftpClientFactory.
+      </action>
+      <action issue="VFS-355" dev="rgoers" type="fix" due-to="Miroslav Pokorny">
+        The read method of RamFileRandomAccessContent's input stream does not return -1 at eof.
+      </action>
+      <action issue="VFS-356" dev="rgoers" type="fix">
+        Throw an IOException if an attempt is made to seek to a position before the start of the file.
+      </action>
+      <action issue="VFS-359" dev="rgoers" type="fix" due-to="Miroslav Pokorny">
+        Don't delete a RamFileObject if it is open.
+      </action>
+      <action issue="VFS-352" dev="rgoers" type="fix">
+        ZipFileSystem now uses an internal Map as a cache for all the files in the zip archive.
+      </action>
+      <action issue="VFS-351" dev="rgoers" type="fix" due-to="John Backstrand">
+        Chain the SftpException in the FileSystemException.
+      </action>
+      <action issue="VFS-361" dev="rgoers" type="update">
+        Upgrade commons collections version to 3.2.1.
+      </action>
+      <action issue="VFS-325" dev="rgoers" type="fix" due-to="Larry Reeve">
+        Allow # character in file names.
+      </action>
+      <action issue="VFS-335" dev="rgoers" type="fix">
+        Use atomic variables in MonitorInputStream.
+      </action>
+      <action issue="VFS-364" dev="rgoers" type="fix">
+        Check the href in the response for just a path in addition to a full uri.
+      </action>
+    </release>
+    <release version="2.0" date="2011-08-24" description="Backwards incompatible update of Commons VFS to Java 5">
+      <action issue="VFS-348" dev="rgoers" type="fix" due-to="Stefan Bodewig">
+        Update the version of commons-net.
+      </action>
+      <action issue="VFS-230" dev="rgoers" type="fix">
+        Documented FileSystem capabilities on the web site.
+      </action>
+      <action issue="VFS-337" dev="rgoers" type="fix">
+        AbstractFileObject and classes that extend from it use AbstractFileName in the constructor and in
+        the createFile method.
+      </action>
+       <action issue="VFS-245" dev="rgoers" type="fix">
+        AbstractFileName is not immutable as it should be. equals(), hashcode() and compareTo() have been modified
+        to return the same results regardless of whether the FileType is changed.
+      </action>
+      <action issue="VFS-334" dev="sebb" type="fix">
+        DefaultFileSystemConfigBuilder.getConfigClass() returns DefaultFileSystemConfigBuilder.class which is not a FileSystem
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-305" due-to="Tom">
+        Add encoding option to FTP provider.
+      </action>
+       <action dev="rgoers" type="fix" issue="VFS-315" due-to="David Hausladen">
+        Fix potential NullPointerException if the DavProperty is null or contains null values.
+      </action>
+       <action dev="rgoers" type="fix" issue="VFS-316" due-to="David Hausladen">
+        Add option for preemptive authentication for HTTP based protocols.
+      </action>
+       <action dev="rgoers" type="fix" issue="VFS-322" due-to="Curtis Boyden">
+        Allow tar files that contain files over 2GB in size.
+      </action>
+       <action dev="rgoers" type="fix" issue="VFS-324" due-to="sebb">
+        Clear the cache in RamFileSystem and the children in RamFileData.
+      </action>
+      <action dev="sebb" type="fix" issue="VFS-319">
+        Typo in FtpsFileSystemConfigBuilder.setFtpsType
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-227" due-to="Sergey Vladimirov">
+        InputStream and RandomAccessContent memory leak in FileContentThreadData
+      </action>
+      <action dev="rgoers" type="update" issue="VFS-263" due-to="Ingo Maas">
+        WebdavFileObject does not implement doSetAttribute()
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-259" due-to="Marek Zawirski">
+        Http and Webdav FIleContentInfoFactory: undress to AbstractFileObject before casting
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-261" due-to="Simon Olofsson">
+        WebDAV upload corrupts binary files
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-276" due-to="Vince Bonfanti">
+        add ProviderTestConfig.getDefaultFileSystemManager() method
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-282" due-to="Alexey">
+        SftpFileProvider and SftpFileSystemConfigBuilder can't change ssh authentication methods
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-269" due-to="Marek Zawirski">
+        HttpFileObject: unsupported content over 2GB length
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-287" due-to="Mircea-Eugen Ionica">
+        LocalFileName objects are not released from AbstractFileSystem.listenerMap when all listeners are removed.
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-216" due-to="Reetu Mutti">
+        The FTP Configuration includes an option to set a timeout for the data connection, but not for the socket
+        timeout. This is a problem, as idle sockets can cause your download to hang forever and never timeout.
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-289" due-to="Kirill Safonov">
+        FTP connection is not released If exception is thrown out of FtpFileObject.doGetOutputStream().
+      </action>
+      <action dev="rgoers" type="fix" issue="VFS-286" due-to="Kirill Safonov">
+        SftpFileObject.doListChildrenResolved() changes the working dir before doing ChannelSftp.ls() call.
+        If ls() throws an exception, the current directory is not reset. All the subsequent operations that rely on the
+        current dir will fail trying to change into nonexistent directory.
+      </action>
+      <action dev="jcarman" type="add" issue="VFS-264" due-to="Scott Bjerstedt">
+        Add FTPS provider.
+      </action>
+      <action dev="rgoers" type="add" issue="VFS-244">
+        Rename HttpRandomAccesContent to HttpRandomAccessContent.
+      </action>
+    </release>
+  </body>
+</document>