Michael Nguyen created COMPRESS-699:
---------------------------------------

             Summary: ArchiveStreamFactory.detect(inputStream) ArchiveException 
for TAR regression
                 Key: COMPRESS-699
                 URL: https://issues.apache.org/jira/browse/COMPRESS-699
             Project: Commons Compress
          Issue Type: Bug
          Components: Archivers
    Affects Versions: 1.27.1, 1.27.0, 1.26.2, 1.26.1
            Reporter: Michael Nguyen
         Attachments: icure_medical_device_dart_sdk-1.2.10.tar

Prior to version 1.26.1, calling ArchiveStreamFactory.detect on the attached 
TAR file identifies it as a TAR file properly but now throws an 
ArchiveException. It seems related to the changes to address COMPRESS-644, 
specifically the the entry.getSize() > 0 check on line 288 of 
ArchiveStreamFactory.java.

Below is some sample code to reproduce the error (the below code runs without 
errors when tested on 1.26.0):
{code:java}
import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.io.FileUtils;
import org.junit.Test;

import java.io.BufferedInputStream;
import java.io.File;
import java.nio.file.Files;

import static 
com.sonatype.data.testing.utils.ResourcesUtils.getResourceAsInputStream;

public class TarArchiveTest
{
  @Test
  public void testTarArchive() throws Exception {
    String fileToTest = "icure_medical_device_dart_sdk-1.2.10.tar";
    File sourceFile = new File(fileToTest);
    FileUtils.copyInputStreamToFile(getResourceAsInputStream(fileToTest), 
sourceFile);

    BufferedInputStream fileInputStream = new 
BufferedInputStream(Files.newInputStream(sourceFile.toPath()));
    System.out.println("Detected archive type: " + 
ArchiveStreamFactory.detect(fileInputStream));
  }
} {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to