[jboss-cvs] JBossAS SVN: r74531 - in projects/vfs/trunk/src: main/java/org/jboss/virtual/plugins/context/file and 4 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jun 13 08:41:40 EDT 2008
Author: alesj
Date: 2008-06-13 08:41:40 -0400 (Fri, 13 Jun 2008)
New Revision: 74531
Added:
projects/vfs/trunk/src/test/resources/vfs/test/nested/
projects/vfs/trunk/src/test/resources/vfs/test/nested/nested.jar
projects/vfs/trunk/src/test/resources/vfs/test/nested/nested_copy.jar
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractVFSContext.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContextFactory.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARSerializationUnitTestCase.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java
Log:
Expose vfszip bug - unable to re-create virtual file from nested jar url.
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractVFSContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractVFSContext.java 2008-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/AbstractVFSContext.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -145,9 +145,9 @@
.append(":").append(rootUri.getPath());
if(parent != null)
{
- String pPathName = null;
+ String pPathName;
if(parent instanceof AbstractVirtualFileHandler)
- pPathName = ((AbstractVirtualFileHandler)parent).getLocalPathName();
+ pPathName = parent.getLocalPathName();
else
pPathName = parent.getPathName();
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java 2008-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/file/FileSystemContext.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -65,7 +65,6 @@
*/
public class FileSystemContext extends AbstractVFSContext
{
-
private static final Logger log = Logger.getLogger(ZipEntryContext.class);
/** true if forcing fallback to vfsjar from default vfszip */
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2008-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContext.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -196,7 +196,6 @@
*/
private void init(URL localRootURL, VirtualFileHandler peer, ZipWrapper zipWrapper) throws IOException, URISyntaxException
{
-
if (zipWrapper == null)
{
if (localRootURL == null)
@@ -709,7 +708,8 @@
try
{
super.finalize();
- zipSource.close();
+ if (zipSource != null)
+ zipSource.close();
}
catch (Throwable ignored)
{
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContextFactory.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContextFactory.java 2008-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/context/zip/ZipEntryContextFactory.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -21,9 +21,6 @@
*/
package org.jboss.virtual.plugins.context.zip;
-import org.jboss.virtual.plugins.context.AbstractContextFactory;
-import org.jboss.virtual.spi.VFSContext;
-
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
@@ -32,13 +29,15 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import org.jboss.virtual.plugins.context.AbstractContextFactory;
+import org.jboss.virtual.spi.VFSContext;
+
/**
* ContextFactory that keeps track of ZipEntryContexts
*
* @author <a href="strukelj at parsek.net">Marko Strukelj</a>
* @version $Revision: 1.0 $
*/
-
public class ZipEntryContextFactory extends AbstractContextFactory
{
/** registry of all ZipEntryContext instances */
@@ -75,7 +74,6 @@
String longestMatchingKey = null;
ZipEntryContext longestMatchingCtx = null;
-
for(Map.Entry<String, ZipEntryContext> ent : ctxCache.entrySet())
{
if(key.startsWith(ent.getKey()))
@@ -87,17 +85,12 @@
}
}
}
-
- ZipEntryContext ctx = null;
if(longestMatchingCtx != null)
- ctx = longestMatchingCtx;
+ return longestMatchingCtx;
- if(ctx != null)
- return ctx;
-
try
{
- ctx = new ZipEntryContext(rootURL);
+ return new ZipEntryContext(rootURL);
}
catch(URISyntaxException ex)
{
@@ -105,11 +98,6 @@
e.initCause(ex);
throw e;
}
-
- // ZipEntryContext registers newly created context with this factory
- // by calling registerContext() which puts a newly created context into ctxCache
-
- return ctx;
}
public static ZipEntryContextFactory getInstance()
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARSerializationUnitTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARSerializationUnitTestCase.java 2008-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARSerializationUnitTestCase.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -121,6 +121,7 @@
assertEquals("jar1", title1);
jar1DSMF.close();
}
+
/**
* JBVFS-17 test
* @throws Exception
@@ -156,7 +157,6 @@
jar1DSMF.close();
}
-/*
public void testLevelZips() throws Exception
{
URL rootURL = getResource("/vfs/test");
@@ -203,7 +203,6 @@
textThree = two.findChild("level3.zip/test3.txt");
testText(textThree);
}
-*/
protected void testText(VirtualFile file) throws Exception
{
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-06-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/JARVFSContextUnitTestCase.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -161,4 +161,24 @@
InputStream is = target.openStream();
assertFalse("input stream closed", is.read() == -1);
}
+
+ public void testInnerJarOverURL() throws Exception
+ {
+ URL url = getResource("/vfs/test/nested/" + getNestedName() + ".jar");
+ String urlString = url.toExternalForm();
+ URL vfsURL = new URL(getProtocol() + urlString.substring(4) + "/complex.jar");
+ InputStream is = vfsURL.openStream();
+ assertNotNull(is);
+ }
+
+ // we need to make sure this doesn't get touched before
+ protected String getNestedName()
+ {
+ return "nested";
+ }
+
+ protected String getProtocol()
+ {
+ return "vfsfile";
+ }
}
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-13 12:21:35 UTC (rev 74530)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ZipEntryVFSContextUnitTestCase.java 2008-06-13 12:41:40 UTC (rev 74531)
@@ -26,6 +26,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
+import java.util.Map;
import junit.framework.Test;
import org.jboss.virtual.VFS;
@@ -43,6 +44,8 @@
*/
public class ZipEntryVFSContextUnitTestCase extends JARVFSContextUnitTestCase
{
+ private Map ctxCacheMap;
+
public ZipEntryVFSContextUnitTestCase(String name)
{
super(name);
@@ -55,6 +58,25 @@
return suite(ZipEntryVFSContextUnitTestCase.class);
}
+/*
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ SecurityManager sm = System.getSecurityManager();
+ System.setSecurityManager(null);
+ try
+ {
+ Field field = ZipEntryContextFactory.class.getDeclaredField("ctxCache");
+ ctxCacheMap = (Map)field.get(ZipEntryContextFactory.getInstance());
+ }
+ finally
+ {
+ System.setSecurityManager(sm);
+ }
+ }
+*/
+
protected VFSContext getVFSContext(String name) throws Exception
{
URL url = getResource("/vfs/context/jar/" + name + ".jar");
@@ -121,4 +143,15 @@
handler = ctx.getRoot().getChild("notanarchive.jar");
assertTrue("is leaf", handler.isLeaf());
}
+
+ // we need to make sure this doesn't get touched before
+ protected String getNestedName()
+ {
+ return super.getNestedName() + "_copy";
+ }
+
+ protected String getProtocol()
+ {
+ return "vfszip";
+ }
}
\ No newline at end of file
Added: projects/vfs/trunk/src/test/resources/vfs/test/nested/nested.jar
===================================================================
(Binary files differ)
Property changes on: projects/vfs/trunk/src/test/resources/vfs/test/nested/nested.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: projects/vfs/trunk/src/test/resources/vfs/test/nested/nested_copy.jar
===================================================================
(Binary files differ)
Property changes on: projects/vfs/trunk/src/test/resources/vfs/test/nested/nested_copy.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
More information about the jboss-cvs-commits
mailing list