From 98f78e19bddae6709589c978d052c3fba3eb69d2 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 21 Oct 2009 18:50:28 +0000 Subject: [PATCH] tar doesn't always recognize the target isn't up to date. PR 48035 git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@828141 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 5 +++++ .../org/apache/tools/ant/taskdefs/Tar.java | 8 ++++++-- src/tests/antunit/taskdefs/tar-test.xml | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/WHATSNEW b/WHATSNEW index 8fa1f3932..f1cd421fe 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -507,6 +507,11 @@ Fixed bugs: long file names in GNU longfile mode. Bugzilla Report 47653. + * The tar task failed to recognize that the archive had to be + (re-)created in some cases where the sources are filesystem based + resources but not filesets. + Bugzilla Report 48035. + Other changes: -------------- diff --git a/src/main/org/apache/tools/ant/taskdefs/Tar.java b/src/main/org/apache/tools/ant/taskdefs/Tar.java index 2e89c4d19..41a2fd988 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Tar.java +++ b/src/main/org/apache/tools/ant/taskdefs/Tar.java @@ -581,9 +581,13 @@ public class Tar extends MatchingTask { Vector files = (Vector) basedirToFilesMap.get(base); if (files == null) { files = new Vector(); - basedirToFilesMap.put(base, new Vector()); + basedirToFilesMap.put(base, files); + } + if (base == Copy.NULL_FILE_PLACEHOLDER) { + files.add(r.getFile().getAbsolutePath()); + } else { + files.add(r.getName()); } - files.add(r.getName()); } iter = basedirs.iterator(); while (iter.hasNext()) { diff --git a/src/tests/antunit/taskdefs/tar-test.xml b/src/tests/antunit/taskdefs/tar-test.xml index 8defb3f9e..5fd700533 100644 --- a/src/tests/antunit/taskdefs/tar-test.xml +++ b/src/tests/antunit/taskdefs/tar-test.xml @@ -22,6 +22,7 @@ + @@ -72,4 +73,21 @@ + + + + + + + + + + + + + + +