[jboss-cvs] JBossAS SVN: r78113 - in projects/vfs/trunk/src: test/java/org/jboss/test/virtual/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Sep 5 19:31:05 EDT 2008
Author: mstruk
Date: 2008-09-05 19:31:05 -0400 (Fri, 05 Sep 2008)
New Revision: 78113
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java
Log:
JBVFS-57 Carlo's patch
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2008-09-05 22:02:27 UTC (rev 78112)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipStreamWrapper.java 2008-09-05 23:31:05 UTC (rev 78113)
@@ -29,7 +29,6 @@
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Enumeration;
@@ -170,10 +169,21 @@
while(it.hasNext())
{
InMemoryFile memFile = it.next();
- if (memFile.entry.getName().startsWith(path))
+ ZipEntry oldEntry = memFile.entry;
+ if (oldEntry.getName().startsWith(path))
{
- zout.putNextEntry(memFile.entry);
- zout.write(memFile.fileBytes);
+ String newName = oldEntry.getName().substring(path.length());
+ if(newName.length() == 0)
+ continue;
+
+ ZipEntry newEntry = new ZipEntry(newName);
+ newEntry.setComment(oldEntry.getComment());
+ newEntry.setTime(oldEntry.getTime());
+ newEntry.setSize(oldEntry.getSize());
+ newEntry.setCrc(oldEntry.getCrc());
+ zout.putNextEntry(newEntry);
+ if (oldEntry.isDirectory() == false)
+ zout.write(memFile.fileBytes);
}
}
zout.close();
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java 2008-09-05 22:02:27 UTC (rev 78112)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java 2008-09-05 23:31:05 UTC (rev 78113)
@@ -26,6 +26,7 @@
import java.net.URL;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
@@ -268,20 +269,23 @@
"web_pkg_scope/servlet/",
"web_pkg_scope/entity/Account.class",
"web_pkg_scope/servlet/JpaServlet.class",
- "META-INF/",
+ // JarInputStream never returns META-INF/ entry - it just skips it
+ // "META-INF/",
"META-INF/persistence.xml"
};
JarInputStream jis = new JarInputStream( classesURL.openStream() );
HashSet<String> missingEntries = new HashSet<String>(Arrays.asList(entryNames));
- int count = 0;
+ Set<String> excess = new HashSet<String>();
JarEntry jarEntry;
while((jarEntry = jis.getNextJarEntry()) != null)
{
String name = jarEntry.getName();
- missingEntries.remove(name);
- count ++;
+ boolean removed = missingEntries.remove(name);
+ if(!removed)
+ excess.add(name);
}
assertEquals("No missing entries: "+missingEntries, 0, missingEntries.size());
+ assertEquals("Excess entries: " + excess, 0, excess.size());
classes.closeStreams();
}
More information about the jboss-cvs-commits
mailing list