This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-compress.git


The following commit(s) were added to refs/heads/master by this push:
     new 2a3baceb add getLinkFlag for TarArchiveEntry (#365)
2a3baceb is described below

commit 2a3baceb76ea1a404c19465d8580ebf879c4c409
Author: XenoAmess <xenoam...@gmail.com>
AuthorDate: Wed Mar 8 10:02:00 2023 +0800

    add getLinkFlag for TarArchiveEntry (#365)
---
 .../commons/compress/archivers/tar/TarArchiveEntry.java  | 10 ++++++++++
 .../org/apache/commons/compress/ChainingTestCase.java    |  3 +++
 .../apache/commons/compress/archivers/TarTestCase.java   | 16 ++++++++++++++++
 .../commons/compress/archivers/tar/FileTimesIT.java      | 16 ++++++++++++++++
 .../commons/compress/archivers/tar/SparseFilesTest.java  |  4 ++++
 .../compress/archivers/tar/TarArchiveEntryTest.java      | 10 ++++++++++
 .../archivers/tar/TarArchiveInputStreamTest.java         | 10 ++++++++++
 .../archivers/tar/TarArchiveOutputStreamTest.java        | 11 ++++++++++-
 .../commons/compress/archivers/tar/TarFileTest.java      |  9 +++++++++
 9 files changed, 88 insertions(+), 1 deletion(-)

diff --git 
a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java 
b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
index fe65bab1..68c2aa5a 100644
--- 
a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
+++ 
b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java
@@ -2129,5 +2129,15 @@ public class TarArchiveEntry implements ArchiveEntry, 
TarConstants, EntryStreamO
         }
         return offset;
     }
+
+    /**
+     * Get this entry's link flag.
+     *
+     * @since 1.23
+     */
+    public byte getLinkFlag() {
+        return this.linkFlag;
+    }
+
 }
 
diff --git a/src/test/java/org/apache/commons/compress/ChainingTestCase.java 
b/src/test/java/org/apache/commons/compress/ChainingTestCase.java
index d984559a..81d260b8 100644
--- a/src/test/java/org/apache/commons/compress/ChainingTestCase.java
+++ b/src/test/java/org/apache/commons/compress/ChainingTestCase.java
@@ -23,6 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
+import org.apache.commons.compress.archivers.tar.TarConstants;
 import 
org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
 import org.apache.commons.compress.compressors.gzip.GzipCompressorInputStream;
 import org.junit.jupiter.api.Test;
@@ -35,6 +36,7 @@ public class ChainingTestCase extends AbstractTestCase {
             final TarArchiveEntry entry = (TarArchiveEntry) is.getNextEntry();
             assertNotNull(entry);
             assertEquals("test1.xml", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
         }
     }
 
@@ -44,6 +46,7 @@ public class ChainingTestCase extends AbstractTestCase {
             final TarArchiveEntry entry = (TarArchiveEntry) is.getNextEntry();
             assertNotNull(entry);
             assertEquals("test1.xml", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
         }
     }
 }
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java 
b/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
index 2ed47df4..e7e96827 100644
--- a/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
+++ b/src/test/java/org/apache/commons/compress/archivers/TarTestCase.java
@@ -41,6 +41,7 @@ import org.apache.commons.compress.AbstractTestCase;
 import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
 import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
 import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream;
+import org.apache.commons.compress.archivers.tar.TarConstants;
 import org.apache.commons.compress.archivers.tar.TarFile;
 import org.apache.commons.compress.utils.ByteUtils;
 import org.apache.commons.compress.utils.CharsetNames;
