You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Bernd Eckenfels (JIRA)" <ji...@apache.org> on 2014/11/12 09:22:34 UTC
[jira] [Commented] (VFS-544) VirtualFileSystems leak
[ https://issues.apache.org/jira/browse/VFS-544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14207803#comment-14207803 ]
Bernd Eckenfels commented on VFS-544:
-------------------------------------
Given the fact we cannot register a VirtualFileProvider by scheme (and it does not implement AbstractFileProvider), I guess it is best to hardcode the closing of those objects in _closeFileSystem:
<pre> public void _closeFileSystem(final FileSystem filesystem)
{
if (filesystem instanceof VirtualFileSystem)
{
vfsProvider.closeFileSystem(filesystem);
return;
}
final FileProvider provider = providers.get(filesystem.getRootName().getScheme());
if (provider != null)
{
((AbstractFileProvider) provider).closeFileSystem(filesystem);
}
}
</pre>
And also making vfsProvider not final, so it can be constructed in init() and destroyed in close(). Will append a patch.
> VirtualFileSystems leak
> -----------------------
>
> Key: VFS-544
> URL: https://issues.apache.org/jira/browse/VFS-544
> Project: Commons VFS
> Issue Type: Bug
> Affects Versions: 2.0
> Reporter: Bernd Eckenfels
> Assignee: Bernd Eckenfels
> Labels: leak
> Fix For: 2.1
>
>
> When creating a org.apache.commons.vfs2.impl.VirtualFileSystem by org.apache.commons.vfs2.impl.VirtualFileProvider it is tracked as a component. But since VirtualFileProvider is not an AbstractFileProvider and not registered in providers it will never be closed by org.apache.commons.vfs2.impl.DefaultFileSystemManager._closeFileSystem(FileSystem). Also the final instance of VirtualFileProvider does not get closed when the DefaultFileSystemManager gets closed.
> VirtualFileSystem itself does not have critical resources, but its DelegatedFiles are cached so there should be a way to close them.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)