From 97af019ca7fa282de5989babd275ac69756f50c4 Mon Sep 17 00:00:00 2001 From: kohsuke Date: Thu, 17 Sep 2009 21:31:48 +0000 Subject: [PATCH] Merged revisions 21782-21783 via svnmerge from https://www.dev.java.net/svn/hudson/branches/rc ........ r21782 | kohsuke | 2009-09-17 10:22:50 -0700 (Thu, 17 Sep 2009) | 1 line [FIXED HUDSON-4039] Several classes need to be marked as serializable. ........ r21783 | kohsuke | 2009-09-17 10:29:06 -0700 (Thu, 17 Sep 2009) | 1 line added a regression test for HUDSON-4039 ........ git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@21797 71c3de6d-444a-0410-be80-ed276b4c234a --- core/src/main/java/hudson/FilePath.java | 18 +++++++++++++++--- core/src/test/java/hudson/FilePathTest.java | 13 +++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/hudson/FilePath.java b/core/src/main/java/hudson/FilePath.java index 30f5cf4687..94947a3059 100644 --- a/core/src/main/java/hudson/FilePath.java +++ b/core/src/main/java/hudson/FilePath.java @@ -1420,7 +1420,7 @@ public final class FilePath implements Serializable { } } - private static abstract class DirScanner { + private static abstract class DirScanner implements Serializable { abstract void scan(File dir, FileVisitor visitor) throws IOException; /** @@ -1440,6 +1440,8 @@ public final class FilePath implements Serializable { void scan(File dir, FileVisitor visitor) throws IOException { scan(dir,"",visitor); } + + private static final long serialVersionUID = 1L; } /** @@ -1456,6 +1458,8 @@ public final class FilePath implements Serializable { void scan(File dir, FileVisitor visitor) throws IOException { super.scan(dir,visitor.with(filter)); } + + private static final long serialVersionUID = 1L; } /** @@ -1486,7 +1490,11 @@ public final class FilePath implements Serializable { } } } + + private static final long serialVersionUID = 1L; } + + private static final long serialVersionUID = 1L; } /** @@ -1538,16 +1546,20 @@ public final class FilePath implements Serializable { Archiver create(OutputStream out); } - private static final class TarArchiverFactory implements ArchiverFactory { + private static final class TarArchiverFactory implements ArchiverFactory, Serializable { public Archiver create(OutputStream out) { return new TarWriter(out); } + + private static final long serialVersionUID = 1L; } - private static final class ZipArchiverFactory implements ArchiverFactory { + private static final class ZipArchiverFactory implements ArchiverFactory, Serializable { public Archiver create(OutputStream out) { return new ZipWriter(out); } + + private static final long serialVersionUID = 1L; } diff --git a/core/src/test/java/hudson/FilePathTest.java b/core/src/test/java/hudson/FilePathTest.java index b3fe47b875..d7210181ee 100644 --- a/core/src/test/java/hudson/FilePathTest.java +++ b/core/src/test/java/hudson/FilePathTest.java @@ -36,6 +36,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.Future; import org.junit.Assert; +import org.apache.commons.io.output.NullOutputStream; /** * @author Kohsuke Kawaguchi @@ -102,4 +103,16 @@ public class FilePathTest extends TestCase { Assert.assertTrue("could not delete target " + tmp2.getPath(), tmp2.delete()); } } + + public void testArchiveBug4039() throws Exception { + File tmp = Util.createTempDir(); + try { + FilePath d = new FilePath(french,tmp.getPath()); + d.child("test").touch(0); + d.zip(new NullOutputStream()); + d.zip(new NullOutputStream(),"**/*"); + } finally { + Util.deleteRecursive(tmp); + } + } }