From 3ba5435efb7f973d4f02b45cb4910b337e937d67 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Thu, 20 Aug 2009 03:47:14 +0000 Subject: [PATCH] make sure the entry has been read when looking for uid/gid and so on git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@806035 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/tools/ant/types/resources/ArchiveResource.java | 2 +- .../org/apache/tools/ant/types/resources/TarResource.java | 4 ++++ .../org/apache/tools/ant/types/resources/ZipResource.java | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java b/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java index 8329a1969..2f1bb38cf 100644 --- a/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java +++ b/src/main/org/apache/tools/ant/types/resources/ArchiveResource.java @@ -242,7 +242,7 @@ public abstract class ArchiveResource extends Resource { : getArchive().toString() + ':' + getName(); } - private synchronized void checkEntry() throws BuildException { + protected final synchronized void checkEntry() throws BuildException { dieOnCircularReference(); if (haveEntry) { return; diff --git a/src/main/org/apache/tools/ant/types/resources/TarResource.java b/src/main/org/apache/tools/ant/types/resources/TarResource.java index f840bf7f1..ae618da8c 100644 --- a/src/main/org/apache/tools/ant/types/resources/TarResource.java +++ b/src/main/org/apache/tools/ant/types/resources/TarResource.java @@ -115,6 +115,7 @@ public class TarResource extends ArchiveResource { if (isReference()) { return ((TarResource) getCheckedRef()).getUserName(); } + checkEntry(); return userName; } @@ -125,6 +126,7 @@ public class TarResource extends ArchiveResource { if (isReference()) { return ((TarResource) getCheckedRef()).getGroup(); } + checkEntry(); return groupName; } @@ -135,6 +137,7 @@ public class TarResource extends ArchiveResource { if (isReference()) { return ((TarResource) getCheckedRef()).getUid(); } + checkEntry(); return uid; } @@ -145,6 +148,7 @@ public class TarResource extends ArchiveResource { if (isReference()) { return ((TarResource) getCheckedRef()).getGid(); } + checkEntry(); return uid; } diff --git a/src/main/org/apache/tools/ant/types/resources/ZipResource.java b/src/main/org/apache/tools/ant/types/resources/ZipResource.java index fc196f878..29c911f8f 100644 --- a/src/main/org/apache/tools/ant/types/resources/ZipResource.java +++ b/src/main/org/apache/tools/ant/types/resources/ZipResource.java @@ -173,6 +173,10 @@ public class ZipResource extends ArchiveResource { * @since Ant 1.8.0 */ public ZipExtraField[] getExtraFields() { + if (isReference()) { + return ((ZipResource) getCheckedRef()).getExtraFields(); + } + checkEntry(); if (extras == null) { return new ZipExtraField[0]; }