[jboss-jira] [JBoss JIRA] (JBVFS-166) Deployment archives that are symlinks do not get cached properly when jboss.vfs.forceCanonical is set to 'true'
Ales Justin (JIRA)
jira-events at lists.jboss.org
Mon May 7 09:30:20 EDT 2012
[ https://issues.jboss.org/browse/JBVFS-166?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12690745#comment-12690745 ]
Ales Justin commented on JBVFS-166:
-----------------------------------
@Chris: how exactly do you reproduce this?
This is my test atm:
public void testAppAsLink() throws Exception
{
if (supportSymlinks() == false)
return;
URL dir = getResource("/vfs/symlink");
CombinedVFSCache cache = new CombinedVFSCache();
VFSCacheFactory.setInstance(cache);
cache.setPermanentRoots(Collections.<URL, ExceptionHandler>singletonMap(dir, null));
VirtualFile root = VFS.getRoot(dir);
VirtualFile app = root.getChild("app.jar");
VirtualFile clazz = app.getChild("org/jboss/test/vfs/support/CommonClass.class");
Assert.assertNotNull(clazz);
URL url = clazz.toURL();
VirtualFile vf1 = VFS.getRoot(url);
Assert.assertNotNull(vf1);
VirtualFile vf2 = VFS.getRoot(url);
Assert.assertNotNull(vf2);
}
Skywalker:symlink alesj$ ls -la
total 8
drwxr-xr-x 3 alesj staff 102 May 7 15:16 .
drwxr-xr-x 7 alesj staff 238 May 7 14:41 ..
lrwxr-xr-x 1 alesj staff 17 May 7 15:16 app.jar -> ../test/outer.jar
> Deployment archives that are symlinks do not get cached properly when jboss.vfs.forceCanonical is set to 'true'
> ---------------------------------------------------------------------------------------------------------------
>
> Key: JBVFS-166
> URL: https://issues.jboss.org/browse/JBVFS-166
> Project: JBoss VFS
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 2.2.0.GA
> Reporter: Mike Clark
> Assignee: Ales Justin
>
> When a deployment, such as an .ear file, is a symlink and the jboss.vfs.forceCanonical property is set to "true" to address JBVFS-137, the deployment fails to be properly cached leading to an ever increasing vfs-nested.tmp directory.
> JBVFS-137 addresses the problem that permanentRoots in the VFSCache get set according to their canonical path by the URL PropertyEditor. Without the fix, if the deployment directory is a symlink, it will be stored in the cache using a different path than lookups will use. To correct this, when checking for items in the cache, the canonical path must be used, or else there will not be a match. Setting the jboss.vfs.forceCanonical property enables conversion of the deployment's path to a canonical path for this purpose.
> However, in the case of a deployment that is a symbolic link within the deploy directory (i.e., someApp.ear is itself a symbolic link), there is no initial modification of the path to a canonical path. (Because the URL is not being set via a PropertyEditor.) So, it is stored based on the non-canonical path. But, with jboss.vfs.forceCanonical set to true, the lookup is based on the canonical path, which doesn't match.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list