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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Jun 29 17:27:29 EDT 2008


Author: mstruk
Date: 2008-06-29 17:27:28 -0400 (Sun, 29 Jun 2008)
New Revision: 75186

Modified:
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JAREntryTestCase.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/URLExistsUnitTestCase.java
   projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java
Log:
JBVFS-38, fixes for jar entries iteration corrupted on linux + fixed file locking issues

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java	2008-06-29 21:22:00 UTC (rev 75185)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/HDScannerTestCase.java	2008-06-29 21:27:28 UTC (rev 75186)
@@ -39,17 +39,17 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision:$
  */
-public class HDScannerTestCase extends OSAwareVFSTest
+public class HDScannerTestCase extends AbstractVFSTest
 {
 
    public HDScannerTestCase(String name, boolean forceCopy)
    {
-      super(name, forceCopy, true);
+      super(name, forceCopy, false);
    }
 
    public HDScannerTestCase(String name)
    {
-      super(name, true, true);
+      super(name, true, false);
    }
 
    public void testDeleteWhileScanning()
@@ -87,7 +87,8 @@
          archive.setLastModified(System.currentTimeMillis());
       }
       getLog().info("Trying to remove: "+archive.getAbsolutePath());
-      assertTrue(archive.delete());
+      assertTrue(archiveVF.delete());
+      assertFalse(archiveVF.exists());
       getLog().info("Deleted deployed archive");
       scanner.stop();
    }

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java	2008-06-29 21:22:00 UTC (rev 75185)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARCacheUnitTestCase.java	2008-06-29 21:27:28 UTC (rev 75186)
@@ -39,16 +39,16 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision$
  */
-public class JARCacheUnitTestCase extends OSAwareVFSTest
+public class JARCacheUnitTestCase extends AbstractVFSTest
 {
    public JARCacheUnitTestCase(String name)
    {
-      super(name);
+      super(name, false, false);
    }
 
    protected JARCacheUnitTestCase(String name, boolean forceCopy)
    {
-      super(name, forceCopy);
+      super(name, forceCopy, false);
    }
 
    public static Test suite()
@@ -69,20 +69,19 @@
          out.flush();
          out.close();
       }
-      
+
       // Verify it via VFS
       File root = new File(".");
+      VirtualFile vf = VFS.getVirtualFile(root.toURL(), "test.jar");
       {
-         VirtualFile vf = VFS.getVirtualFile(root.toURL(), "test.jar");
-//         System.err.println("lastModified = " + vf.getLastModified());
          VirtualFile manifestFile = vf.findChild("META-INF/MANIFEST.MF");
          Manifest manifest = new Manifest(manifestFile.openStream());
          String actual = manifest.getMainAttributes().getValue("test");
          assertEquals("v1", actual);
       }
       
-      // If we don't delete, VFS will give ZIP errors (related issue?)
-      assertTrue("test file deleted: " + testFile, testFile.delete() || isWindowsOS());
+      // If we don't delete, we get a corrupt zip entries iterator on linux
+      assertTrue("test file deleted: " + testFile, vf.delete());
       
       // Create a new test.jar with manifest v2
       {
@@ -104,15 +103,19 @@
       
       // Verify the manifest the VFS way
       {
-         VirtualFile vf = VFS.getVirtualFile(root.toURL(), "test.jar");
-         // Note that the modification date has not changed according to VFS
-//         System.err.println("lastModified = " + vf.getLastModified());
-//         System.err.println("modified = " + vf.hasBeenModified());
-       
          VirtualFile manifestFile = vf.findChild("META-INF/MANIFEST.MF");
          Manifest manifest = new Manifest(manifestFile.openStream());
          String actual = manifest.getMainAttributes().getValue("test");
          assertEquals("VFS found the wrong manifest", "v2", actual);
       }
+
+      // Verify again - through new context
+      {
+         vf = VFS.getVirtualFile(root.toURL(), "test.jar");
+         VirtualFile manifestFile = vf.findChild("META-INF/MANIFEST.MF");
+         Manifest manifest = new Manifest(manifestFile.openStream());
+         String actual = manifest.getMainAttributes().getValue("test");
+         assertEquals("VFS found the wrong manifest", "v2", actual);
+      }
    }
 }

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JAREntryTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JAREntryTestCase.java	2008-06-29 21:22:00 UTC (rev 75185)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JAREntryTestCase.java	2008-06-29 21:27:28 UTC (rev 75186)
@@ -37,16 +37,16 @@
  *
  * @author Ales.Justin at jboss.org
  */
