Skip to content

Throw specific exception when creating empty archive using single file archiver #61

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.codehaus.plexus.archiver.ArchiveEntry;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.ResourceIterator;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;

public class BZip2Archiver
extends AbstractArchiver
Expand All @@ -38,6 +39,10 @@ public void execute()
}

ResourceIterator iter = getResources();
if ( !iter.hasNext() )
{
throw new EmptyArchiveException( "You must set at least one file." );
}
ArchiveEntry entry = iter.next();
if ( iter.hasNext() )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.codehaus.plexus.archiver.ArchiveEntry;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.ResourceIterator;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;

public class GZipArchiver
extends AbstractArchiver
Expand All @@ -38,6 +39,10 @@ protected void execute()
}

ResourceIterator iter = getResources();
if ( !iter.hasNext() )
{
throw new EmptyArchiveException( "You must set at least one file." );
}
ArchiveEntry entry = iter.next();
if ( iter.hasNext() )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.codehaus.plexus.archiver.ArchiveEntry;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.ResourceIterator;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;

/**
* Snappy archiver.
Expand All @@ -41,6 +42,10 @@ public void execute()
}

ResourceIterator iter = getResources();
if ( !iter.hasNext() )
{
throw new EmptyArchiveException( "You must set at least one file." );
}
ArchiveEntry entry = iter.next();
if ( iter.hasNext() )
{
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/org/codehaus/plexus/archiver/xz/XZArchiver.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.codehaus.plexus.archiver.ArchiveEntry;
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.ResourceIterator;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;

/**
* @author philiplourandos
Expand All @@ -43,6 +44,10 @@ protected void execute() throws ArchiverException, IOException
}

ResourceIterator iter = getResources();
if ( !iter.hasNext() )
{
throw new EmptyArchiveException( "You must set at least one file." );
}
ArchiveEntry entry = iter.next();
if ( iter.hasNext() )
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.zip.ZipFile;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.BasePlexusArchiverTest;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
Expand All @@ -57,6 +58,22 @@ public void testCreateArchive()
archiver.createArchive();
}

public void testCreateEmptyArchive()
throws Exception
{
BZip2Archiver archiver = (BZip2Archiver) lookup( Archiver.ROLE, "bzip2" );
archiver.setDestFile( getTestFile( "target/output/empty.bz2" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

public void testCreateResourceCollection()
throws Exception
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.zip.ZipFile;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.BasePlexusArchiverTest;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
Expand All @@ -57,6 +58,23 @@ public void testCreateArchive()
archiver.createArchive();
}


public void testCreateEmptyArchive()
throws Exception
{
GZipArchiver archiver = (GZipArchiver) lookup( Archiver.ROLE, "gzip" );
archiver.setDestFile( getTestFile( "target/output/empty.gz" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

public void testCreateResourceCollection()
throws Exception
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import java.util.zip.ZipFile;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.BasePlexusArchiverTest;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
Expand All @@ -57,6 +58,22 @@ public void testCreateArchive()
archiver.createArchive();
}

public void testCreateEmptyArchive()
throws Exception
{
SnappyArchiver archiver = (SnappyArchiver) lookup( Archiver.ROLE, "snappy" );
archiver.setDestFile( getTestFile( "target/output/empty.snappy" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

public void testCreateResourceCollection()
throws Exception
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.codehaus.plexus.archiver.ArchiverException;
import org.codehaus.plexus.archiver.UnixStat;
import org.codehaus.plexus.archiver.bzip2.BZip2Compressor;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.gzip.GZipCompressor;
import org.codehaus.plexus.archiver.util.ArchiveEntryUtils;
import org.codehaus.plexus.archiver.util.Compressor;
Expand Down Expand Up @@ -227,6 +228,22 @@ public void testCreateArchiveWithDetectedModes()
}
}

public void testCreateEmptyArchive()
throws Exception
{
TarArchiver archiver = getPosixTarArchiver();
archiver.setDestFile( getTestFile( "target/output/empty.tar" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

public void testUnicode() throws Exception
{
File tmpDir = getTestFile( "src/test/resources/utf8" );
Expand Down
17 changes: 17 additions & 0 deletions src/test/java/org/codehaus/plexus/archiver/xz/XzArchiverTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.zip.ZipFile;
import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.BasePlexusArchiverTest;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.zip.ZipArchiver;
import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.IOUtil;
Expand Down Expand Up @@ -60,6 +61,22 @@ public void testCreateArchive()
assertTrue( targetOutputFile.exists() );
}

public void testCreateEmptyArchive()
throws Exception
{
XZArchiver archiver = (XZArchiver) lookup( Archiver.ROLE, "xz" );
archiver.setDestFile( getTestFile( "target/output/empty.xz" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

public void testCreateResourceCollection() throws Exception
{
final File pomFile = new File( "pom.xml" );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
import org.codehaus.plexus.archiver.BasePlexusArchiverTest;
import org.codehaus.plexus.archiver.UnArchiver;
import org.codehaus.plexus.archiver.UnixStat;
import org.codehaus.plexus.archiver.exceptions.EmptyArchiveException;
import org.codehaus.plexus.archiver.tar.TarArchiver;
import org.codehaus.plexus.archiver.tar.TarFile;
import org.codehaus.plexus.archiver.util.ArchiveEntryUtils;
Expand Down Expand Up @@ -284,6 +285,22 @@ public void testCreateArchiveWithDetectedModes()
}
}

public void testCreateEmptyArchive()
throws Exception
{
ZipArchiver archiver = getZipArchiver();
archiver.setDestFile( getTestFile( "target/output/empty.zip" ) );
try
{
archiver.createArchive();

fail( "Creating empty archive should throw EmptyArchiveException" );
}
catch ( EmptyArchiveException ignore )
{
}
}

private ZipArchiver getZipArchiver()
{
try
Expand Down