On 05/03/2009, [email protected] <[email protected]> wrote:
> Author: bodewig
> Date: Thu Mar 5 04:49:10 2009
> New Revision: 750313
>
> URL: http://svn.apache.org/viewvc?rev=750313&view=rev
> Log:
> make tests pass on Linux
>
However, they now fail on Windows (and compilation fails on Java
1.4/1.5, but I fixed that).
Adding back the .getClassLoader() stage improves matters, but then the
ChangeSetTestCase tests fail with
java.io.IOException: Illegal character in path
which is caused by the space character.
I'm not sure that getResource() is the correct method to use here.
> Modified:
>
> commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
>
> Modified:
> commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
> URL:
> http://svn.apache.org/viewvc/commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java?rev=750313&r1=750312&r2=750313&view=diff
>
> ==============================================================================
> ---
> commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
> (original)
> +++
> commons/sandbox/compress/trunk/src/test/java/org/apache/commons/compress/AbstractTestCase.java
> Thu Mar 5 04:49:10 2009
> @@ -23,8 +23,10 @@
> import java.io.FileInputStream;
> import java.io.FileOutputStream;
> import java.io.InputStream;
> +import java.io.IOException;
> import java.io.OutputStream;
> import java.lang.reflect.Method;
> +import java.net.URI;
> import java.net.URL;
> import java.net.URLClassLoader;
> import java.util.Iterator;
> @@ -51,8 +53,17 @@
> addURL(new File("src/test/resources").toURL());
> }
>
> - protected File getFile(String path) {
> - return new
> File(getClass().getClassLoader().getResource(path).getFile());
> + protected File getFile(String path) throws IOException {
> + URL url = getClass().getResource(path);
> + if (url == null) {
> + throw new java.io.FileNotFoundException(path + " doesn't
> exist");
> + }
> + try {
> + return new File(new URI(url.toString()));
> + } catch (java.net.URISyntaxException ex) {
> + // impossible since URL.toString() should always yield a valid
> URI
> + throw new IOException(ex.getMessage(), ex);
> + }
> }
>
> protected void tearDown() throws Exception {
> @@ -71,11 +82,11 @@
> */
> public void addURL(URL url) throws Exception {
> URLClassLoader classLoader = (URLClassLoader) ClassLoader
> - .getSystemClassLoader();
> + .getSystemClassLoader();
> Class clazz = URLClassLoader.class;
>
> Method method = clazz.getDeclaredMethod("addURL",
> - new Class[] { URL.class });
> + new Class[] { URL.class });
> method.setAccessible(true);
> method.invoke(classLoader, new Object[] { url });
> }
> @@ -109,7 +120,7 @@
>
> final OutputStream stream = new FileOutputStream(temp);
> out = new ArchiveStreamFactory().createArchiveOutputStream(
> - archivename, stream);
> +
> archivename, stream);
>
> final File file1 = getFile("test1.xml");
> final File file2 = getFile("test2.xml");
> @@ -189,16 +200,16 @@
> * @throws Exception
> */
> protected void checkArchiveContent(File archive, List expected)
> - throws Exception {
> + throws Exception {
> final InputStream is = new FileInputStream(archive);
> final BufferedInputStream buf = new BufferedInputStream(is);
> final ArchiveInputStream in = new ArchiveStreamFactory()
> - .createArchiveInputStream(buf);
> + .createArchiveInputStream(buf);
> this.checkArchiveContent(in, expected);
> }
>
> protected void checkArchiveContent(ArchiveInputStream in, List expected)
> - throws Exception {
> + throws Exception {
> File result = File.createTempFile("dir-result", "");
> result.delete();
> result.mkdir();
> @@ -206,7 +217,7 @@
> ArchiveEntry entry = null;
> while ((entry = in.getNextEntry()) != null) {
> File outfile = new File(result.getCanonicalPath() + "/result/"
> - + entry.getName());
> + + entry.getName());
> outfile.getParentFile().mkdirs();
> OutputStream out = new FileOutputStream(outfile);
> IOUtils.copy(in, out);
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]