[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