[jboss-cvs] JBossAS SVN: r83078 - projects/vfs/trunk/src/main/java/org/jboss/virtual.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 19 10:40:08 EST 2009


Author: alesj
Date: 2009-01-19 10:40:08 -0500 (Mon, 19 Jan 2009)
New Revision: 83078

Modified:
   projects/vfs/trunk/src/main/java/org/jboss/virtual/VFS.java
   projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java
Log:
Remove from cache if file == root.

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/VFS.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/VFS.java	2009-01-19 14:40:08 UTC (rev 83077)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/VFS.java	2009-01-19 15:40:08 UTC (rev 83078)
@@ -27,13 +27,13 @@
 import java.util.List;
 
 import org.jboss.virtual.plugins.vfs.helpers.WrappingVirtualFileHandlerVisitor;
+import org.jboss.virtual.spi.ExceptionHandler;
 import org.jboss.virtual.spi.VFSContext;
 import org.jboss.virtual.spi.VFSContextFactory;
 import org.jboss.virtual.spi.VFSContextFactoryLocator;
 import org.jboss.virtual.spi.VirtualFileHandler;
-import org.jboss.virtual.spi.ExceptionHandler;
+import org.jboss.virtual.spi.cache.VFSCache;
 import org.jboss.virtual.spi.cache.VFSCacheFactory;
-import org.jboss.virtual.spi.cache.VFSCache;
 
 /**
  * Virtual File System
@@ -115,6 +115,31 @@
    }
 
    /**
+    * Cleanup any resources tied to this file.
+    * e.g. vfs cache
+    *
+    * @param file the file
+    */
+   static void cleanup(VirtualFile file)
+   {
+      try
+      {
+         VirtualFileHandler fileHandler = file.getHandler();
+         VFSContext context = fileHandler.getVFSContext();
+         VirtualFileHandler contextHandler = context.getRoot();
+         // the file is the context root, hence possible cache candidate
+         if (fileHandler.equals(contextHandler))
+         {
+            VFSCache cache = VFSCacheFactory.getInstance();
+            cache.removeContext(context);
+         }
+      }
+      catch (Exception ignored)
+      {
+      }
+   }
+
+   /**
     * Get the virtual file system for a root uri
     * 
     * @param rootURI the root URI

Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java	2009-01-19 14:40:08 UTC (rev 83077)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/VirtualFile.java	2009-01-19 15:40:08 UTC (rev 83078)
@@ -268,7 +268,14 @@
     */
    public void cleanup()
    {
-      getHandler().cleanup();
+      try
+      {
+         getHandler().cleanup();
+      }
+      finally
+      {
+         VFS.cleanup(this);
+      }
    }
 
    /**




More information about the jboss-cvs-commits mailing list