@@ -75,8 +76,10 @@ public final class TarTestCase extends AbstractTestCase {
              final ArchiveInputStream in = new TarArchiveInputStream(is, 
CharsetNames.ISO_8859_1)) {
             TarArchiveEntry entry = (TarArchiveEntry) in.getNextEntry();
             
assertEquals("3\u00b1\u00b1\u00b1F06\u00b1W2345\u00b1ZB\u00b1la\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1BLA",
 entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             entry = (TarArchiveEntry) in.getNextEntry();
             
assertEquals("0302-0601-3\u00b1\u00b1\u00b1F06\u00b1W2345\u00b1ZB\u00b1la\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1BLA",
 entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
         }
     }
 
@@ -121,6 +124,7 @@ public final class TarTestCase extends AbstractTestCase {
             tis = null;
             assertNotNull(out);
             assertEquals("foo/", out.getName());
+            assertEquals(TarConstants.LF_DIR, out.getLinkFlag());
             assertEquals(0, out.getSize());
             // TAR stores time with a granularity of 1 second
             assertEquals(beforeArchiveWrite / 1000,
@@ -146,6 +150,7 @@ public final class TarTestCase extends AbstractTestCase {
              final TarArchiveInputStream in = new TarArchiveInputStream(is)) {
             final TarArchiveEntry directoryEntry = in.getNextTarEntry();
             assertEquals("directory/", directoryEntry.getName());
+            assertEquals(TarConstants.LF_DIR, directoryEntry.getLinkFlag());
             assertTrue(directoryEntry.isDirectory());
             final byte[] directoryRead = IOUtils.toByteArray(in);
             assertArrayEquals(ByteUtils.EMPTY_BYTE_ARRAY, directoryRead);
@@ -175,6 +180,7 @@ public final class TarTestCase extends AbstractTestCase {
             tis = null;
             assertNotNull(out);
             assertEquals("foo/", out.getName());
+            assertEquals(TarConstants.LF_DIR, in.getLinkFlag());
             assertEquals(0, out.getSize());
             assertEquals(beforeArchiveWrite / 1000,
                          out.getLastModifiedDate().getTime() / 1000);
@@ -223,6 +229,7 @@ public final class TarTestCase extends AbstractTestCase {
             tis = null;
             assertNotNull(out);
             assertEquals("foo", out.getName());
+            assertEquals(TarConstants.LF_NORMAL, out.getLinkFlag());
             assertEquals(tmp[1].length(), out.getSize());
             assertEquals(tmp[1].lastModified() / 1000,
                          out.getLastModifiedDate().getTime() / 1000);
@@ -272,6 +279,7 @@ public final class TarTestCase extends AbstractTestCase {
             tis = null;
             assertNotNull(out);
             assertEquals("foo", out.getName());
+            assertEquals(TarConstants.LF_NORMAL, out.getLinkFlag());
             assertEquals(tmp[1].length(), out.getSize());
             assertEquals(tmp[1].lastModified() / 1000,
                          out.getLastModifiedDate().getTime() / 1000);
@@ -384,8 +392,10 @@ public final class TarTestCase extends AbstractTestCase {
             final List<TarArchiveEntry> entries = tarFile.getEntries();
             TarArchiveEntry entry = entries.get(0);
             
assertEquals("3\u00b1\u00b1\u00b1F06\u00b1W2345\u00b1ZB\u00b1la\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1BLA",
 entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             entry = entries.get(1);
             
assertEquals("0302-0601-3\u00b1\u00b1\u00b1F06\u00b1W2345\u00b1ZB\u00b1la\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1\u00b1BLA",
 entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
         }
     }
 
@@ -425,6 +435,7 @@ public final class TarTestCase extends AbstractTestCase {
                 final TarArchiveEntry entry = tarFile.getEntries().get(0);
                 assertNotNull(entry);
                 assertEquals("foo/", entry.getName());
+                assertEquals(TarConstants.LF_DIR, entry.getLinkFlag());
                 assertEquals(0, entry.getSize());
                 // TAR stores time with a granularity of 1 second
                 assertEquals(beforeArchiveWrite / 1000, 
entry.getLastModifiedDate().getTime() / 1000);
@@ -443,6 +454,7 @@ public final class TarTestCase extends AbstractTestCase {
         try (TarFile tarFile = new TarFile(input)) {
             final TarArchiveEntry directoryEntry = tarFile.getEntries().get(0);
             assertEquals("directory/", directoryEntry.getName());
+            assertEquals(TarConstants.LF_DIR, directoryEntry.getLinkFlag());
             assertTrue(directoryEntry.isDirectory());
             try (InputStream directoryStream = 
tarFile.getInputStream(directoryEntry)) {
                 final byte[] directoryRead = 
IOUtils.toByteArray(directoryStream);
@@ -471,6 +483,7 @@ public final class TarTestCase extends AbstractTestCase {
                 final TarArchiveEntry entry = tarFile.getEntries().get(0);
                 assertNotNull(entry);
                 assertEquals("foo", entry.getName());
+                assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
                 assertEquals(tmp[1].length(), entry.getSize());
                 assertEquals(tmp[1].lastModified() / 1000, 
entry.getLastModifiedDate().getTime() / 1000);
                 assertFalse(entry.isDirectory());
@@ -498,6 +511,7 @@ public final class TarTestCase extends AbstractTestCase {
                 final TarArchiveEntry entry = tarFile.getEntries().get(0);
                 assertNotNull(entry);
                 assertEquals("foo/", entry.getName());
+                assertEquals(TarConstants.LF_DIR, entry.getLinkFlag());
                 assertEquals(0, entry.getSize());
                 assertEquals(beforeArchiveWrite / 1000, 
entry.getLastModifiedDate().getTime() / 1000);
                 assertTrue(entry.isDirectory());
@@ -531,6 +545,7 @@ public final class TarTestCase extends AbstractTestCase {
                 final TarArchiveEntry entry = tarFile.getEntries().get(0);
                 assertNotNull(entry);
                 assertEquals("foo", entry.getName());
+                assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
                 assertEquals(tmp[1].length(), entry.getSize());
                 assertEquals(tmp[1].lastModified() / 1000, 
entry.getLastModifiedDate().getTime() / 1000);
                 assertFalse(entry.isDirectory());
@@ -553,6 +568,7 @@ public final class TarTestCase extends AbstractTestCase {
             try (final TarFile tarFile = new TarFile(data)) {
                 final List<TarArchiveEntry> entries = tarFile.getEntries();
                 assertEquals(fileName, entries.get(0).getName());
+                assertEquals(TarConstants.LF_NORMAL, 
entries.get(0).getLinkFlag());
             }
         }
     }
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/FileTimesIT.java 
b/src/test/java/org/apache/commons/compress/archivers/tar/FileTimesIT.java
index c54c0316..995bf048 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/FileTimesIT.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/FileTimesIT.java
@@ -54,6 +54,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44.147126600Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T01:02:11.910960100Z"), 
e.getLastAccessTime(), "atime");
@@ -63,6 +64,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:38:20.536752000Z"), 
e.getLastAccessTime(), "atime");
@@ -81,6 +83,7 @@ public class FileTimesIT extends AbstractTestCase {
             TarArchiveEntry e = tin.getNextTarEntry();
             assertNotNull(e);
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44.147126600Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:47:00.367783300Z"), 
e.getLastAccessTime(), "atime");
@@ -89,6 +92,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertGlobalHeaders(e);
             e = tin.getNextTarEntry();
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:38:20.536752000Z"), 
e.getLastAccessTime(), "atime");
@@ -235,6 +239,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44.147126600Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T01:01:53.369146300Z"), 
e.getLastAccessTime(), "atime");
@@ -244,6 +249,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:38:20.536752000Z"), 
e.getLastAccessTime(), "atime");
@@ -282,6 +288,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-16T10:19:43.382883700Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-16T10:21:01.251181000Z"), 
e.getLastAccessTime(), "atime");
@@ -291,6 +298,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-16T10:21:00.249238500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-16T10:21:01.251181000Z"), 
e.getLastAccessTime(), "atime");
@@ -328,6 +336,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44Z"), 
e.getLastModifiedTime(), "mtime");
             assertNull(e.getLastAccessTime(), "atime");
@@ -336,6 +345,7 @@ public class FileTimesIT extends AbstractTestCase {
             e = tin.getNextTarEntry();
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-17T00:38:20Z"), 
e.getLastModifiedTime(), "mtime");
             assertNull(e.getLastAccessTime(), "atime");
@@ -406,6 +416,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T01:01:34Z"), 
e.getLastAccessTime(), "atime");
@@ -413,6 +424,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNull(e.getCreationTime(), "birthtime");
             e = tin.getNextTarEntry();
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals(toFileTime("2022-03-17T00:38:20Z"), 
e.getLastModifiedTime(), "mtime");
@@ -476,6 +488,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/", e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
             assertEquals(toFileTime("2022-03-17T00:24:44.147126600Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T01:01:19.581236400Z"), 
e.getLastAccessTime(), "atime");
@@ -484,6 +497,7 @@ public class FileTimesIT extends AbstractTestCase {
             e = tin.getNextTarEntry();
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("name", "test/test-times.txt", e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertTrue(e.isFile());
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:38:20.536752000Z"), 
e.getLastAccessTime(), "atime");
@@ -503,6 +517,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("test-times.txt", e.getName(), "name");
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T00:38:20.536752000Z"), 
e.getLastAccessTime(), "atime");
             assertEquals(toFileTime("2022-03-17T00:38:20.470751500Z"), 
e.getStatusChangeTime(), "ctime");
@@ -511,6 +526,7 @@ public class FileTimesIT extends AbstractTestCase {
             assertNotNull(e);
             assertTrue(e.getExtraPaxHeaders().isEmpty());
             assertEquals("test-times.txt", e.getName(), "name");
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertEquals(toFileTime("2022-03-17T01:52:25.592262900Z"), 
e.getLastModifiedTime(), "mtime");
             assertEquals(toFileTime("2022-03-17T01:52:25.724278500Z"), 
e.getLastAccessTime(), "atime");
             assertEquals(toFileTime("2022-03-17T01:52:25.592262900Z"), 
e.getStatusChangeTime(), "ctime");
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java 
b/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
index a78435f8..9b7227bb 100644
--- 
a/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
+++ 
b/src/test/java/org/apache/commons/compress/archivers/tar/SparseFilesTest.java
@@ -47,6 +47,7 @@ public class SparseFilesTest extends AbstractTestCase {
 
     private void assertPaxGNUEntry(final TarArchiveEntry entry, final String 
suffix) {
         assertEquals("sparsefile-" + suffix, entry.getName());
+        assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
         assertTrue(entry.isGNUSparse());
         assertTrue(entry.isPaxGNUSparse());
         assertFalse(entry.isOldGNUSparse());
@@ -67,6 +68,7 @@ public class SparseFilesTest extends AbstractTestCase {
     private void assertPaxGNUEntry(final TarArchiveInputStream tin, final 
String suffix) throws Throwable {
         final TarArchiveEntry ae = tin.getNextTarEntry();
         assertEquals("sparsefile-" + suffix, ae.getName());
+        assertEquals(TarConstants.LF_NORMAL, ae.getLinkFlag());
         assertTrue(ae.isGNUSparse());
         assertTrue(ae.isPaxGNUSparse());
         assertFalse(ae.isOldGNUSparse());
@@ -255,6 +257,7 @@ public class SparseFilesTest extends AbstractTestCase {
         try (TarArchiveInputStream tin = new 
TarArchiveInputStream(Files.newInputStream(file.toPath()))) {
             final TarArchiveEntry ae = tin.getNextTarEntry();
             assertEquals("sparsefile", ae.getName());
+            assertEquals(TarConstants.LF_GNUTYPE_SPARSE, ae.getLinkFlag());
             assertTrue(ae.isOldGNUSparse());
             assertTrue(ae.isGNUSparse());
             assertFalse(ae.isPaxGNUSparse());
@@ -429,6 +432,7 @@ public class SparseFilesTest extends AbstractTestCase {
         try (final TarFile tarFile = new TarFile(file)) {
             final TarArchiveEntry ae = tarFile.getEntries().get(0);
             assertEquals("sparsefile", ae.getName());
+            assertEquals(TarConstants.LF_GNUTYPE_SPARSE, ae.getLinkFlag());
             assertTrue(ae.isOldGNUSparse());
             assertTrue(ae.isGNUSparse());
             assertFalse(ae.isPaxGNUSparse());
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
index 0897a6cf..6d150a97 100644
--- 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
+++ 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveEntryTest.java
@@ -154,8 +154,10 @@ public class TarArchiveEntryTest implements TarConstants {
         assumeTrue("C:\\".equals(ROOT));
         TarArchiveEntry t = new TarArchiveEntry(ROOT + "foo.txt", true);
         assertEquals("C:/foo.txt", t.getName());
+        assertEquals(TarConstants.LF_NORMAL, t.getLinkFlag());
         t = new TarArchiveEntry(ROOT + "foo.txt", LF_GNUTYPE_LONGNAME, true);
         assertEquals("C:/foo.txt", t.getName());
+        assertEquals(TarConstants.LF_GNUTYPE_LONGNAME, t.getLinkFlag());
     }
 
     private String readMagic(final TarArchiveEntry t) {
@@ -349,6 +351,7 @@ public class TarArchiveEntryTest implements TarConstants {
     public void testFileSystemRoot() {
         final TarArchiveEntry t = new TarArchiveEntry(new File(ROOT));
         assertEquals("/", t.getName());
+        assertEquals(TarConstants.LF_DIR, t.getLinkFlag());
     }
 
     @Test
@@ -356,6 +359,7 @@ public class TarArchiveEntryTest implements TarConstants {
         final TarArchiveEntry t = new TarArchiveEntry("/foo", 
LF_GNUTYPE_LONGNAME);
         assertGnuMagic(t);
         assertEquals("foo", t.getName());
+        assertEquals(TarConstants.LF_GNUTYPE_LONGNAME, t.getLinkFlag());
     }
 
     @Test
@@ -363,6 +367,7 @@ public class TarArchiveEntryTest implements TarConstants {
         final TarArchiveEntry t = new TarArchiveEntry("/foo", LF_NORMAL);
         assertPosixMagic(t);
         assertEquals("foo", t.getName());
+        assertEquals(TarConstants.LF_NORMAL, t.getLinkFlag());
     }
 
     @Test
@@ -371,6 +376,7 @@ public class TarArchiveEntryTest implements TarConstants {
                                                 true);
         assertGnuMagic(t);
         assertEquals("/foo", t.getName());
+        assertEquals(TarConstants.LF_GNUTYPE_LONGNAME, t.getLinkFlag());
     }
 
     @Test
@@ -437,18 +443,22 @@ public class TarArchiveEntryTest implements TarConstants {
             t = tin.getNextTarEntry();
             assertNotNull(t);
             assertEquals("/", t.getName());
+            assertEquals(TarConstants.LF_DIR, t.getLinkFlag());
             assertTrue(t.isCheckSumOK());
             t = tin.getNextTarEntry();
             assertNotNull(t);
             assertEquals("foo.txt", t.getName());
+            assertEquals(TarConstants.LF_NORMAL, t.getLinkFlag());
             assertTrue(t.isCheckSumOK());
             t = tin.getNextTarEntry();
             assertNotNull(t);
             assertEquals("bar.txt", t.getName());
+            assertEquals(TarConstants.LF_NORMAL, t.getLinkFlag());
             assertTrue(t.isCheckSumOK());
             t = tin.getNextTarEntry();
             assertNotNull(t);
             assertEquals("baz.txt", t.getName());
+            assertEquals(TarConstants.LF_NORMAL, t.getLinkFlag());
             assertTrue(t.isCheckSumOK());
         } finally {
             if (tin != null) {
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
index 9bef09e3..c72074ca 100644
--- 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
+++ 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveInputStreamTest.java
@@ -54,6 +54,7 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream in = new 
TarArchiveInputStream(Files.newInputStream(getFile(archive).toPath()))) {
             final TarArchiveEntry tae = in.getNextTarEntry();
             assertEquals("foo", tae.getName());
+            assertEquals(TarConstants.LF_NORMAL, tae.getLinkFlag());
             final Calendar cal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
             cal.set(1969, 11, 31, 23, 59, 59);
             cal.set(Calendar.MILLISECOND, 0);
@@ -234,7 +235,9 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
     public void skipsDevNumbersWhenEntryIsNoDevice() throws Exception {
         try (TarArchiveInputStream is = getTestStream("/COMPRESS-417.tar")) {
             assertEquals("test1.xml", is.getNextTarEntry().getName());
+            assertEquals(TarConstants.LF_NORMAL, 
is.getCurrentEntry().getLinkFlag());
             assertEquals("test2.xml", is.getNextTarEntry().getName());
+            assertEquals(TarConstants.LF_NORMAL, 
is.getCurrentEntry().getLinkFlag());
             assertNull(is.getNextTarEntry());
         }
     }
@@ -247,6 +250,7 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream is = getTestStream("/COMPRESS-355.tar")) {
             final TarArchiveEntry entry = is.getNextTarEntry();
             assertEquals("package/package.json", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             assertNull(is.getNextTarEntry());
         }
     }
@@ -259,6 +263,7 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream is = getTestStream("/COMPRESS-356.tar")) {
             final TarArchiveEntry entry = is.getNextTarEntry();
             assertEquals("package/package.json", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             assertNull(is.getNextTarEntry());
         }
     }
@@ -296,8 +301,11 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
         try (final ByteArrayInputStream bis = new ByteArrayInputStream(data);
              final TarArchiveInputStream tis = new TarArchiveInputStream(bis)) 
{
             assertEquals(folderName, tis.getNextTarEntry().getName());
+            assertEquals(TarConstants.LF_DIR, 
tis.getCurrentEntry().getLinkFlag());
             assertEquals(consumerJavaName, tis.getNextTarEntry().getName());
+            assertEquals(TarConstants.LF_NORMAL, 
tis.getCurrentEntry().getLinkFlag());
             assertEquals(producerJavaName, tis.getNextTarEntry().getName());
+            assertEquals(TarConstants.LF_NORMAL, 
tis.getCurrentEntry().getLinkFlag());
         }
     }
 
@@ -355,6 +363,7 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream is = getTestStream("/COMPRESS-356.tar")) {
             final TarArchiveEntry entry = is.getNextTarEntry();
             assertEquals("package/package.json", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             assertEquals(is.getCurrentEntry(),entry);
             final TarArchiveEntry weaselEntry = new 
TarArchiveEntry(entry.getName());
             weaselEntry.setSize(entry.getSize());
@@ -425,6 +434,7 @@ public class TarArchiveInputStreamTest extends 
AbstractTestCase {
             TarArchiveEntry tae = in.getNextTarEntry();
             tae = in.getNextTarEntry();
             assertEquals("sample/link-to-txt-file.lnk", tae.getName());
+            assertEquals(TarConstants.LF_SYMLINK, tae.getLinkFlag());
             assertEquals(new Date(0), tae.getLastModifiedDate());
             assertTrue(tae.isSymbolicLink());
             assertTrue(tae.isCheckSumOK());
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
index 63a95a3c..ba14b712 100644
--- 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
+++ 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStreamTest.java
@@ -395,8 +395,9 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
                TarArchiveEntry entryIn = in.getNextTarEntry();
                assertNotNull(entryIn);
                assertEquals("message", entryIn.getName());
+        assertEquals(TarConstants.LF_NORMAL, entryIn.getLinkFlag());
                assertEquals("global-weasels", 
entryIn.getExtraPaxHeader("SCHILLY.xattr.user.org.apache.weasels"));
-               final Reader reader = new InputStreamReader(in);
+        final Reader reader = new InputStreamReader(in);
                for (int i = 0; i < x.length(); i++) {
                        assertEquals(x.charAt(i), reader.read());
                }
@@ -524,6 +525,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(n.substring(0, TarConstants.NAMELEN) + "/", 
e.getName(), "Entry name");
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory(), "The entry is not a directory");
         }
     }
@@ -547,6 +549,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
             assertEquals("160 path=" + n + "\n", new String(data, 512, 160, 
UTF_8));
             try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
                 assertEquals(n, tin.getNextTarEntry().getName());
+                assertEquals(TarConstants.LF_NORMAL, 
tin.getCurrentEntry().getLinkFlag());
             }
         }
     }
@@ -584,6 +587,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
             assertEquals("test", e.getName(), "Entry name");
             assertEquals(linkname, e.getLinkName(), "Link name");
             assertTrue(e.isSymbolicLink(), "The entry is not a symbolic link");
+            assertEquals(TarConstants.LF_SYMLINK, e.getLinkFlag(), "Link 
flag");
         }
     }
 
@@ -643,6 +647,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(linkname.substring(0, TarConstants.NAMELEN), 
e.getLinkName(), "Link name");
+            assertEquals(TarConstants.LF_SYMLINK, e.getLinkFlag(), "Link 
flag");
         }
     }
 
@@ -663,6 +668,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(n, e.getName());
+            assertEquals(TarConstants.LF_DIR, e.getLinkFlag());
             assertTrue(e.isDirectory());
         }
     }
@@ -685,6 +691,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(n, e.getLinkName());
+            assertEquals(TarConstants.LF_LINK, e.getLinkFlag(), "Link flag");
         }
     }
 
@@ -705,6 +712,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(n, e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
             assertFalse(e.isDirectory());
         }
     }
@@ -726,6 +734,7 @@ public class TarArchiveOutputStreamTest extends 
AbstractTestCase {
         try (TarArchiveInputStream tin = new TarArchiveInputStream(new 
ByteArrayInputStream(data))) {
             final TarArchiveEntry e = tin.getNextTarEntry();
             assertEquals(n, e.getName());
+            assertEquals(TarConstants.LF_NORMAL, e.getLinkFlag());
         }
     }
 
diff --git 
a/src/test/java/org/apache/commons/compress/archivers/tar/TarFileTest.java 
b/src/test/java/org/apache/commons/compress/archivers/tar/TarFileTest.java
index 8a53feae..4832ec2f 100644
--- a/src/test/java/org/apache/commons/compress/archivers/tar/TarFileTest.java
+++ b/src/test/java/org/apache/commons/compress/archivers/tar/TarFileTest.java
@@ -63,6 +63,7 @@ public class TarFileTest extends AbstractTestCase {
         try (final TarFile tarFile = new TarFile(getPath(archive))) {
             final TarArchiveEntry entry = tarFile.getEntries().get(0);
             assertEquals("foo", entry.getName());
+            assertEquals(TarConstants.LF_NORMAL, entry.getLinkFlag());
             final Calendar cal = 
Calendar.getInstance(TimeZone.getTimeZone("GMT"));
             cal.set(1969, 11, 31, 23, 59, 59);
             cal.set(Calendar.MILLISECOND, 0);
@@ -197,7 +198,9 @@ public class TarFileTest extends AbstractTestCase {
             final List<TarArchiveEntry> entries = tarFile.getEntries();
             assertEquals(2, entries.size());
             assertEquals("test1.xml", entries.get(0).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(0).getLinkFlag());
             assertEquals("test2.xml", entries.get(1).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(1).getLinkFlag());
         }
     }
 
@@ -210,6 +213,7 @@ public class TarFileTest extends AbstractTestCase {
             final List<TarArchiveEntry> entries = tarFile.getEntries();
             assertEquals(1, entries.size());
             assertEquals("package/package.json", entries.get(0).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(0).getLinkFlag());
         }
     }
 
@@ -222,6 +226,7 @@ public class TarFileTest extends AbstractTestCase {
             final List<TarArchiveEntry> entries = tarFile.getEntries();
             assertEquals(1, entries.size());
             assertEquals("package/package.json", entries.get(0).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(0).getLinkFlag());
         }
     }
 
@@ -253,8 +258,11 @@ public class TarFileTest extends AbstractTestCase {
         try (final TarFile tarFile = new TarFile(data)) {
             final List<TarArchiveEntry> entries = tarFile.getEntries();
             assertEquals(folderName, entries.get(0).getName());
+            assertEquals(TarConstants.LF_DIR, entries.get(0).getLinkFlag());
             assertEquals(consumerJavaName, entries.get(1).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(1).getLinkFlag());
             assertEquals(producerJavaName, entries.get(2).getName());
+            assertEquals(TarConstants.LF_NORMAL, entries.get(2).getLinkFlag());
         }
     }
 
@@ -342,6 +350,7 @@ public class TarFileTest extends AbstractTestCase {
             assertEquals(3, entries.size());
             final TarArchiveEntry entry = entries.get(1);
             assertEquals("sample/link-to-txt-file.lnk", entry.getName());
+            assertEquals(TarConstants.LF_SYMLINK, entry.getLinkFlag());
             assertEquals(new Date(0), entry.getLastModifiedDate());
             assertTrue(entry.isSymbolicLink());
             assertTrue(entry.isCheckSumOK());


Reply via email to