You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Soundararajan Thevaraj (JIRA)" <ji...@apache.org> on 2010/04/19 14:49:52 UTC

[jira] Updated: (COMPRESS-105) While Archiving the empty directories are not archived to the archive.

     [ https://issues.apache.org/jira/browse/COMPRESS-105?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Soundararajan Thevaraj updated COMPRESS-105:
--------------------------------------------

    Attachment: TestDirectory.java

Hi Stefan,

   Thanks for your comments. But i tried by adding the "/" at the end of the entry name. It was not working. I have attached the java file for your reference. Kindly review that.

I am trying to archive a folder "test" which contains the child folder called "empty folder" with zero entries.

But Getting the same exception as below
File Created in PathC:\DOCUME~1\157558\LOCALS~1\Temp\sample738293534710494610.zip
FileName =test/
Exception in thread "main" java.io.IOException: This archives contains unclosed entries.
	at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:343)
	at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:550)
	at TestDirectory.createArchive(TestDirectory.java:49)
	at TestDirectory.main(TestDirectory.java:66)


> While Archiving the empty directories are not archived to the archive.
> ----------------------------------------------------------------------
>
>                 Key: COMPRESS-105
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-105
>             Project: Commons Compress
>          Issue Type: Bug
>         Environment: 64 bit Windows Vista, JDK1.4.1_11
>            Reporter: Soundararajan Thevaraj
>             Fix For: 1.0
>
>         Attachments: TestDirectory.java
>
>
> I am trying to create a zip archive. I am having a empty directory "test" . When i try to create it to archive . The archive created but the test folder is created as file. And also I got the below exception.
> Temp file created at C:\Users\Soundar\AppData\Local\Temp\sample5278197872513888977.zip
> Exception in thread "main" java.io.IOException: This archives contains unclosed entries.
> 	at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:343)
> 	at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:550)
> 	at com.tcs.tools.archive.test.ArchiveTest.createArchive(ArchiveTest.java:64)
> 	at com.tcs.tools.archive.test.ArchiveTest.main(ArchiveTest.java:119)
> Code used
> -------------
> 	protected File createArchive(String archivename) throws Exception {
> 		ArchiveOutputStream out = null;
> 		OutputStream stream = null;
> 		ArchiveStreamFactory factory = new ArchiveStreamFactory();
> 		try {
> 			File archive = File.createTempFile("sample", "." + archivename);
> 			System.out.println("Temp file created at " + archive.getAbsolutePath());
> 			List archiveList = new ArrayList();
> 			stream = new FileOutputStream(archive);
> 			out = factory.createArchiveOutputStream(archivename, stream);
> 			final File file7 = new File("C:\\Users\\Soundar\\Desktop\\test");
> 			addArchiveEntry(out, "test", file7);
> 			System.out.println("Going to process directory");
> 			System.out.println("Directory Name =" + file7.getName());
> 			ArchiveEntry entry = out.createArchiveEntry(file7, "test");
> 			out.putArchiveEntry(entry);
> 			IOUtils.copy(new FileInputStream(file7), out);
> 			out.closeArchiveEntry();
> 			out.finish();
> 			return archive;
> 		} finally {
> 			if (out != null) {
> 				out.close();
> 			} else if (stream != null) {
> 				stream.close();
> 			}
> 		}
> 	}
> Note
> ------
> I tried the same archiving using the compressed zip of Windows Vista default feature. It creates the Sample.zip which contains the empty test folder as archived.
> I know there is a work around  using java.util.zip.zipEntry. But is there a  work around in our Compress itself?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.