[jboss-cvs] JBossAS SVN: r111972 - in projects/vfs/branches/Branch_2_2/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
Tue Aug 9 17:22:26 EDT 2011
Author: alesj
Date: 2011-08-09 17:22:26 -0400 (Tue, 09 Aug 2011)
New Revision: 111972
Modified:
projects/vfs/branches/Branch_2_2/src/main/java/org/jboss/virtual/plugins/context/zip/CertificateReaderInputStream.java
projects/vfs/branches/Branch_2_2/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java
Log:
[JBVFS-176]; lazy cert reading.
Modified: projects/vfs/branches/Branch_2_2/src/main/java/org/jboss/virtual/plugins/context/zip/CertificateReaderInputStream.java
===================================================================
--- projects/vfs/branches/Branch_2_2/src/main/java/org/jboss/virtual/plugins/context/zip/CertificateReaderInputStream.java 2011-08-09 20:49:04 UTC (rev 111971)
+++ projects/vfs/branches/Branch_2_2/src/main/java/org/jboss/virtual/plugins/context/zip/CertificateReaderInputStream.java 2011-08-09 21:22:26 UTC (rev 111972)
@@ -50,6 +50,9 @@
/** Is stream closed */
private boolean closed;
+ /** Has the entry been consumed */
+ private boolean consumedEntry ;
+
/**
* ZipEntryInputStream constructor.
*
@@ -82,7 +85,8 @@
try
{
- info.readCertificates();
+ if (consumedEntry)
+ info.readCertificates();
}
finally
{
@@ -108,7 +112,8 @@
}
finally
{
- streamClosed(rc < 0);
+ consumedEntry = (rc < 0);
+ streamClosed(consumedEntry);
}
}
@@ -131,7 +136,8 @@
}
finally
{
- streamClosed(rc < 0);
+ consumedEntry = (rc < 0);
+ streamClosed(consumedEntry);
}
}
@@ -155,7 +161,8 @@
}
finally
{
- streamClosed(rc < 0);
+ consumedEntry = (rc < 0);
+ streamClosed(consumedEntry);
}
}
@@ -264,4 +271,4 @@
{
return closed;
}
-}
\ No newline at end of file
+}
Modified: projects/vfs/branches/Branch_2_2/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java
===================================================================
--- projects/vfs/branches/Branch_2_2/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java 2011-08-09 20:49:04 UTC (rev 111971)
+++ projects/vfs/branches/Branch_2_2/src/test/java/org/jboss/test/virtual/test/VirtualFileUnitTestCase.java 2011-08-09 21:22:26 UTC (rev 111972)
@@ -1345,8 +1345,6 @@
public void testCertificates() throws Exception
{
- //Debug.getInstance("jar");
-
URL url = getResource("/vfs/test/cert_test.jar");
VirtualFile jar = VFS.getRoot(url);
VirtualFile clazz = jar.findChild("examplets/plugins/impl/AnotherInjectedPlugin.class");
@@ -1357,4 +1355,24 @@
Certificate[] certs = clazz.getCertificates();
assertNotNull("No certificates: " + clazz, certs);
}
+
+ public void testCertificatesNoRead() throws Exception
+ {
+ URL url = getResource("/vfs/test/cert_test.jar");
+ VirtualFile jar = VFS.getRoot(url);
+ VirtualFile clazz = jar.findChild("examplets/plugins/impl/AnotherInjectedPlugin.class");
+
+ // Closing the stream without consuming the entry will cause the signature information to be ignored
+ InputStream tmp = clazz.openStream();
+ tmp.close() ;
+
+ Certificate[] certs = clazz.getCertificates();
+ assertNull("Certificates present: " + clazz, certs);
+
+ tmp = clazz.openStream();
+ VFSUtils.copyStreamAndClose(tmp, new ByteArrayOutputStream()); // dummy read
+
+ certs = clazz.getCertificates();
+ assertNotNull("No certificates: " + clazz, certs);
+ }
}
More information about the jboss-cvs-commits
mailing list