-public class JAREntryTestCase extends OSAwareVFSTest
+public class JAREntryTestCase extends AbstractVFSTest
 {
    public JAREntryTestCase(String name)
    {
-      super(name);
+      super(name, false, false);
    }
 
    protected JAREntryTestCase(String name, boolean forceCopy)
    {
-      super(name, forceCopy);
+      super(name, forceCopy, false);
    }
 
    public static Test suite()
@@ -78,6 +78,9 @@
       List<VirtualFile> children = metainf.getChildren();
       assertEquals(1, children.size());
 
+      // delete zipFile before recreating it otherwise you get a corrupt entries iterator on linux
+      assertTrue(root.delete());
+      
       fos = new FileOutputStream(tmp);
       jos = new JarOutputStream(fos, mf);
       try

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/URLExistsUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/URLExistsUnitTestCase.java	2008-06-29 21:22:00 UTC (rev 75185)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/URLExistsUnitTestCase.java	2008-06-29 21:27:28 UTC (rev 75186)
@@ -37,7 +37,7 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
-public class URLExistsUnitTestCase extends OSAwareVFSTest
+public class URLExistsUnitTestCase extends AbstractVFSTest
 {
    public URLExistsUnitTestCase(String name)
    {
@@ -70,7 +70,7 @@
       {
          in.close();
       }
-      assertTrue(tmp.getAbsolutePath()+" deleted", tmp.delete() || isWindowsOS());
+      assertTrue(tmp.getAbsolutePath()+" deleted", tmp.delete());
       conn = tmpURL.openConnection();
       lastModified = conn.getLastModified();
       System.out.println("lastModified after delete, "+lastModified);
@@ -94,14 +94,28 @@
 
       URL tmpURL = new URL("jar:"+tmp.toURL()+"!/");
       URLConnection conn = tmpURL.openConnection();
+      conn.setUseCaches(false);
+
       long lastModified = conn.getLastModified();
+
+      // the following ugly block of code is
+      // the only known way to force jar file lock release on Windows
+      // and it's not even 100% reliable
+      conn = null;
+      tmpURL = null;
+      System.gc();
+      Thread.sleep(500);
+      System.gc();
+
       System.out.println("lastModified, "+lastModified);
       assertNotSame("lastModified", 0, lastModified);
-      assertTrue(tmp.getAbsolutePath()+" deleted", tmp.delete() || isWindowsOS());
+      assertTrue(tmp.getAbsolutePath()+" deleted", tmp.delete());
+
+      tmpURL = new URL("jar:"+tmp.toURL()+"!/");
       conn = tmpURL.openConnection();
       lastModified = conn.getLastModified();
       System.out.println("lastModified after delete, "+lastModified);
       // TODO - fix back
-      assertTrue("lastModified", 0 == lastModified || isWindowsOS());
+      assertTrue("lastModified", 0 == lastModified);
    }
 }

Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java	2008-06-29 21:22:00 UTC (rev 75185)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java	2008-06-29 21:27:28 UTC (rev 75186)
@@ -89,15 +89,11 @@
       }
       os.close();
 
-      // use noReaper so that the underlying file is not locked
-      // when we try to delete it
-      String jarUrl = tmpJar.toURL().toString() + "?noReaper=true";
-      ZipEntryContext context = new ZipEntryContext(new URL(jarUrl));
+      ZipEntryContext context = new ZipEntryContext(tmpJar.toURL());
       assertTrue("context.getRoot().exists()", context.getRoot().exists());
 
-      boolean isDeleted = tmpJar.delete();
+      boolean isDeleted = context.getRoot().delete(1000);
       assertTrue("delete tmp file: " + tmpJar, isDeleted);
-
       assertFalse("context.getRoot().exists()", context.getRoot().exists());
    }
 




More information about the jboss-cvs-commits mailing list