You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Mick Woo (Jira)" <ji...@apache.org> on 2020/09/29 13:52:00 UTC
[jira] [Updated] (VFS-789)
org.apache.commons.vfs2.provider.http.HttpFileObject.doGetInputStream()
does not release connection when an exception is thrown, such as the http
method return status code is not 200
[ https://issues.apache.org/jira/browse/VFS-789?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mick Woo updated VFS-789:
-------------------------
Description:
org.apache.commons.vfs2.provider.http.HttpFileObject.doGetInputStream() does not release connection when an exception is thrown, such as the http method return status code is not 200.
When throw the FileSystemException, the connect was not released.
{code:java}
// org.apache.commons.vfs2.provider.http.HttpFileObject
// version 2.6.0
@Override
protected InputStream doGetInputStream(final int bufferSize) throws Exception {
final GetMethod getMethod = new GetMethod();
setupMethod(getMethod);
final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
if (status == HttpURLConnection.HTTP_NOT_FOUND) {
throw new FileNotFoundException(getName());
}
if (status != HttpURLConnection.HTTP_OK) {
throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
}
return new HttpInputStream(getMethod, bufferSize);
}
{code}
{code:java}
// org.apache.commons.vfs2.provider.http.HttpFileObject
// version 2.3
@Override
protected InputStream doGetInputStream() throws Exception {
final GetMethod getMethod = new GetMethod();
setupMethod(getMethod);
final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
if (status == HttpURLConnection.HTTP_NOT_FOUND) {
throw new FileNotFoundException(getName());
}
if (status != HttpURLConnection.HTTP_OK) {
throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
}
return new HttpInputStream(getMethod);
}
{code}
was:
rg.apache.commons.vfs2.provider.http.HttpFileObject.doGetInputStream() does not release connection when an exception is thrown, such as the http method return status code is not 200.
When throw the FileSystemException, the connect was not released.
{code:java}
// org.apache.commons.vfs2.provider.http.HttpFileObject
// version 2.6.0
@Override
protected InputStream doGetInputStream(final int bufferSize) throws Exception {
final GetMethod getMethod = new GetMethod();
setupMethod(getMethod);
final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
if (status == HttpURLConnection.HTTP_NOT_FOUND) {
throw new FileNotFoundException(getName());
}
if (status != HttpURLConnection.HTTP_OK) {
throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
}
return new HttpInputStream(getMethod, bufferSize);
}
{code}
{code:java}
// org.apache.commons.vfs2.provider.http.HttpFileObject
// version 2.3
@Override
protected InputStream doGetInputStream() throws Exception {
final GetMethod getMethod = new GetMethod();
setupMethod(getMethod);
final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
if (status == HttpURLConnection.HTTP_NOT_FOUND) {
throw new FileNotFoundException(getName());
}
if (status != HttpURLConnection.HTTP_OK) {
throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
}
return new HttpInputStream(getMethod);
}
{code}
> org.apache.commons.vfs2.provider.http.HttpFileObject.doGetInputStream() does not release connection when an exception is thrown, such as the http method return status code is not 200
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: VFS-789
> URL: https://issues.apache.org/jira/browse/VFS-789
> Project: Commons VFS
> Issue Type: Bug
> Affects Versions: 2.4, 2.3, 2.4.1, 2.5.0, 2.6.0
> Reporter: Mick Woo
> Priority: Major
> Fix For: 2.4, 2.3, 2.4.1, 2.5.0, 2.6.0
>
>
> org.apache.commons.vfs2.provider.http.HttpFileObject.doGetInputStream() does not release connection when an exception is thrown, such as the http method return status code is not 200.
> When throw the FileSystemException, the connect was not released.
> {code:java}
> // org.apache.commons.vfs2.provider.http.HttpFileObject
> // version 2.6.0
> @Override
> protected InputStream doGetInputStream(final int bufferSize) throws Exception {
> final GetMethod getMethod = new GetMethod();
> setupMethod(getMethod);
> final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
> if (status == HttpURLConnection.HTTP_NOT_FOUND) {
> throw new FileNotFoundException(getName());
> }
> if (status != HttpURLConnection.HTTP_OK) {
> throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
> }
> return new HttpInputStream(getMethod, bufferSize);
> }
> {code}
> {code:java}
> // org.apache.commons.vfs2.provider.http.HttpFileObject
> // version 2.3
> @Override
> protected InputStream doGetInputStream() throws Exception {
> final GetMethod getMethod = new GetMethod();
> setupMethod(getMethod);
> final int status = getAbstractFileSystem().getClient().executeMethod(getMethod);
> if (status == HttpURLConnection.HTTP_NOT_FOUND) {
> throw new FileNotFoundException(getName());
> }
> if (status != HttpURLConnection.HTTP_OK) {
> throw new FileSystemException("vfs.provider.http/get.error", getName(), Integer.valueOf(status));
> }
> return new HttpInputStream(getMethod);
> }
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)