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]; }