| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <!-- |
| This file is also used by the maven-changes-plugin to generate the release notes. |
| Useful ways of finding items to add to this file are: |
| |
| 1. Add items when you fix a bug or add a feature (this makes the |
| release process easy :-). |
| |
| 2. Do a JIRA search for tickets closed since the previous release. |
| |
| 3. Use the report generated by the maven-changelog-plugin to see all |
| SVN commits. TBA how to use this with SVN. |
| |
| To generate the release notes from this file: |
| |
| mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=m.n] |
| |
| The <action> type attribute can be add,update,fix,remove. |
| --> |
| |
| <document xmlns="http://maven.apache.org/changes/1.0.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd"> |
| <properties> |
| <title>Apache Commons Compress Release Notes</title> |
| </properties> |
| <body> |
| <release version="1.27.0" date="YYYY-MM-DD" description="Minor feature and maintenance release."> |
| <!-- FIX --> |
| <action type="fix" issue="COMPRESS-665" dev="ggregory" due-to="Gary Gregory, Elliotte Rusty Harold">Deprecate org.apache.commons.compress.utils.CharsetNames in favor or java.nio.charset.StandardCharsets.</action> |
| <action type="fix" issue="COMPRESS-674" dev="ggregory" due-to="Gren Elliot">Validate TarArchiveEntry checksums #500.</action> |
| <!-- UPDATE --> |
| <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.apache.commons:commons-parent from 66 to 67 #495.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.ow2.asm:asm from 9.6 to 9.7 #504.</action> |
| </release> |
| <release version="1.26.1" date="2024-03-05" description="Minor feature and maintenance release."> |
| <!-- FIX --> |
| <action type="fix" issue="COMPRESS-659" dev="ggregory" due-to="David Handermann, Gary Gregory">TarArchiveOutputStream should use Commons IO Charsets instead of Commons Codec Charsets.</action> |
| <action type="fix" issue="COMPRESS-660" dev="ggregory" due-to="660, Gary Gregory">Add org.apache.commons.codec to OSGi imports #482.</action> |
| <action type="fix" issue="COMPRESS-664" dev="ggregory" due-to="Radek Kraus">Return null value from getNextEntry() for empty file #486.</action> |
| <action type="fix" issue="COMPRESS-664" dev="ggregory" due-to="Elliotte Rusty Harold">Remove unused variables in tests #487.</action> |
| <action type="fix" issue="COMPRESS-666" dev="ggregory" due-to="Cosmin Carabet, Gary Gregory">Multithreaded access to Tar archive throws java.util.zip.ZipException: Corrupt GZIP trailer.</action> |
| <action type="fix" issue="COMPRESS-644" dev="ggregory" due-to="Tim Allison, Gary Gregory">ArchiveStreamFactory.detect(InputStream) returns TAR for ICO file #386.</action> |
| <action type="fix" issue="COMPRESS-661" dev="ggregory" due-to="Alexander Veit, Tilman Hausherr, Gary Gregory">ArchiveInputStream markSupported should always return false.</action> |
| <!-- REMOVE --> |
| <action type="remove" issue="COMPRESS-662" dev="ggregory" due-to="Christoph Loy, Gary Gregory">Remove out of date jar and scripts #483.</action> |
| </release> |
| <release version="1.26.0" date="2024-02-17" description="Minor feature and maintenance release."> |
| <!-- FIX --> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">Check for invalid PAX values in TarArchiveEntry #438.</action> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">Fix for zero size headers in ArjInputStream #439.</action> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich">Fixes and tests for ArInputStream #440.</action> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">Fixes for dump file parsing #442.</action> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">Improve CPIO exception detection and handling #441.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate SkipShieldingInputStream without replacement (no longer used).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-codec, don't duplicate class PureJavaCrc32C (removed package-private class).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-codec, don't duplicate class XXHash32 (deprecated class).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-io, don't duplicate class Charsets (deprecated class).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-io, don't duplicate class IOUtils (deprecated methods).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-io, don't duplicate class BoundedInputStream (deprecated class).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse commons-io, don't duplicate class FileTimes (deprecated TimeUtils methods).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reuse Arrays.equals(byte[], byte[]) and deprecate ArchiveUtils.isEqual(byte[], byte[]).</action> |
| <action type="fix" dev="ggregory" due-to="alumi, Gary Gregory">Add a null-check for the class loader of OsgiUtils #451.</action> |
| <action type="fix" dev="ggregory" due-to="alumi, Gary Gregory">Add a null-check in Pack200.newInstance(String, String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate ChecksumCalculatingInputStream in favor of java.util.zip.CheckedInputStream.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate CRC32VerifyingInputStream.CRC32VerifyingInputStream(InputStream, long, int).</action> |
| <action type="fix" issue="COMPRESS-655" dev="ggregory" due-to="cpreisler, Gary Gregory">FramedSnappyCompressorOutputStream produces incorrect output when writing a large buffer #457.</action> |
| <action type="fix" issue="COMPRESS-657" dev="ggregory" due-to="Sebastian Schuberth, Gary Gregory">Fix TAR directory entries being misinterpreted as files #460.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate unused method FileNameUtils.getBaseName(String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate unused method FileNameUtils.getExtension(String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">ArchiveInputStream.BoundedInputStream.read() incorrectly adds 1 for EOF to the bytes read count.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate IOUtils.read(File, byte[]).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate IOUtils.copyRange(InputStream, long, OutputStream, int).</action> |
| <action type="fix" issue="COMPRESS-653" dev="ggregory" due-to="Zbynek Vyskovsky, Gary Gregory">ZipArchiveOutputStream multi archive updates metadata in incorrect file #455.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate ByteUtils.InputStreamByteSupplier.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate ByteUtils.fromLittleEndian(InputStream, int).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate ByteUtils.toLittleEndian(DataOutput, long, int).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Reduce duplication by having ArchiveInputStream extend FilterInputStream.</action> |
| <action type="fix" dev="ggregory" due-to="Zbynek Vyskovsky, Gary Gregory">Support preamble garbage in ZipArchiveInputStream #471.</action> |
| <action type="fix" issue="COMPRESS-658" dev="ggregory" due-to="Arnout Engelen">Fix formatting the lowest expressable DOS time #472.</action> |
| <action type="fix" dev="ggregory" due-to="Romain Manni-Bucau, Gary Gregory">Drop reflection from ExtraFieldUtils static initialization #480.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Preserve exception causation in ExtraFieldUtils.register(Class).</action> |
| <!-- ADD --> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use ZipFile.builder(), ZipFile.Builder, and deprecate constructors.</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use SevenZFile.builder(), SevenZFile.Builder, and deprecate constructors.</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use ArchiveInputStream.getCharset().</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add and use ArchiveEntry.resolveIn(Path).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action> |
| <!-- UPDATE --> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-lang3 from 3.13.0 to 3.14.0.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump com.github.marschall:memoryfilesystem from 2.6.1 to 2.8.0 #444, #458.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-io from 2.15.0 to 2.15.1.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump org.apache.commons:commons-parent from 64 to 66.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump com.github.luben:zstd-jni from 1.5.5-10 to 1.5.5-11 #448.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump org.slf4j:slf4j-api from 2.0.9 to 2.0.12.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump commons-codec:commons-codec from 1.16.0 to 1.16.1.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-codec:commons-codec:1.16.1.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on org.apache.commons:commons-lang3:3.14.0.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Add dependency on commons-io:commons-io:2.15.1.</action> |
| </release> |
| <release version="1.25.0" date="2023-11-12" description="Minor feature and maintenance release."> |
| <!-- ADD --> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.getFileName() and deprecate getFilename().</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipParameters.setFileName(String) and deprecate setFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add FileNameUtil.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add BZip2Utils.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add LZMAUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add XYUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add XYUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add XYUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipUtils.getCompressedFileName(String) and deprecate getCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipUtils.getUncompressedFileName(String) and deprecate getUncompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add GzipUtils.isCompressedFileName(String) and deprecate isCompressedFilename(String).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add SevenZOutputFile.putArchiveEntry(SevenZArchiveEntry) and deprecate putArchiveEntry(ArchiveEntry).</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add generics to ChangeSet and ChangeSetPerformer.</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add generics to ArchiveStreamProvider and friends.</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add a generic type parameter to ArchiveOutputStream and avoid unchecked/unconfirmed type casts in subclasses.</action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory">Add a generic type parameter to ArchiveInputStream and deprecate redundant get methods in subclasses.</action> |
| <action type="add" issue="COMPRESS-648" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">Add ability to restrict autodetection in CompressorStreamFactory #433.</action> |
| <!-- FIX --> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expression in ArArchiveInputStream.isBSDLongName(String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expression in ArArchiveInputStream.isGNULongName(String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expression in TarArchiveEntry.parseInstantFromDecimalSeconds(String).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Precompile regular expression in ChangeSet.addDeletion(Change).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory" issue="COMPRESS-649">Improve performance in BlockLZ4CompressorOutputStream.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Null-guard Lister.main(String[]) for programmatic invocation.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">NPE in pack200.NewAttributeBands.Reference.addAttributeToBand(NewAttribute, InputStream).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Incorrect lazy initialization and update of static field in pack200.CodecEncoding.getSpecifier(Codec, Codec).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Incorrect string comparison in unpack200.AttributeLayout.numBackwardsCallables().</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Inefficient use of keySet iterator instead of entrySet iterator in pack200.PackingOptions.addOrUpdateAttributeActions(List, Map, int).</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Package private class pack200.IcBands.IcTuple should be a static inner class.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Private class ZipFile.BoundedFileChannelInputStream should be a static inner class.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Refactor internal SevenZ AES256SHA256Decoder InputStream into a named static inner class.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Refactor internal SevenZ AES256SHA256Decoder OutputStream into a named static inner class.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Use the root Locale for string conversion of command line options in org.apache.commons.compress.archivers.sevenz.CLI.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">Calling PackingUtils.config(PackingOptions) with null now closes the internal FileHandler.</action> |
| <action type="fix" issue="COMPRESS-650" dev="ggregory" due-to="Chad Preisler">LZ4 compressor throws IndexOutOfBoundsException.</action> |
| <action type="fix" issue="COMPRESS-632" dev="ggregory" due-to="Yakov Shafranovich, Gary Gregory">LZWInputStream.initializeTables(int) should throw IllegalArgumentException instead of ArrayIndexOutOfBoundsException.</action> |
| <action type="fix" issue="COMPRESS-647" dev="ggregory" due-to="Robin Schimpf, Gary Gregory">Throw IOException instead of ArrayIndexOutOfBoundsException when reading Zip with data descriptor entries.</action> |
| <!-- UPDATE --> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump org.slf4j:slf4j-api from 2.0.8 to 2.0.9 #413.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-io:commons-io from 2.13.0 to 2.15.0.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump com.github.luben:zstd-jni from 1.5.5-5 to 1.5.5-10 #422, #431.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump org.ow2.asm:asm from 9.5 to 9.6 #421.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory">Bump org.apache.commons:commons-parent from 62 to 64 #421.</action> |
| </release> |
| <release version="1.24.0" date="2023-09-04" description="Minor feature and maintenance release."> |
| <!-- ADD --> |
| <action type="add" dev="kinow" due-to="Gary Gregory">Make ZipArchiveEntry.getLocalHeaderOffset() public.</action> |
| <!-- FIX --> |
| <action type="fix" dev="ggregory" due-to="Daniele Galloppo">Use try-with-resources in ArchiveStreamFactory #391.</action> |
| <action type="fix" dev="ggregory" due-to="Martin Wiesner">Javadoc and code comments: Sanitize grammar issues and typos #393.</action> |
| <action type="fix" dev="ggregory" due-to="Martin Wiesner">Remove redundant (null) initializations #394.</action> |
| <action dev="ggregory" type="fix" due-to="step-security-bot, Gary Gregory">[StepSecurity] ci: Harden GitHub Actions #396.</action> |
| <!-- UPDATE --> |
| <action type="update" dev="kinow" due-to="Dependabot">Bump zstd-jni from 1.5.4-2 to 1.5.5-5 #377, #383, #388, #390, #400.</action> |
| <action type="update" dev="kinow" due-to="Dependabot">Bump memoryfilesystem from 2.5.0 to 2.6.1 #381, #385, #387.</action> |
| <action type="update" dev="kinow" due-to="Dependabot, Gary Gregory">Bump commons-parent from 56 to 61 #384.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-io:commons-io from 2.11.0 to 2.13.0.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump commons-lang3 from 3.12.0 to 3.13.0.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump org.slf4j:slf4j-api from 2.0.7 to 2.0.8.</action> |
| </release> |
| <release version="1.23.0" date="2023-03-18" description="Minor feature and maintenance release."> |
| <!-- FIX --> |
| <action type="fix" dev="ggregory" due-to="CodeQL, Gary Gregory">Implicit narrowing conversion in compound assignment.</action> |
| <action type="fix" dev="ggregory" due-to="CodeQL, Gary Gregory">Avoid NPE in FileNameUtils.getBaseName(Path) for paths with zero elements like root paths.</action> |
| <action type="fix" dev="ggregory" due-to="CodeQL, Gary Gregory">Avoid NPE in FileNameUtils.getExtension(Path) for paths with zero elements like root paths.</action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory">LZMA2Decoder.decode() looses original exception.</action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal">Extract conditions and avoid duplicate code. #297.</action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal">Remove duplicate conditions. Use switch instead. #298.</action> |
| <action type="fix" dev="ggregory" due-to="Robin Schimpf">Replace JUnit 3 and 4 with JUnit 5 #344, #346.</action> |
| <action type="fix" dev="ggregory" due-to="Glavo">Make 'ZipFile.offsetComparator' static #353.</action> |
| <action type="fix" issue="COMPRESS-638" dev="ggregory" due-to="Radar wen, Gary Gregory, Michael Osipov"> |
| The GzipCompressorOutputStream#writeHeader() uses ISO_8859_1 to write the file name and comment. |
| If the strings contains non-ISO_8859_1 characters, unknown characters are displayed after decompression. |
| Use percent encoding for non ISO_8859_1 characters. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Jonathan Leitschuh, Gary Gregory">Port some code from IO to NIO APIs.</action> |
| <action type="fix" dev="ggregory" due-to="Una, Gary Gregory, Jochen Wiedmann, quaternary, Bruno P. Kinoshita">pack200: Fix FileBands misusing InputStream#read(byte[]) #360.</action> |
| <action type="fix" issue="COMPRESS-641" dev="ggregory" due-to="XenoAmess, Gary Gregory, Bruno P. Kinoshita">Add TarArchiveEntry.getLinkFlag() #365.</action> |
| <action type="fix" issue="COMPRESS-642" dev="ggregory" due-to="Anton Klarén, Gary Gregory">Integer overflow ArithmeticException in TarArchiveOutputStream #368.</action> |
| <action type="fix" issue="COMPRESS-502" dev="ggregory" due-to="Dominik Stadler, Stefan Bodewig, Gary Gregory">org.apache.commons.compress.archivers.zip.ZipFile.finalize() should not write to std err.</action> |
| <!-- ADD --> |
| <action type="add" issue="COMPRESS-614" dev="ggregory" due-to="Andre Brait, Gary Gregory">Use FileTime for time fields in SevenZipArchiveEntry #256.</action> |
| <action type="add" issue="COMPRESS-621" dev="ggregory" due-to="Glavo">Fix calculation the offset of the first ZIP central directory entry #334.</action> |
| <action type="add" issue="COMPRESS-633" dev="ggregory" due-to="Daniel Santos, Bruno P. Kinoshita, Gary Gregory">Add encryption support for SevenZ #332.</action> |
| <action type="add" issue="COMPRESS-613" dev="ggregory" due-to="Andre Brait, Gary Gregory, Bruno P. Kinoshita">Support for extra time data in Zip archives #345.</action> |
| <action type="add" issue="COMPRESS-621" dev="ggregory" due-to="Gary Gregory">Add org.apache.commons.compress.archivers.zip.DefaultBackingStoreSupplier to write to a custom folder instead of the default temporary folder.</action> |
| <action type="add" issue="COMPRESS-600" dev="ggregory" due-to="Gary Gregory, Pascal Davoust">Add capability to configure Deflater strategy in GzipCompressorOutputStream: GzipParameters.setDeflateStrategy(int).</action> |
| <!-- REMOVE --> |
| <action type="remove" dev="ggregory" due-to="Gary Gregory">Remove BZip2CompressorOutputStream.finalize() which only wrote to std err.</action> |
| <!-- UPDATE --> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump mockito.version from 4.8.0 to 4.11.0 #328, #331, #340, #348.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump pmd from 6.50.0 to 6.53.0.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump memoryfilesystem from 2.3.0 to 2.5.0 #330, #359.</action> |
| <action type="update" dev="kinow" due-to="Dependabot">Bump slf4j-api from 2.0.3 to 2.0.7 #329, #333, #341, #371.</action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory">Bump japicmp from 0.16.0 to 0.17.1.</action> |
| <action type="update" dev="ggregory" due-to="Dependabot">Bump commons-parent from 54 to 56 #339, #349.</action> |
| <action type="update" dev="kinow" due-to="Dependabot">Bump zstd-jni from 1.5.2-5 to 1.5.4-2 #362, #364.</action> |
| <action type="update" dev="kinow" due-to="Dependabot">Bump asm from 9.4 to 9.5 #376.</action> |
| </release> |
| <release version="1.22" date="2022-11-01" description="Minor feature and maintenance release."> |
| <!-- FIX --> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory"> |
| Fix some compiler warnings in pack200 packages. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory"> |
| Close File input stream after unpacking in Pack200UnpackerAdapter.unpack(File, JarOutputStream). |
| </action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory"> |
| Pack200UnpackerAdapter.unpack(InputStream, JarOutputStream) should not close its given input stream. |
| </action> |
| <action issue="COMPRESS-596" type="fix" date="2021-12-07" dev="Peter Lee" due-to="Tamas Mucs"> |
| Fix minor problem in examples. |
| </action> |
| <action issue="COMPRESS-584" type="fix" date="2021-08-11" dev="matthijsln" due-to="Matthijs Laan, Peter Lee"> |
| Add a limit to the copy buffer in IOUtils.readRange() to |
| avoid reading more from a channel than asked for. |
| Github Pull Request #214. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Helder Magalhães, Gary Gregory, PeterAlfredLee"> |
| Documentation nits #217. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Replace wrapper Collections.sort is with an instance method directly. #245. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Replace manual comparisons with Comparator.comparingInt() #244. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Replace manual copy of array contents with System.arraycopy() #246. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Glavo, Bruno P. Kinoshita, PeterAlfredLee, Gary Gregory"> |
| Fix thread safety issues when encoding 7z password #248. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Peter Dettman"> |
| bzip2: calculate median-of-3 on unsigned values #242. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal, Gary Gregory, Bruno P. Kinoshita"> |
| Use Math.min and Math.max calculations. #247. |
| </action> |
| <action issue="COMPRESS-603" type="fix" date="2022-02-09" dev="Peter Lee" due-to="Matt Sicker"> |
| Expander should be able to work if an entry's name is "./". |
| </action> |
| <action issue="COMPRESS-604" type="fix" dev="ggregory" due-to="Andre Brait"> |
| Ensure compatibility with Java 8 #252. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Use StringBuilder instead of StringBuffer. #284. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Inline variable. Remove redundant local variable. #283. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Use compare method #285. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Remove Unnecessary interface modifiers #281. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Arturo Bernal"> |
| Avoid use C-style array declaration. #282. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory"> |
| ChecksumVerifyingInputStream.read() does not always validate checksum at end-of-stream. |
| </action> |
| <action type="fix" dev="ggregory" due-to="Matt Juntunen"> |
| Fix TarFileTest #289. |
| </action> |
| <action issue="COMPRESS-625" type="fix" dev="ggregory" due-to="MrBump, Gary Gregory"> |
| Update Wikipedia link in TarUtils.java:627. |
| </action> |
| <action issue="COMPRESS-626" type="fix" dev="ggregory" due-to="Andrii Hudz, Gary Gregory"> |
| OutOfMemoryError on malformed pack200 input (attributes). |
| </action> |
| <action issue="COMPRESS-628" type="fix" dev="ggregory" due-to="Andrii Hudz, Gary Gregory"> |
| OutOfMemoryError on malformed pack200 input (org.apache.commons.compress.harmony.pack200.NewAttributeBands.readNextUnionCase). |
| </action> |
| <action issue="COMPRESS-628" type="fix" dev="ggregory" due-to="Gary Gregory"> |
| OutOfMemoryError on malformed unpack200 input (org.apache.commons.compress.harmony.unpack200.NewAttributeBands.readNextUnionCase). |
| </action> |
| <action type="fix" dev="ggregory" due-to="Gary Gregory"> |
| Some input streams are not closed in org.apache.commons.compress.harmony.pack200.PackingUtils. |
| </action> |
| <action issue="COMPRESS-627" type="fix" dev="ggregory" due-to="anatawa12, Gary Gregory"> |
| Pack200 causes a 'archive.3E' error if it’s not in the system class loader. |
| </action> |
| <!-- ADD --> |
| <action issue="COMPRESS-602" type="add" dev="ggregory" due-to="Postelnicu George, Gary Gregory"> |
| Migrate ZIP package to use NIO #236. |
| </action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory"> |
| Add APK file extension constants: ArchiveStreamFactory.APK, APKM, APKS, XAPK. |
| </action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory"> |
| ArchiveStreamFactory.createArchiveInputStream(String, InputStream, String) supports the "APK" format (it's a JAR). |
| </action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory"> |
| Expander example now has NIO Path versions of IO File APIs. |
| </action> |
| <action issue="COMPRESS-612" type="add" dev="ggregory" due-to="Andre Brait, Gary Gregory"> |
| Improve TAR support for file times #254. |
| </action> |
| <action type="add" dev="ggregory" due-to="Gary Gregory"> |
| Add SevenZArchiveEntry.setContentMethods(SevenZMethodConfiguration...). |
| </action> |
| <!-- UPDATE --> |
| <action type="update" dev="kinow" due-to="Dependabot, Gary Gregory"> |
| Bump actions/cache from 2.1.6 to 3.0.10 #230, #257, #305, #320. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory"> |
| Bump actions/checkout from 2.3.4 to 3.1.0 #226, #227, #251, #300, #321. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump actions/setup-java from 2 to 3.5.1 #278. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump github/codeql-action from 1 to 2 #287. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump mockito-core from 3.11.1 to 4.6.1 #209, #224, #231, #235, #243, #253, #286, #294. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump org.apache.felix.framework from 7.0.0 to 7.0.1 #208. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump memoryfilesystem from 2.1.0 to 2.3.0 #212, #237. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot, Gary Gregory"> |
| Bump zstd-jni from 1.5.0-2 to 1.5.2-5 #215, #233, #238, #240, #250, #291, #326. |
| </action> |
| <action type="update" issue="COMPRESS-582" dev="ggregory" due-to="Alex Landau, Stephan, Gary Gregory"> |
| Bump Pack200 packages from ASM 3.2 to 9.2 #216. |
| Breaks binary compatibility in the internals of the pack200 implementation: |
| - org.apache.commons.compress.harmony.pack200.Segment |
| - org.apache.commons.compress.harmony.pack200.SegmentMethodVisitor |
| - org.apache.commons.compress.harmony.pack200.SegmentAnnotationVisitor |
| - org.apache.commons.compress.harmony.pack200.SegmentFieldVisitor |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump asm from 9.2 to 9.4 #279, #322. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump maven-javadoc-plugin from 3.3.0 to 3.4.1 #221, #249, #288, #308. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot"> |
| Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #296, #309, #311. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Bump pmd from 6.44.0 to 6.50.0. |
| </action> |
| <action type="update" dev="kinow" due-to="Gary Gregory"> |
| Bump commons.japicmp.version from 0.15.3 to 0.16.0. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump maven-bundle-plugin from 5.1.2 to 5.1.8 #234, #239, #290, #292, #301, #304. |
| </action> |
| <action type="update" dev="ggregory" due-to="Dependabot"> |
| Bump org.apache.felix.framework from 7.0.1 to 7.0.5 #232, #295. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump slf4j-api from 1.7.30 to 2.0.3 #213, #241, #258, #310, #314, #315, #318. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot, Gary Gregory"> |
| Bump commons-parent from 52 to 54 #280. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Bump commons.jacoco.version from 0.8.7 to 0.8.8. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump junit.version from 5.8.2 to 5.9.1 #302, #317. |
| </action> |
| <action type="update" dev="kinow" due-to="Dependabot"> |
| Bump mockito.version from 4.6.1 to 4.8.0 #307, #312. |
| </action> |
| <action type="update" dev="ggregory" due-to="Gary Gregory"> |
| Bump maven-surefire-plugin from 3.0.0-M6 to 3.0.0-M7. |
| </action> |
| </release> |
| <release version="1.21" date="2021-07-12" |
| description="Release 1.21 (Java 8 or above) |
| ---------------------------------------- |
| |
| SevenZFileOptions has a new setting that needs to be enabled explicity |
| if SevenZFile should try to recover broken archives - a feature |
| introduced with Commons Compress 1.19. This is a breaking change if |
| you relied on the recovery attempt."> |
| <action type="update" date="2020-03-07" |
| due-to="Peter Alfred Lee"> |
| Made sure ZstdCompressorOutputStream no longer used |
| deprecated ZstOutputStream constructors. |
| Github Pull Request #94. |
| </action> |
| <action issue="COMPRESS-504" type="update" date="2020-03-16"> |
| Make compression level of ParallelScatterZipCreator |
| configurable via a new constructor. |
| </action> |
| <action issue="COMPRESS-505" type="fix" date="2020-03-24"> |
| Fix bugs in random access of 7z. Problems may happen |
| in a mixture use of random access and sequential access |
| of 7z. |
| Github Pull Request #95. |
| </action> |
| <action issue="COMPRESS-510" type="fix" date="2020-04-18"> |
| Fix bugs in random access of 7z. Exceptions are thrown |
| when reading the first entry multiple times by random |
| access. |
| </action> |
| <action issue="COMPRESS-509" type="fix" date="2020-05-06" |
| due-to="Petr Vasak" dev="PeterLee"> |
| Add '/' to directories with long name in tar. This is to |
| resolve the ambiguous behavior of the TarArchiveEntry.getName() |
| method between directory with short name and long name. |
| </action> |
| <action issue="COMPRESS-520" type="fix" date="2020-05-23" due-to="Robin Schimpf"> |
| Removed the PowerMock dependency. |
| </action> |
| <action issue="COMPRESS-516" type="fix" date="2020-05-23"> |
| Added improved checks to detect corrupted bzip2 streams and |
| throw the expected IOException rather than obscure |
| RuntimeExceptions. |
| See also COMPRESS-519. |
| </action> |
| <action issue="COMPRESS-517" type="fix" date="2020-05-23"> |
| Improved parsing of X5455_ExtendedTimestamp ZIP extra field. |
| </action> |
| <action issue="COMPRESS-518" type="fix" date="2020-05-23"> |
| ZipArchiveInputStream and ZipFile will now throw an |
| IOException rather than a RuntimeException if the zip64 extra |
| field of an entry could not be parsed. |
| </action> |
| <action issue="COMPRESS-523" type="fix" date="2020-05-23"> |
| Improved detection of corrupt ZIP archives in ZipArchiveInputStream. |
| </action> |
| <action issue="COMPRESS-521" type="fix" date="2020-05-24"> |
| Added improved checks to detect corrupted deflate64 streams and |
| throw the expected IOException rather than obscure |
| RuntimeExceptions. |
| See also COMPRESS-522, COMPRESS-525, COMPRESS-526, and COMPRESS-527. |
| </action> |
| <action issue="COMPRESS-515" type="fix" date="2020-05-22" due-to="ian-lavallee"> |
| Add the archive name in the exception in the constructor of |
| ZipFile to make it a more specific exception. |
| Github Pull Request #102. |
| </action> |
| <action issue="COMPRESS-530" type="fix" date="2020-05-26"> |
| Throw IOException when it encounters a non-number while parsing pax header. |
| </action> |
| <action issue="COMPRESS-531" type="fix" date="2020-05-31"> |
| Throw IOException when a tar archive contains a PAX header |
| without any normal entry following it. |
| </action> |
| <action issue="COMPRESS-532" type="fix" date="2020-05-31"> |
| Added improved checks to detect corrupted IMPLODED streams and |
| throw the expected IOException rather than obscure |
| RuntimeExceptions. |
| </action> |
| <action issue="COMPRESS-529" type="fix" date="2020-06-01"> |
| Throw expected IOException instead of NumberFormatException if |
| it encounters non-numbers when parsing pax headers for tarball. |
| |
| Throw IllegalArgumentException instead of RuntimeExceptions if |
| the file name is longer than 100 bytes with the longFileMode |
| of LONGFILE_ERROR, and address this in java docs. |
| |
| Throw IllegalArgumentException instead of RuntimeExceptions if |
| the any of the numeric values of an entry exceeds the limits |
| of a traditional tar header while bigNumberMode is |
| BIGNUMBER_ERROR, and address this in java docs. |
| </action> |
| <action issue="COMPRESS-536" type="update" date="2020-06-03" |
| due-to="Jin Xu"> |
| Made an inner class static |
| Github Pull Request #107. |
| </action> |
| <action issue="COMPRESS-535" type="update" date="2020-06-06" |
| due-to="Jin Xu"> |
| added an early exit to a loop in BZip2CompressorOutputStream |
| Github Pull Request #106. |
| </action> |
| <action issue="COMPRESS-404" type="update" date="2020-06-08" due-to="theobisproject"> |
| Update the class of variable file in TarArchiveEntry from |
| java.io.File to java.nio.file.Path. Corresponding constructors |
| and methods are also modified/added. |
| |
| NOTE: The userName, groupName, userID and groupID will also be |
| set if they are available. The userName and groupName was not |
| set previously, and the previous value of UserID:GroupID was |
| 0:0 by default. |
| Please note this may cause a reproducibility problem. |
| |
| Github Pull Request #97. |
| </action> |
| <action issue="COMPRESS-539" type="update" date="2020-07-04" due-to="Robin Schimpf"> |
| Reuse the record buffer in TarArchiveInputStream. |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add SevenZOutputFile.write(InputStream). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add SevenZOutputFile.write(Path, OpenOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add SevenZOutputFile.createArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add ArArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add ArArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add ctor CpioArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add ctor CpioArchiveEntry(short, Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add CpioArchiveEntry.setTime(FileTime). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add TarArchiveOutputStream.createArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add ctor TarArchiveEntry(Path, String, LinkOption...). |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add IOUtils.EMPTY_LINK_OPTIONS. |
| </action> |
| <action type="update" date="2020-08-08" due-to="Gary Gregory" dev="ggregory"> |
| Add Path support to ZipArchiveOutputStream #123. |
| </action> |
| <action issue="COMPRESS-543" type="fix" date="2020-08-10" |
| due-to="wulf2333" dev="PeterLee"> |
| Fix for test fails on Windows. The tests are failing because the |
| default charset is not UTF-8. |
| </action> |
| <action issue="COMPRESS-544" type="fix" date="2020-08-13" |
| due-to="Aditya Prasad" dev="PeterLee"> |
| TarArchiveInputStream can not detect a truncated tar in skip() |
| and skipRecordPadding(). |
| </action> |
| <action issue="COMPRESS-542" type="fix" date="2020-08-15" |
| due-to="theobisproject" dev="theobisproject"> |
| Make the memory allocation in SevenZFile.readFilesInfo a lazy |
| allocation to avoid OOM when dealing some giant 7z archives. |
| Github Pull Request #120. |
| |
| Also added sanity checks before even trying to parse an |
| archive and made SevenZFileOptions' maxMemorySizeInKb apply to |
| the stored metadata for an archive. |
| |
| And further added an option that needs to be enabled in order |
| to make SevenZFile try to recover a broken archive. This is a |
| backwards incompatible change. |
| </action> |
| <action issue="COMPRESS-546" type="fix" date="2020-08-15" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| ZipArchiveInputStream should throw an exception if a corrputed |
| zip64 extra field is met. |
| </action> |
| <action type="fix" date="2020-08-22" dev="PeterLee"> |
| Add a new maven profile in pom.xml for JDK14+ to ignore the |
| failing tests about Pack200. |
| |
| This has later been superseeded by adding the Apache Harmony |
| classes for Pack200 support. |
| </action> |
| <action issue="COMPRESS-548" type="fix" date="2020-08-24" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| Throw an IOException when reading the ZIP extra field if the |
| length is too short. |
| </action> |
| <action issue="COMPRESS-554" type="fix" date="2020-09-01" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| Throw an declared IOException if a null entry is met when |
| reading a global pax header instead of a runtime NPE. |
| </action> |
| <action issue="COMPRESS-545" type="fix" date="2020-09-02" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| ZIP extraction could lead to ArrayIndexOutOfBoundsExceptions |
| rather than the expected IOException. |
| </action> |
| <action issue="COMPRESS-547" type="fix" date="2020-09-02" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| Add asserts for Arrays.copyOf in X0017_StrongEncryptionHeader. |
| </action> |
| <action issue="COMPRESS-550" type="add" date="2020-09-07" |
| due-to="Scott Frederick" dev="PeterLee"> |
| Add writePreamble to ZipArchiveInputStream. This method could |
| write raw data to ZIP archive before any entry was written to |
| the ZIP archive. |
| For most of the time, this is used to create self-extracting |
| ZIP. |
| Github Pull Request #127. |
| </action> |
| <action type="fix" date="2020-09-24" dev="PeterLee"> |
| Fix for the CFH signature detect in ZipArchiveInputStream. |
| The problem could be reproduced by a ZIP archive with Data |
| Descriptor and STORED, and without the Data Descriptor |
| signature. |
| </action> |
| <action issue="COMPRESS-553" type="fix" date="2020-10-07" |
| due-to="Maksim Zuev" dev="PeterLee"> |
| The length validation in TarArchiveInputStream.parsePaxHeaders |
| should also consider the headers with length smaller than 1 |
| and ignore these headers. |
| </action> |
| <action issue="COMPRESS-558" type="fix" date="2020-11-13" |
| due-to="Robin Schimpf" dev="Robin Schimpf"> |
| Fix accidentally added '/' to file names. |
| This problem is caused by the incomplete fix of |
| COMPRESS-509. |
| Github Pull Request #151. |
| </action> |
| <action issue="COMPRESS-560" type="fix" date="2020-11-30" |
| due-to="Robin Schimpf" dev="Robin Schimpf"> |
| As sparse entries can be successfully parsed now, |
| TarArchiveInputStream.canReadEntryData should return |
| true if the entry is a sparse entry. |
| Github Pull Request #153. |
| </action> |
| <action issue="COMPRESS-559" type="fix" date="2020-12-10" |
| due-to="Robin Schimpf" dev="Robin Schimpf"> |
| SparseFilesTest#testExtractPaxGNU should be skipped |
| if the version of GNU tar binary is 1.28. |
| Github Pull Request #152. |
| </action> |
| <action issue="COMPRESS-561" type="update" date="2020-12-22" |
| due-to="Arturo Bernal" dev="Arturo Bernal"> |
| Some minor improvements. |
| Github Pull Request #157. |
| </action> |
| <action issue="COMPRESS-540" type="add" date="2020-01-09" |
| due-to="Robin Schimpf" dev="Robin Schimpf"> |
| Added support for random access to the TAR packages. |
| Github Pull Request #113. |
| </action> |
| <action issue="COMPRESS-565" type="add" date="2021-02-14" |
| due-to="Michael L Heuer" dev="PeterLee"> |
| Added support for BufferPool in ZstdCompressorInputStream. |
| Github Pull Request #165. |
| </action> |
| <action type="fix" date="2021-02-27" due-to="Fabian Meumertzheim"> |
| Removed an empty loop that was just warming the planet for |
| certain ZIP archives. |
| Github Pull Request #172. |
| </action> |
| <action issue="COMPRESS-567" type="fix" date="2021-02-28"> |
| Made some of the stream classes used internally throw |
| IOExceptions on illegal arguments rather than |
| RuntimeExceptions to make it more likely that corrupt archives |
| cause expected checked exceptions rather than RuntimException |
| for various formats. |
| |
| Fixes a specific case for ZIP but affects other formats as |
| well. |
| </action> |
| <action issue="COMPRESS-507" type="add" date="2021-07-02" |
| due-to="Gary Gregory, Apache Harmony" dev="ggregory"> |
| Commons Compress cannot be built with JDK14 due to Pack200 removal. |
| Add Pack200 implementation from Apache Harmony. |
| </action> |
| <action type="fix" date="2021-07-02" due-to="Arturo Bernal" dev="ggregory"> |
| Simplify Assertions #205. |
| </action> |
| <!-- UPDATE --> |
| <action type="update" date="2020-08-18"> |
| Update from Java 7 to 8. |
| </action> |
| <action type="update" date="2020-08-10" due-to="Dependabot" dev="ggregory"> |
| Update GitHub actions/checkout from v1 to v2.3.4, #114, #124, #139, #150. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot, Gary Gregory" dev="ggregory"> |
| Update actions/setup-java from v1.4.0 to v2, #125, #133, #141. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot, Gary Gregory" dev="ggregory"> |
| Update com.github.luben:zstd-jni from 1.4.4-7 to 1.5.0-2, #118, #159, #173, #174, #203. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot" dev="ggregory"> |
| Update tests slf4j-api from 1.7.26 to 1.7.30 #117. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot" dev="ggregory"> |
| Update maven-pmd-plugin from 3.12.0 to 3.14.0, #115, #154. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot" dev="ggregory"> |
| Update maven-bundle-plugin from 3.5.1 to 5.1.2 #116, #180. |
| </action> |
| <action type="update" date="2020-11-01" due-to="Dependabot" dev="ggregory"> |
| Bump memoryfilesystem from 1.3.0 to 2.1.0 #131. |
| </action> |
| <action type="update" due-to="Dependabot" dev="ggregory"> |
| Bump actions/cache from v2 to v2.1.6, #164, #200. |
| </action> |
| <action type="update" due-to="Dependabot" dev="ggregory"> |
| Bump junit from 4.13 to 4.13.2, #143, #167. |
| </action> |
| <action type="update" due-to="Dependabot" dev="ggregory"> |
| Bump mockito-core from 1.10.19 to 3.11.1, #161, #170, #204. |
| </action> |
| <action type="update" due-to="Gary Gregory" dev="ggregory"> |
| Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16 builds). |
| </action> |
| <action type="update" due-to="Gary Gregory" dev="ggregory"> |
| Bump org.apache.felix:org.apache.felix.framework from 6.0.3 to 7.0.0 (Java 16 builds). |
| </action> |
| <action type="update" due-to="Gary Gregory" dev="ggregory"> |
| Bump commons.japicmp.version from 0.14.3 to 0.15.3 (Java 16 builds). |
| </action> |
| <action type="update" due-to="Gary Gregory" dev="ggregory"> |
| Bump commons.javadoc.version from 3.2.0 to 3.3.0. |
| </action> |
| <action issue="COMPRESS-569" type="fix" date="2021-03-06"> |
| Checked the sizes read for archive entries and reject archives |
| as broken with negative entry sizes. |
| |
| Fixes an infinite loop in the new TarFile class but affects |
| several formats. |
| </action> |
| <action issue="COMPRESS-552" type="fix" date="2021-03-07"> |
| OSGi detection was broken and so we always cached whether |
| XZ/brotli/zstd/LZMA have been available even in OSGi |
| environments. |
| </action> |
| <action issue="COMPRESS-571" type="fix" date="2021-03-17"> |
| SevenZFile.getEntries now return a copy of entries. |
| </action> |
| <action type="update" date="2020-08-21" due-to="Dependabot" dev="PeterLee"> |
| Update com.github.luben:zstd-jni from 1.4.8-7 to 1.4.9-1 #176. |
| </action> |
| <action issue="COMPRESS-575" type="fix" date="2021-05-01"> |
| Handling of sparse tar entries has been hardened to ensure bad |
| inputs cause expected IOExceptions rather than RuntimeExceptions. |
| </action> |
| <action type="update" date="2021-05-12"> |
| Update org.tukaani:xz from 1.8 to 1.9 |
| </action> |
| <action issue="COMPRESS-565" type="add" date="2021-05-19" due-to="Evgenii Bovykin" dev="PeterLee"> |
| Add a new AlwaysWithCompatibility in Zip64Mode, this is a |
| compromise for some libraries including 7z and Expand-Archive |
| Powershell utility(and likely Excel). |
| |
| And we will encode both the LFH offset and Disk Number Start |
| in the ZIP64 Extended Information Extra Field - even if only |
| the disk number needs to be encoded. |
| |
| Github Pull Request #169. |
| </action> |
| <action issue="COMPRESS-577" type="update" date="2021-05-22" |
| due-to="Arturo Bernal" dev="Arturo Bernal"> |
| Some minor improvements. |
| Github Pull Request #193. |
| </action> |
| <action issue="COMPRESS-578" type="update" date="2021-05-22" |
| due-to="Arturo Bernal" dev="Arturo Bernal"> |
| Java8 improvements. |
| Github Pull Request #194. |
| </action> |
| <action issue="COMPRESS-579" type="update" date="2021-05-22" |
| due-to="Arturo Bernal" dev="Arturo Bernal"> |
| Remove redundant local variable. |
| Github Pull Request #195. |
| </action> |
| <action issue="COMPRESS-580" type="update" date="2021-05-22" |
| due-to="Arturo Bernal" dev="Arturo Bernal"> |
| Remove redundant operation |
| Github Pull Request #196. |
| </action> |
| <action issue="COMPRESS-566" type="add" date="2021-05-24" |
| due-to="Brett Okken"> |
| gzip deflate buffer size is now configurable. |
| </action> |
| <action type="fix" date="2021-06-05"> |
| The parser for GNU sparse tar headers could throw a |
| NullPointerExcpetion rather than an IOException if the archive |
| ended while more sparse headers were expected. |
| </action> |
| <action issue="COMPRESS-591" type="update" date="2021-09-29" |
| due-to="Lasse Collin" dev="Peter Lee"> |
| Call enableRelaxedEndCondition() to enable decoding of 7z |
| files containing LZMA streams with end marker. |
| Github Pull Request #223. |
| </action> |
| <action issue="COMPRESS-592" type="fix" date="2021-10-29" |
| dev="Peter Lee" due-to="Roland Kreuzer"> |
| Use LinkedHashMap for fileMap in SevenZFile.readFilesInfo, |
| as it will be read in specific order. |
| </action> |
| </release> |
| <release version="1.20" date="2020-02-08" |
| description="Release 1.20 (Java 7 or above)"> |
| <action issue="COMPRESS-493" type="update" date="2019-08-27"> |
| Update optional library com.github.luben:zstd-jni from 1.4.0-1 to 1.4.4-7. |
| </action> |
| <action type="update" date="2019-08-27"> |
| Update tests from org.apache.felix:org.apache.felix.framework 6.0.2 to 6.0.3. |
| </action> |
| <action issue="COMPRESS-492" type="fix" date="2019-08-28"> |
| SevenZFile could throw NullPointerException rather than |
| IOException for certain archives. In addition it now handles |
| certain empty archives more gracefully. |
| </action> |
| <action issue="COMPRESS-491" type="fix" date="2019-09-01"> |
| Deflate64CompressorInputStream.read would return 0 for some |
| inputs in violation of the InputStream.read contract. |
| </action> |
| <action issue="COMPRESS-495" type="remove" date="2019-10-12"> |
| Removed the extraction code from the example CLI class inside |
| of the SevenZ package. Not only is it superseeded by the |
| examples package, its implementation was vulnerable to the |
| ZipSlip attack. |
| </action> |
| <action issue="COMPRESS-497" type="update" date="2019-10-12" |
| due-to="Stefan Schlott"> |
| SevenZFile can now recover from a certain corruption that |
| seems to happen occasionally when split archives are created. |
| </action> |
| <action issue="COMPRESS-342" type="update" date="2019-11-07" |
| due-to="Peter Alfred Lee"> |
| Added random access support to SevenZFile. |
| </action> |
| <action issue="COMPRESS-477" type="update" date="2019-12-15" |
| due-to="Peter Alfred Lee"> |
| Added support for split ZIP archives. |
| </action> |
| <action issue="COMPRESS-124" type="update" date="2020-01-01" |
| due-to="Peter Alfred Lee"> |
| Added support for reading sparse entries to the TAR package. |
| </action> |
| <action issue="COMPRESS-499" type="fix" date="2020-01-04"> |
| SeekableInMemoryByteChannel's truncate didn't set position |
| according to the spec in an edge case. |
| </action> |
| <action type="fix" due-to="Joseph Allemandou" date="2020-01-21"> |
| BZip2CompressorInputStream now incorporates a similar patch as |
| the one that fixed CVE-2019-12900 in libbzip2. |
| |
| Commons Compress has not been vulnerable to this CVE as it |
| would have rejected a file with too many selectors. With this |
| patch Commons Compress will be able to read certain archives |
| that would have caused errors in Compress 1.19. |
| </action> |
| <action type="update" date="2020-01-25"> |
| Update JUnit from 4.12 to 4.13. |
| </action> |
| </release> |
| <release version="1.19" date="2019-08-27" |
| description="Release 1.19 |
| ---------------------------------------- |
| |
| ZipArchiveInputStream and ZipFile will no longer throw an exception if |
| an extra field generally understood by Commons Compress is malformed |
| but rather turn them into UnrecognizedExtraField instances. |
| You can influence the way extra fields are parsed in more detail by |
| using the new getExtraFields(ExtraFieldParsingBehavior) method of |
| ZipArchiveEntry now. |
| |
| Some of the ZIP extra fields related to strong encryption will now |
| throw ZipExceptions rather than ArrayIndexOutOfBoundsExceptions in |
| certain cases when used directly. There is no practical difference |
| when they are read via ZipArchiveInputStream or ZipFile. |
| "> |
| <action type="fix" date="2018-09-07"> |
| ZipArchiveInputStream could forget the compression level has |
| changed under certain circumstances. |
| </action> |
| <action issue="COMPRESS-466" type="add" date="2018-10-07"> |
| It is now possible to skip parsing of local file headers when |
| using ZipFile which may speed up reading the archive at the |
| cost of potentially missing important information. See the |
| javadocs of the ZipFile class for details. |
| </action> |
| <action issue="COMPRESS-469" type="add" date="2018-11-10"> |
| TarArchiveInputStream has a new constructor-arg lenient that |
| can be used to accept certain broken archives. |
| </action> |
| <action issue="COMPRESS-470" type="fix" date="2018-11-18"> |
| Fixed another potential resource leak in |
| ParallelScatterZipCreator#writeTo. |
| </action> |
| <action issue="COMPRESS-475" type="add" date="2018-12-15"> |
| ArjArchiveEntry and SevenZArchiveEntry now implement hashCode |
| and equals. |
| </action> |
| <action type="fix" date="2019-02-18" due-to="Alex Bertram"> |
| ArArchiveInputStream could think it had hit EOF prematurely. |
| Github Pull Request #74. |
| </action> |
| <action type="update" date="2019-04-16" due-to="Robin Schimpf" |
| issue="COMPRESS-481"> |
| SevenZFile now provides a way to cap memory consumption for |
| LZMA(2) compressed content. |
| Github Pull Request #76. |
| </action> |
| <action type="update" date="2019-04-18" |
| due-to="Rostislav Krasny" issue="COMPRESS-464"> |
| The ARJ package has been updated to contain constants for more |
| recent specifications. |
| </action> |
| <action type="update" date="2019-04-30" |
| issue="COMPRESS-484"> |
| Update optional library zstd-jni from 1.3.3-3 to 1.4.0-1. |
| </action> |
| <action type="update" date="2019-08-07" |
| due-to="Hervé Boutemy, Tibor Digana" |
| issue="COMPRESS-485"> |
| ParallelScatterZipCreator now writes the entries to the |
| gathered output in the same order they have been added. |
| Github Pull Requests #78 and #79. |
| </action> |
| <action type="fix" date="2019-08-08" issue="COMPRESS-490"> |
| Throw IOException rather than RuntimeExceptions for certain |
| malformed LZ4 or Snappy inputs. |
| </action> |
| <action type="update" date="2019-08-09" issue="COMPRESS-486"> |
| The Expander and Archive example classes can leak resources |
| they have wrapped around passed in streams or channels. The |
| methods consuming streams and channels have been adapted to |
| give the calling code a chance to deal with those wrapper |
| resources. |
| </action> |
| <action type="update" date="2019-08-16" issue="COMPRESS-479"> |
| ZipArchiveInputStream and ZipFile no longer assume Commons |
| Compress would understand extra fields better than the writer |
| of the archive and silently turn extra fields that Commons |
| Compress should understand into UnrecognizedExtraFields if |
| parsing said fields fails. |
| It is now possible to take more control over the extra field |
| parsing process with a new overload of |
| ZipArchiveEntry#getExtraFields. |
| </action> |
| <action type="fix" date="2019-08-18" issue="COMPRESS-482"> |
| ZipArchiveInputStream failed to read stored entries with a |
| data descriptor if the data descriptor didn't use the |
| signature invented by InfoZIP. |
| </action> |
| <action type="update" date="2019-08-18" issue="COMPRESS-483"> |
| ZipArchiveInputStream will now throw an exception if reading a |
| stored entry with a data descriptor and the data descriptor |
| doesn't match what it has actually read. |
| |
| The most common case for a situation like this is a stored ZIP |
| archive inside of the archive ZipArchiveInputStream currently |
| reads. In such a case ZipArchiveInputStream would happily |
| extract the contained archive and stop once the central |
| directory of the inner archive has been hit. This is a case |
| where ZipArchiveInputStream simply can not be used and only |
| ZipFile is able to read the archive. |
| |
| The only other explanation is a broken archive. So the |
| exception prevents users from thinking they had successfully |
| read the contents of the archive. |
| </action> |
| <action type="add" date="2019-08-18" issue="COMPRESS-231" |
| due-to="Tim Underwood"> |
| Added a MultiReadOnlySeekableByteChannel class |
| that can be used to concatenate the parts of a multi volume 7z |
| archive so that SevenZFile can read them. |
| </action> |
| <action type="update" date="2019-08-20" issue="COMPRESS-478"> |
| The 7zip tools provide a default name for archive entries |
| without name; SevenZFile returns a null name for such |
| entries. A new method getDefaultName has been added to derive |
| the same name the 7zip tools would use and an option has been |
| added that sets SevenZArchiveEntry's name to the default name |
| if it is not contained inside the archive. |
| </action> |
| <action type="fix" date="2019-08-20"> |
| NioZipEncoding#encode could enter an infinite loop for certain |
| inputs. |
| </action> |
| </release> |
| <release version="1.18" date="2018-08-16" |
| description="Release 1.18 |
| ---------------------------------------- |
| |
| This release changes the OSGi Manifest entry Bundle-SymbolicName from |
| org.apache.commons.compress to org.apache.commons.commons-compress. |
| "> |
| <action type="fix" date="2018-06-15" due-to="DidierLoiseau"> |
| The example Expander class has been vulnerable to a path |
| traversal in the edge case that happens when the target |
| directory has a sibling directory and the name of the target |
| directory is a prefix of the sibling directory's name. |
| </action> |
| <action issue="COMPRESS-456" type="fix" date="2018-06-19"> |
| Changed the OSGi Import-Package to also optionally import |
| javax.crypto so encrypted archives can be read. |
| </action> |
| <action issue="COMPRESS-457" type="fix" date="2018-07-01"> |
| Changed various implementations of the close method to better |
| ensure all held resources get closed even if exceptions are |
| thrown during the closing the stream. |
| </action> |
| <action issue="COMPRESS-455" type="fix" date="2018-07-01"> |
| ZipArchiveInputStream can now detect the APK Signing Block |
| used in signed Android APK files and treats it as an "end of |
| archive" marker. |
| </action> |
| <action issue="COMPRESS-459" type="fix" date="2018-07-11" |
| due-to="Jens Reimann"> |
| The cpio streams didn't handle archives using a multi-byte |
| encoding properly. |
| </action> |
| <action issue="COMPRESS-460" type="add" date="2018-07-28" |
| due-to="Carmi Grushko"> |
| It is now possible to specify the arguments of zstd-jni's |
| ZstdOutputStream constructors via Commons Compress as well. |
| </action> |
| <action issue="COMPRESS-463" type="fix" date="2018-08-09"> |
| ZipArchiveInputStream#read would silently return -1 on a |
| corrupted stored entry and even return > 0 after hitting the |
| end of the archive. |
| </action> |
| <action issue="COMPRESS-462" type="fix" date="2018-08-10"> |
| ArArchiveInputStream#read would allow to read from the stream |
| without opening an entry at all. |
| </action> |
| </release> |
| <release version="1.17" date="2018-06-03" |
| description="Release 1.17"> |
| <action type="fix" date="2018-02-06"> |
| Removed the objenesis dependency from the pom as it is not |
| needed at all. |
| </action> |
| <action issue="COMPRESS-446" type="fix" date="2018-03-29"> |
| Fixed resource leak in ParallelScatterZipCreator#writeTo. |
| </action> |
| <action type="update" date="2018-04-01" due-to="Marchenko Sergey"> |
| Fixed some code examples. |
| Github Pull Request #63. |
| </action> |
| <action issue="COMPRESS-447" type="fix" date="2018-04-22"> |
| Certain errors when parsing ZIP extra fields in corrupt |
| archives are now turned into ZipException, they used to |
| manifest as ArrayIndexOutOfBoundsException before. |
| </action> |
| <action issue="COMPRESS-445" type="update" date="2018-04-22" |
| due-to="Andreas Beeker"> |
| The streams returned by ZipFile and most other decompressing |
| streams now provide information about the number of compressed |
| and uncompressed bytes read so far. This may be used to detect |
| a ZipBomb if the compression ratio exceeds a certain |
| threshold, for example. |
| For SevenZFile a new method returns the statistics for the |
| current entry. |
| </action> |
| <action issue="COMPRESS-443" type="add" date="2018-04-25"> |
| Added a unit test that is supposed to fail if we break the |
| OSGi manifest entries again. |
| </action> |
| <action issue="COMPRESS-449" type="add" date="2018-05-02"> |
| Add a new SkipShieldingInputStream class that can be used with |
| streams that throw an IOException when skip is invoked. |
| </action> |
| <action issue="COMPRESS-451" type="fix" date="2018-05-04"> |
| IOUtils.copy now verifies the buffer size is bigger than 0. |
| </action> |
| <action issue="COMPRESS-452" type="add" date="2018-05-09"> |
| New constructors have been added to SevenZFile that accept |
| char[]s rather than byte[]s in order to avoid a common error |
| of using the wrong encoding when creating the byte[]. This |
| change may break source compatibility for client code that |
| uses one of the constructors expecting a password and passes |
| in null as password. We recommend to change the code to use a |
| constructor without password argument. |
| </action> |
| <action issue="COMPRESS-453" type="update" date="2018-05-24"> |
| Added a workaround for a bug in AdoptOpenJDK for S/390 to |
| BZip2CompressorInputStream. |
| </action> |
| <action issue="COMPRESS-454" type="fix" date="2018-05-30"> |
| ZipArchiveInputStream failed to read some files with stored |
| entries using a data descriptor. |
| </action> |
| </release> |
| <release version="1.16.1" date="2018-02-10" |
| description="Release 1.16.1"> |
| <action issue="COMPRESS-442" type="fix" date="2018-02-06"> |
| Fixed the OSGi manifest entry for imports that has been broken |
| in 1.16. |
| </action> |
| </release> |
| <release version="1.16" date="2018-02-05" |
| description="Release 1.16"> |
| <action issue="COMPRESS-423" type="add" date="2017-10-17" |
| due-to="Andre F de Miranda"> |
| Add read-only support for Zstandard compression based on the |
| Zstd-jni project. |
| </action> |
| <action issue="COMPRESS-425" type="add" date="2017-10-22"> |
| Added auto-detection for Zstandard compressed streams. |
| </action> |
| <action issue="COMPRESS-430" type="fix" date="2017-11-25" |
| due-to="Bruno P. Kinoshita"> |
| Synchronized iteration over a synchronizedList in ParallelScatterZipCreator. |
| </action> |
| <action issue="COMPRESS-432" type="fix" date="2017-12-22"> |
| ZipFile could get stuck in an infinite loop when parsing ZIP |
| archives with certain strong encryption headers. |
| </action> |
| <action issue="COMPRESS-435" type="update" date="2017-12-27" |
| due-to="BELUGA BEHR"> |
| Replaces instanceof checks with a type marker in LZ77 support code. |
| </action> |
| <action issue="COMPRESS-426" type="add" date="2017-12-28"> |
| Added write-support for Zstandard compression. |
| </action> |
| <action issue="COMPRESS-424" type="fix" date="2017-12-30"> |
| Added improved checks to detect corrupted bzip2 streams and |
| throw the expected IOException rather than obscure |
| RuntimeExceptions. |
| </action> |
| <action type="update" date="2018-01-04"> |
| Updated XZ for Java dependency to 1.8 in order to pick up bug |
| fix to LZMA2InputStream's available method. |
| </action> |
| <action type="update" date="2018-01-05" issue="COMPRESS-429" |
| due-to="Damiano Albani"> |
| ZipArchiveEntry now exposes how the name or comment have been |
| determined when the entry was read. |
| </action> |
| <action issue="COMPRESS-380" type="add" date="2018-01-09" |
| due-to="Christian Marquez Grabia"> |
| Added read-only DEFLATE64 support to ZIP archives and as |
| stand-alone CompressorInputStream. |
| </action> |
| <action issue="COMPRESS-438" type="update" date="2018-01-10"> |
| ZipFile.getInputStream will now always buffer the stream |
| internally in order to improve read performance. |
| </action> |
| <action issue="COMPRESS-440" type="update" date="2018-01-12" |
| due-to="Dawid Weiss"> |
| Speed improvement for DEFLATE64 decompression. |
| </action> |
| <action issue="COMPRESS-437" type="add" date="2018-01-13"> |
| Added read-only DEFLATE64 support to 7z archives. |
| </action> |
| <action issue="COMPRESS-436" type="update" date="2018-01-14"> |
| Added a few extra sanity checks for the rarer compression |
| methods used in ZIP archives. |
| </action> |
| <action issue="COMPRESS-441" type="update" date="2018-01-14"> |
| Simplified the special handling for the dummy byte required by |
| zlib when using java.util.zip.Inflater. |
| </action> |
| <action type="update" date="2018-01-18" due-to="Shahab Kondri"> |
| Various code cleanups. |
| Github Pull Request #61. |
| </action> |
| <action type="update" date="2018-01-29"> |
| TarArchiveEntry's preserveLeadingSlashes constructor argument |
| has been renamed and can now also be used to preserve the |
| drive letter on Windows. |
| </action> |
| </release> |
| <release version="1.15" date="2017-10-17" |
| description="Release 1.15 |
| ---------------------------------------- |
| |
| TarArchiveOutputStream now ensures record size is 512 and block size is |
| a multiple of 512 as any other value would create invalid tar |
| archives. This may break compatibility for code that deliberately |
| wanted to create such files."> |
| <action issue="COMPRESS-394" type="fix" date="2017-05-22"> |
| Make sure "version needed to extract" in local file header and |
| central directory of a ZIP archive agree with each other. |
| Also ensure the version is set to 2.0 if DEFLATE is used. |
| </action> |
| <action issue="COMPRESS-395" type="fix" date="2017-05-22"> |
| Don't use a data descriptor in ZIP archives when copying a raw |
| entry that already knows its size and CRC information. |
| </action> |
| <action issue="COMPRESS-413" type="fix" date="2017-05-22" due-to="Simon Spero"> |
| Travis build redundantly repeats compilation and tests redundantly #43. |
| </action> |
| <action issue="COMPRESS-397" type="add" date="2017-05-22"> |
| Added magic MANIFEST entry Automatic-Module-Name so the module |
| name will be org.apache.commons.compress when the jar is used |
| as an automatic module in Java9. |
| </action> |
| <action issue="COMPRESS-396" type="fix" date="2017-05-23"> |
| The MANIFEST of 1.14 lacks an OSGi Import-Package for XZ for |
| Java. |
| </action> |
| <action issue="COMPRESS-406" type="fix" date="2017-06-12" |
| due-to="Simon Spero"> |
| BUILDING.md now passes the RAT check. |
| </action> |
| <action issue="COMPRESS-405" type="add" date="2017-06-15" |
| due-to="Simon Spero "> |
| Added a new utility class FixedLengthBlockOutputStream that |
| can be used to ensure writing always happens in blocks of a |
| given size. |
| </action> |
| <action issue="COMPRESS-412" type="fix" date="2017-06-17" |
| due-to="Michael Hausegger"> |
| Made sure ChecksumCalculatingInputStream receives valid |
| checksum and input stream instances via the constructor. |
| </action> |
| <action issue="COMPRESS-407" type="fix" date="2017-06-24" |
| due-to="Simon Spero "> |
| TarArchiveOutputStream now verifies the block and record sizes |
| specified at construction time are compatible with the tar |
| specification. In particular 512 is the only record size |
| accepted and the block size must be a multiple of 512. |
| At the same time the default block size in |
| TarArchiveOutputStream has been changed from 10240 to 512 |
| bytes. |
| </action> |
| <action issue="COMPRESS-400" type="add" date="2017-06-26" |
| due-to="Simon Spero "> |
| It is now possible to specify/read custom PAX headers when |
| writing/reading tar archives. |
| </action> |
| <action issue="COMPRESS-415" type="fix" date="2017-06-27"> |
| Fixed class names of CpioArchiveEntry and |
| CpioArchiveInputStream in various Javadocs. |
| </action> |
| <action issue="COMPRESS-416" type="fix" date="2017-07-04" |
| due-to="Simon Spero "> |
| The code of the extended timestamp ZIP extra field incorrectly |
| assumed the time was stored as unsigned 32-bit int and thus |
| created incorrect results for years after 2037. |
| </action> |
| <action issue="COMPRESS-410" type="fix" date="2017-07-05" |
| due-to="Simon Spero "> |
| Removed ZipEncoding code that became obsolete when we started |
| to require Java 5 as baseline long ago. |
| </action> |
| <action issue="COMPRESS-417" type="fix" date="2017-07-19"> |
| The tar package will no longer try to parse the major and |
| minor device numbers unless the entry represents a character |
| or block special file. |
| </action> |
| <action issue="COMPRESS-421" type="fix" date="2017-10-06" |
| due-to="Roel Spilker"> |
| When reading tar headers with name fields containing embedded |
| NULs, the name will now be terminated at the first NUL byte. |
| </action> |
| <action issue="COMPRESS-409" type="fix" date="2017-10-08"> |
| Simplified TarArchiveOutputStream by replacing the internal |
| buffering with new class FixedLengthBlockOutputStream. |
| </action> |
| </release> |
| <release version="1.14" date="2017-05-14" |
| description="Release 1.14"> |
| <action issue="COMPRESS-378" type="fix" date="2017-01-09"> |
| SnappyCompressorInputStream slides the window too early |
| leading to ArrayIndexOutOfBoundsExceptions for some streams. |
| </action> |
| <action issue="COMPRESS-246" type="add" date="2017-01-10"> |
| Added write support for Snappy. |
| </action> |
| <action issue="COMPRESS-358" type="update" date="2017-01-10"> |
| The blocksize for FramedSnappyCompressorInputStream can now be |
| configured as some IWA files seem to be using blocks larger |
| than the default 32k. |
| </action> |
| <action issue="COMPRESS-379" type="fix" date="2017-01-15" |
| due-to="Guillaume Boué"> |
| ZipArchiveEntry#isUnixSymlink now only returns true if the |
| corresponding link flag is the only file-type flag set. |
| </action> |
| <action issue="COMPRESS-271" type="add" date="2017-02-07"> |
| Added support for LZ4 (block and frame format). |
| </action> |
| <action type="update" date="2017-02-15" due-to="Thomas Meyer"> |
| BZip2CompressorInputstream now uses BitInputStream internally. |
| Pull Request #13. |
| </action> |
| <action type="fix" date="2017-03-29" due-to="Daniel Collin"> |
| Fixed an integer overflow in CPIO's CRC calculation. |
| Pull Request #17. |
| </action> |
| <action issue="COMPRESS-385" type="add" date="2017-04-18"> |
| Add static detect(InputStream in) to CompressorStreamFactory |
| and ArchiveStreamFactory |
| </action> |
| <action issue="COMPRESS-387" type="fix" date="2017-04-18"> |
| Make unit tests work on Windows paths with spaces in their names. |
| </action> |
| <action issue="COMPRESS-388" type="update" date="2017-04-25" |
| due-to="Zbynek Vyskovsky"> |
| Improved performance for concurrent reads from ZipFile when |
| reading from a file. |
| </action> |
| <action issue="COMPRESS-382" type="add" date="2017-04-25" |
| due-to="Tim Allison"> |
| Added a way to limit amount of memory ZCompressorStream may |
| use. |
| </action> |
| <action issue="COMPRESS-386" type="add" date="2017-04-25" |
| due-to="Tim Allison"> |
| Added a way to limit amount of memory ZCompressorStream may |
| use. |
| </action> |
| <action issue="COMPRESS-382" type="add" date="2017-04-25" |
| due-to="Tim Allison"> |
| Added a way to limit amount of memory LZMACompressorStream and |
| XZCompressorInputStream may use. |
| </action> |
| <action issue="COMPRESS-389" type="fix" date="2017-04-26"> |
| Internal location pointer in ZipFile could get incremented |
| even if nothing had been read. |
| </action> |
| <action issue="COMPRESS-392" type="add" date="2017-05-02" due-to="Philippe Mouawad"> |
| Add Brotli decoder based on the Google Brotli library. |
| </action> |
| <action issue="COMPRESS-390" type="add" date="2017-05-04" |
| due-to="Zbynek Vyskovsky"> |
| ZipEntry now exposes its data offset. |
| </action> |
| <action issue="COMPRESS-393" type="fix" date="2017-05-07"> |
| LZMACompressorOutputStream#flush would throw an exception |
| rather than be the NOP it promised to be. |
| </action> |
| <action issue="COMPRESS-391" type="add" date="2017-05-11" |
| due-to="Zbynek Vyskovsky"> |
| Using ZipArchiveEntry's setAlignment it is now possible to |
| ensure the data offset of an entry starts at a file position |
| that at word or page boundaries. |
| A new extra field has been added for this purpose. |
| </action> |
| </release> |
| <release version="1.13" date="2016-12-29" |
| description="Release 1.13 - API compatible to 1.12 but requires Java 7 at runtime."> |
| <action issue="COMPRESS-360" type="update" date="2016-06-25" dev="ggregory"> |
| Update Java requirement from 6 to 7. |
| </action> |
| <action issue="COMPRESS-363" type="fix" date="2016-07-01"> |
| BitInputStream could return bad results when overflowing |
| internally - if two consecutive reads tried to read more than |
| 64 bits. |
| </action> |
| <action issue="COMPRESS-366" type="update" date="2016-10-07"> |
| Clarified which TarArchiveEntry methods are useless for |
| entries read from an archive. |
| </action> |
| <action issue="COMPRESS-364" type="fix" date="2016-10-07" |
| due-to="Mike Mole"> |
| ZipArchiveInputStream.closeEntry does not properly advance to |
| next entry if there are junk bytes at end of data section |
| </action> |
| <action issue="COMPRESS-327" type="add" date="2016-10-12"> |
| SevenZFile, SevenZOutputFile, ZipFile and |
| ZipArchiveOutputStream can now work on non-file resources if |
| they can be accessed via SeekableByteChannel. |
| </action> |
| <action issue="COMPRESS-368" type="add" date="2016-11-15"> |
| Allow compressor extensions through a standard JRE ServiceLoader. |
| </action> |
| <action issue="COMPRESS-369" type="add" date="2016-11-15"> |
| Allow archive extensions through a standard JRE ServiceLoader. |
| </action> |
| <action issue="COMPRESS-373" type="add" date="2016-11-29"> |
| Add write support for the legacy LZMA format, this requires XZ |
| for Java 1.6. |
| </action> |
| <action issue="COMPRESS-374" type="add" date="2016-11-29"> |
| Add write support for the legacy LZMA stream to 7z, this |
| requires XZ for Java 1.6. |
| </action> |
| <action issue="COMPRESS-375" type="add" date="2016-12-04" |
| due-to="Plamen Totev"> |
| Allow the clients of ParallelScatterZipCreator to provide |
| ZipArchiveEntryRequestSupplier. |
| </action> |
| <action issue="COMPRESS-367" type="fix" date="2016-12-09" |
| due-to="Mike Mole"> |
| ZipArchiveInputStream now throws an Exception if it encounters |
| a broken ZIP archive rather than signaling end-of-archive. |
| </action> |
| <action issue="COMPRESS-377" type="fix" date="2016-12-20"> |
| ScatterZipOutputStream didn't close the StreamCompressor |
| causing a potential resource leak. |
| </action> |
| <action issue="COMPRESS-372" type="add" date="2016-12-20"> |
| Add a version-independent link to the API docs of the latest |
| release. |
| </action> |
| </release> |
| <release version="1.12" date="2016-06-21" |
| description="Release 1.12 - API compatible to 1.11 but requires Java 6 at runtime. |
| ------------ |
| |
| |
| |
| Release 1.12 changes the behavior of BZip2CompressorOutputStream's |
| finalize method so that it no longer invokes finish. This is going to |
| break code that relied on the finalizer to clean up an unfinished |
| stream. The code will need to be changed to call finish or |
| close itself. Note that a finalizer is not guaranteed to run, so |
| the feature was not 100% effective in any case. |
| "> |
| <action issue="COMPRESS-349" type="update" date="2016-04-09" dev="ggregory"> |
| Update requirement from Java 5 to 6. |
| </action> |
| <action issue="COMPRESS-350" type="update" date="2016-04-09" dev="ggregory"> |
| TarArchiveEntry wastefully allocates empty arrays. |
| </action> |
| <action issue="COMPRESS-348" type="fix" date="2016-04-24"> |
| SevenZFile.read() throws an IllegalStateException for empty entries. |
| </action> |
| <action issue="COMPRESS-353" type="update" date="2016-05-06" dev="ggregory"> |
| Javadoc for BZip2CompressorInputStream(InputStream, boolean) should refer to IOEx, not NPE. |
| </action> |
| <action issue="COMPRESS-354" type="update" date="2016-05-16"> |
| PureJavaCrc32C in the snappy package is now final so it is now |
| safe to call a virtual method inside the constructor. |
| </action> |
| <action issue="COMPRESS-355" type="fix" date="2016-05-20" |
| due-to="Jeremy Gustie"> |
| TarArchiveInputStream failed to parse PAX headers that |
| included blank lines. |
| </action> |
| <action issue="COMPRESS-356" type="fix" date="2016-05-20" |
| due-to="Jeremy Gustie"> |
| TarArchiveInputStream failed to parse PAX headers whose tar |
| entry name ended with a slash. |
| </action> |
| <action issue="COMPRESS-352" type="add" date="2016-05-22"> |
| FramedSnappyCompressorInputStream now supports the dialect of |
| Snappy used by the IWA files contained within the ZIP archives |
| used in Apple's iWork 13 files. |
| </action> |
| <action issue="COMPRESS-351" type="update" date="2016-06-07"> |
| ZipArchiveInputStream and CpioArchiveInputStream could throw |
| exceptions who's messages contained potentially corrupt entry |
| names read from a broken archive. They will now sanitize the |
| names by replacing unprintable characters and restricting the |
| length to 255 characters. |
| </action> |
| <action issue="COMPRESS-357" type="update" date="2016-06-15"> |
| BZip2CompressorOutputStream no longer tries to finish the |
| output stream in finalize. This is a breaking change for code |
| that relied on the finalizer. |
| </action> |
| </release> |
| <release version="1.11" date="2016-04-06" |
| description="Release 1.11"> |
| <action issue="COMPRESS-347" type="add" date="2016-03-23"> |
| TarArchiveInputStream now supports reading global PAX headers. |
| </action> |
| <action issue="COMPRESS-346" type="add" date="2016-03-23"> |
| The PAX headers for sparse entries written by star are now |
| applied. |
| </action> |
| <action issue="COMPRESS-345" type="add" date="2016-03-23"> |
| GNU sparse files using one of the PAX formats are now |
| detected, but cannot be extracted. |
| </action> |
| <action issue="COMPRESS-344" type="fix" date="2016-03-22"> |
| ArArchiveInputStream can now read GNU extended names that are |
| terminated with a NUL byte rather than a linefeed. |
| </action> |
| <action issue="COMPRESS-341" type="add" date="2016-03-20"> |
| New method SevenZFile.getEntries can be used to list the |
| contents of a 7z archive. |
| </action> |
| <action issue="COMPRESS-343" type="fix" date="2016-03-17" |
| due-to="Rene Preissel"> |
| Native Memory Leak in Sevenz-DeflateDecoder. |
| </action> |
| <action type="add" date="2016-03-05" |
| due-to="Matt Hovey"> |
| When using Zip64Mode.Always also use ZIP64 extensions inside |
| the central directory. |
| GitHub Pull Request #10 |
| </action> |
| <action issue="COMPRESS-340" type="fix" date="2016-02-24" |
| due-to="Dawid Weiss"> |
| SevenZFile will now only try to drain an entry's content when |
| moving on to the next entry if data is read from the next |
| entry. This should improve performance for applications that |
| try to skip over entries. |
| </action> |
| <action issue="COMPRESS-336" type="fix" date="2016-02-14"> |
| file names of tar archives using the xstar format are now |
| parsed properly. |
| </action> |
| <action issue="COMPRESS-335" type="fix" date="2016-02-05"> |
| checksums of tars that pad the checksum field to the left are |
| now calculated properly. |
| </action> |
| <action issue="COMPRESS-334" type="fix" date="2016-02-05" |
| due-to="Jeremy Gustie"> |
| ArArchiveInputStream failed to read past the first entry when |
| BSD long names have been used. |
| </action> |
| <action issue="COMPRESS-333" type="fix" date="2016-02-03" due-to="Dawid Weiss"> |
| Added buffering for random access which speeds up 7Z support. |
| </action> |
| <action issue="COMPRESS-331" type="fix" date="2016-01-31"> |
| The checksum validation of TararchiveEntry is now as strict as |
| the validation of GNU tar, which eliminates a few cases of |
| false positives of ArchiveStreamFactory. |
| This behavior is a breaking change since the check has become |
| more strict but any archive that fails the checksum test now |
| would also fail it when extracted with other tools and must be |
| considered an invalid archive. |
| </action> |
| <action issue="COMPRESS-323" type="add" date="2016-01-29"> |
| ZipFile.getRawInputStream() is now part of the public API |
| </action> |
| <action issue="COMPRESS-332" type="fix" date="2016-01-29"> |
| SnappyCompressorInputStream and |
| FramedSnappyCompressorInputStream returned 0 at the end of the |
| stream under certain circumstances. |
| </action> |
| <action type="add" date="2016-01-27" due-to="Jason van Zyl"> |
| Allow byte-for-byte replication of Zip entries. |
| GitHub Pull Request #6. |
| </action> |
| <action issue="COMPRESS-328" type="add" date="2016-01-15"> |
| TarArchiveEntry's preserveLeadingSlashes is now a property and used |
| on later calls to setName, too. |
| This behavior is a breaking change. |
| </action> |
| <action issue="COMPRESS-326" type="fix" date="2015-10-24"> |
| Adjusted unit test to updates in Java8 and later that change |
| the logic of ZipEntry#getTime. |
| </action> |
| <action issue="COMPRESS-324" type="fix" date="2015-10-06"> |
| TarArchiveOutputStream will now recognize GNU long name and |
| link entries even if the special entry has a different name |
| than GNU tar uses itself. This seems to be the case for |
| archives created by star. |
| </action> |
| <action issue="COMPRESS-321" type="fix" date="2015-08-22"> |
| ArrayIndexOutOfBoundsException when InfoZIP type 7875 extra |
| fields are read from the central directory. |
| </action> |
| <action type="add" date="2015-11-11" due-to="Sören Glimm"> |
| Added read-only support for bzip2 compression used inside of |
| ZIP archives. |
| GitHub Pull Request #4. |
| </action> |
| </release> |
| |
| <release version="1.10" date="2015-08-18" |
| description="Release 1.10 |
| ------------ |
| |
| |
| |
| Release 1.10 moves the former |
| org.apache.commons.compress.compressors.z._internal_ package which |
| breaks backwards compatibility for code which used the old package. |
| This also changes the superclass of ZCompressorInputStream. |
| "> |
| |
| <action issue="COMPRESS-317" type="fix" date="2015-06-09" |
| due-to="Lucas Werkmeister"> |
| ArrayIndexOutOfBoundsException when ZIP extra fields are read |
| and the entry contains an UnparseableExtraField. |
| </action> |
| <action issue="COMPRESS-316" type="add" date="2015-05-23" |
| due-to="Nick Burch"> |
| CompressorStreamFactory can now auto-detect DEFLATE streams |
| with ZLIB header. |
| </action> |
| <action issue="COMPRESS-314" type="fix" date="2015-05-08"> |
| TarArchiveInputStream can now read entries with group or |
| user ids > 0x80000000. |
| </action> |
| <action issue="COMPRESS-315" type="fix" date="2015-05-06"> |
| TarArchiveOutputStream can now write entries with group or |
| user ids > 0x80000000. |
| </action> |
| <action issue="COMPRESS-313" type="add" date="2015-03-30"> |
| CompressorStreamFactory can now auto-detect LZMA streams. |
| </action> |
| <action issue="COMPRESS-312" type="fix" date="2015-03-28"> |
| TarArchiveEntry's constructor with a File and a String arg |
| didn't normalize the name. |
| </action> |
| <action issue="COMPRESS-308" type="fix" date="2015-02-20"> |
| ZipEncodingHelper no longer reads system properties directly |
| to determine the default charset. |
| </action> |
| <action issue="COMPRESS-309" type="fix" date="2015-02-20"> |
| BZip2CompressorInputStream#read would return -1 when asked to |
| read 0 bytes. |
| </action> |
| <action issue="COMPRESS-306" type="fix" date="2015-02-17"> |
| ArchiveStreamFactory fails to pass on the encoding when creating some streams. |
| * ArjArchiveInputStream |
| * CpioArchiveInputStream |
| * DumpArchiveInputStream |
| * JarArchiveInputStream |
| * TarArchiveInputStream |
| * JarArchiveOutputStream |
| </action> |
| <action issue="COMPRESS-302" type="fix" date="2015-02-16"> |
| Restore immutability/thread-safety to ArchiveStreamFactory. |
| The class is now immutable provided that the method setEntryEncoding is not used. |
| The class is thread-safe. |
| </action> |
| <action issue="COMPRESS-303" type="fix" date="2015-02-16"> |
| Restore immutability/thread-safety to CompressorStreamFactory. |
| The class is now immutable provided that the method setDecompressConcatenated is not used. |
| The class is thread-safe. |
| </action> |
| <action issue="COMPRESS-298" type="fix" date="2015-01-20"> |
| SevenZFile now throws the specific PasswordRequiredException |
| when it encounters an encrypted stream but no password has |
| been specified. |
| </action> |
| <action issue="COMPRESS-290" type="fix" date="2015-01-13" |
| due-to="Kristian Rosenvold"> |
| Improved error message when tar encounters a groupId that is |
| too big to write without using the STAR or POSIX format. |
| </action> |
| <action issue="COMPRESS-296" type="add" date="2015-01-10" |
| due-to="Kristian Rosenvold"> |
| Added support for parallel compression. This low-level API allows |
| a client to build a ZIP/jar file by using the class |
| org.apache.commons.compress.archivers.zip.ParallelScatterZipCreator. |
| |
| Zip documentation updated with further notes about parallel features. |
| |
| Please note that some aspects of jar creation need to be |
| handled by client code and is not part of commons-compress for this |
| release. |
| </action> |
| <action type="add" date="2014-12-24" |
| due-to="Kristian Rosenvold"> |
| Cut overall object instantiation in half by changing file |
| header generation algorithm, for a 10-15 percent performance |
| improvement. |
| |
| Also extracted two private methods createLocalFileHeader |
| and createCentralFileHeader in ZipArchiveOutputStream. |
| These may have some interesting additional usages in the |
| near future. |
| </action> |
| <action issue="COMPRESS-297" type="fix" date="2014-12-22"> |
| ZipFile logs a warning in its finalizer when its constructor |
| has thrown an exception reading the file - for example if the |
| file doesn't exist. |
| </action> |
| <action issue="COMPRESS-295" type="add" date="2014-12-18" |
| due-to="Kristian Rosenvold"> |
| New methods in ZipArchiveOutputStream and ZipFile allows |
| entries to be copied from one archive to another without |
| having to re-compress them. |
| </action> |
| <action type="update" date="2014-10-28" |
| due-to="Damjan Jovanovic"> |
| Moved the package |
| org.apache.commons.compress.compressors.z._internal_ to |
| org.apache.commons.compress.compressors.lzw and made it part |
| of the API that is officially supported. This will break |
| existing code that uses the old package. |
| </action> |
| </release> |
| |
| <release version="1.9" date="2014-10-09" |
| description="Release 1.9"> |
| <action type="add" date="2014-06-14" issue="COMPRESS-263" |
| due-to="Matthias Stevens"> |
| Added support for DEFLATE streams without any gzip framing. |
| </action> |
| <action type="fix" date="2014-08-14" issue="COMPRESS-287"> |
| When reading 7z files unknown file properties and properties |
| of type kDummy are now ignored. |
| </action> |
| <action type="fix" date="2014-08-21" issue="COMPRESS-286"> |
| Expanding 7z archives using LZMA compression could cause an |
| EOFException. |
| </action> |
| <action type="update" date="2014-08-31" issue="COMPRESS-285"> |
| Checking for XZ for Java may be expensive. The result will |
| now be cached outside of an OSGi environment. You can use the |
| new XZUtils#setCacheXZAvailability to overrride this default |
| behavior. |
| </action> |
| <action type="fix" date="2014-09-19" issue="COMPRESS-289" |
| due-to="Bob Robertson"> |
| Long-Name and -link or PAX-header entries in TAR archives |
| always had the current time as last modfication time, creating |
| archives that are different at the byte level each time an |
| archive was built. |
| </action> |
| </release> |
| |
| <release version="1.8.1" date="2014-05-14" |
| description="Release 1.8.1"> |
| <action type="update" date="2014-03-19"> |
| The dependency on org.tukaani:xz is now marked as optional. |
| </action> |
| <action type="fix" date="2014-03-28" issue="COMPRESS-270"> |
| The snappy, ar and tar inputstreams might fail to read from a |
| non-buffered stream in certain cases. |
| </action> |
| <action type="add" date="2014-04-12" issue="COMPRESS-272"> |
| CompressorStreamFactory can now auto-detect Unix compress |
| (".Z") streams. |
| </action> |
| <action type="fix" date="2014-04-12" issue="COMPRESS-277"> |
| IOUtils#skip might skip fewer bytes than requested even though |
| more could be read from the stream. |
| </action> |
| <action type="fix" date="2014-04-13" issue="COMPRESS-276"> |
| ArchiveStreams now validate there is a current entry before |
| reading or writing entry data. |
| </action> |
| <action type="fix" date="2014-04-13"> |
| ArjArchiveInputStream#canReadEntryData tested the current |
| entry of the stream rather than its argument. |
| </action> |
| <action type="fix" date="2014-04-13" issue="COMPRESS-274"> |
| ChangeSet#delete and deleteDir now properly deal with unnamed |
| entries. |
| </action> |
| <action type="fix" date="2014-04-18" issue="COMPRESS-273"> |
| Added a few null checks to improve robustness. |
| </action> |
| <action type="fix" date="2014-04-19" issue="COMPRESS-278"> |
| TarArchiveInputStream failed to read archives with empty |
| gid/uid fields. |
| </action> |
| <action type="fix" date="2014-04-27" issue="COMPRESS-279"> |
| TarArchiveInputStream now again throws an exception when it |
| encounters a truncated archive while reading from the last |
| entry. |
| </action> |
| <action type="fix" date="2014-05-02" issue="COMPRESS-280" |
| due-to="BELUGA BEHR"> |
| Adapted TarArchiveInputStream#skip to the modified |
| IOUtils#skip method. |
| </action> |
| </release> |
| <release version="1.8" date="2014-03-12" |
| description="Release 1.8"> |
| <action issue="COMPRESS-253" type="fix" date="2014-01-20"> |
| BZip2CompressorInputStream read fewer bytes than possible from |
| a truncated stream. |
| </action> |
| <action issue="COMPRESS-253" type="fix" date="2014-01-22"> |
| SevenZFile failed claiming the dictionary was too large when |
| archives used LZMA compression for headers and content and |
| certain non-default dictionary sizes. |
| </action> |
| <action issue="COMPRESS-259" type="fix" date="2014-01-24"> |
| CompressorStreamFactory.createCompressorInputStream with |
| explicit compression did not honor decompressConcatenated |
| </action> |
| <action issue="COMPRESS-260" type="add" date="2014-02-20"> |
| GzipCompressorInputStream now provides access to the same |
| metadata that can be provided via GzipParameters when writing |
| a gzip stream. |
| </action> |
| <action issue="COMPRESS-262" type="fix" date="2014-02-21"> |
| TarArchiveInputStream will now read archives created by tar |
| implementations that encode big numbers by not adding a |
| trailing NUL. |
| </action> |
| <action issue="COMPRESS-264" type="fix" date="2014-02-21"> |
| ZipArchiveInputStream would return NUL bytes for the first 512 |
| bytes of a STORED entry if it was the very first entry of the |
| archive. |
| </action> |
| <action issue="COMPRESS-265" type="fix" date="2014-02-22"> |
| When writing PAX/POSIX headers for TAR entries with |
| backslashes or certain non-ASCII characters in their name |
| TarArchiveOutputStream could fail. |
| </action> |
| <action issue="COMPRESS-267" type="fix" date="2014-02-22"> |
| ArchiveStreamFactory now throws a StreamingNotSupported - a |
| new subclass of ArchiveException - if it is asked to read from |
| or write to a stream and Commons Compress doesn't support |
| streaming for the format. This currently only applies to the |
| 7z format. |
| </action> |
| <action issue="COMPRESS-266" type="add" date="2014-02-25"> |
| SevenZOutputFile now supports chaining multiple |
| compression/encryption/filter methods and passing options to |
| the methods. |
| </action> |
| <action issue="COMPRESS-261" type="add" date="2014-02-26"> |
| The (compression) method(s) can now be specified per entry in |
| SevenZOutputFile. |
| </action> |
| <action issue="COMPRESS-258" type="add" date="2014-02-26"> |
| SevenZArchiveEntry "knows" which method(s) have been used to |
| write it to the archive. |
| </action> |
| <action type="add" date="2014-02-28"> |
| The 7z package now supports the delta filter as method. |
| </action> |
| <action issue="COMPRESS-257" type="add" date="2014-03-03"> |
| The 7z package now supports BCJ filters for several platforms. |
| You will need a version >= 1.5 of XZ for Java to read archives |
| using BCJ, though. |
| </action> |
| </release> |
| <release version="1.7" date="2014-01-20" |
| description="Release 1.7"> |
| <action issue="COMPRESS-241" type="fix" date="2013-10-27"> |
| SevenZOutputFile#closeArchiveEntry throws an exception when |
| using LZMA2 compression on Java8. |
| </action> |
| <action issue="COMPRESS-147" type="add" date="2013-11-07" |
| due-to="BELUGA BEHR"> |
| Read-Only support for Snappy compression. |
| </action> |
| <action issue="COMPRESS-244" type="fix" date="2013-11-27" |
| due-to="Nico Kruber"> |
| 7z reading of big 64bit values could be wrong. |
| </action> |
| <action issue="COMPRESS-243" type="add" date="2013-11-30" |
| due-to="Damjan Jovanovic"> |
| Read-Only support for .Z compressed files. |
| </action> |
| <action type="add" date="2013-12-06" due-to="Damjan Jovanovic"> |
| ZipFile and ZipArchiveInputStream now support reading entries compressed using the |
| SHRINKING method. |
| </action> |
| <action issue="COMPRESS-245" type="fix" date="2013-12-06"> |
| TarArchiveInputStream could fail to read an archive completely. |
| </action> |
| <action issue="COMPRESS-242" type="fix" date="2013-12-08"> |
| The time-setters in X5455_ExtendedTimestamp now set the |
| corresponding flags explicitly - i.e. they set the bit if the |
| valus is not-null and reset it otherwise. This may cause |
| incompatibilities if you use setFlags to unset a bit and later |
| set the time to a non-null value - the flag will now be set. |
| </action> |
| <action issue="COMPRESS-250" type="add" date="2013-12-16" due-to="Emmanuel Bourg"> |
| GzipCompressorOutputStream now supports setting the compression level and the header metadata |
| (filename, comment, modification time, operating system and extra flags) |
| </action> |
| <action issue="COMPRESS-115" type="add" date="2013-12-19" due-to="Emmanuel Bourg"> |
| ZipFile and ZipArchiveInputStream now support reading entries compressed using the IMPLODE method. |
| </action> |
| <action issue="COMPRESS-252" type="fix" date="2013-12-20"> |
| SevenZOutputFile would create invalid archives if more than |
| six empty files or directories were included. |
| </action> |
| <action type="add" date="2013-12-20"> |
| ZipFile and the 7z file classes now implement Closeable and |
| can be used in try-with-resources constructs. |
| </action> |
| </release> |
| <release version="1.6" date="2013-10-26" |
| description="Release 1.6"> |
| <action type="fix" date="2013-04-25" issue="COMPRESS-223" |
| due-to="Jeremy Gustie"> |
| TarBuffer.tryToConsumeSecondEOFRecord could throw a |
| NullPointerException |
| </action> |
| <action type="add" date="2013-05-07" issue="COMPRESS-54" |
| due-to="Damjan Jovanovic"> |
| Added support for 7z archives. Most compression algorithms |
| can be read and written, LZMA and encryption are only |
| supported when reading. |
| </action> |
| <action type="add" date="2013-05-19" issue="COMPRESS-226" |
| due-to="Damjan Jovanovic"> |
| Added read-only support for ARJ archives that don't use |
| compression. |
| </action> |
| <action type="fix" date="2013-05-26" issue="COMPRESS-228"> |
| Parsing of zip64 extra fields has become more lenient in order |
| to be able to read archives created by DotNetZip and maybe |
| other archivers as well. |
| </action> |
| <action type="fix" date="2013-06-03" issue="COMPRESS-229" |
| due-to="Christoph Gysin"> |
| TAR will now properly read the names of symbolic links with |
| long names that use the GNU variant to specify the long file |
| name. |
| </action> |
| <action type="fix" date="2013-06-04" issue="COMPRESS-227"> |
| ZipFile#getInputStream could return null if the archive |
| contained duplicate entries. |
| The class now also provides two new methods to obtain all |
| entries of a given name rather than just the first one. |
| </action> |
| <action type="update" date="2013-07-08" issue="COMPRESS-232" |
| due-to="BELUGA BEHR"> |
| Readabilty patch to TarArchiveInputStream. |
| </action> |
| <action type="update" date="2013-08-08" issue="COMPRESS-234" |
| due-to="BELUGA BEHR"> |
| Performance improvements to TarArchiveInputStream, in |
| particular to the skip method. |
| </action> |
| <action type="fix" date="2013-08-08" issue="COMPRESS-236" |
| due-to="Andrew Duffy"> |
| CpioArchiveInputStream failed to read archives created by |
| Redline RPM. |
| </action> |
| <action type="fix" date="2013-08-09" issue="COMPRESS-237" |
| due-to="Emmanuel Bourg"> |
| TarArchiveOutputStream now properly handles link names that |
| are too long to fit into a traditional TAR header. |
| </action> |
| <action type="add" date="2013-08-10"> |
| DumpArchiveInputStream now supports an encoding parameter that |
| can be used to specify the encoding of file names. |
| </action> |
| <action type="add" date="2013-08-10"> |
| The CPIO streams now support an encoding parameter that can be |
| used to specify the encoding of file names. |
| </action> |
| <action type="add" date="2013-09-22" issue="COMPRESS-111"> |
| Read-only support for LZMA standalone compression has been added. |
| </action> |
| <action type="fix" date="2013-10-04" issue="COMPRESS-239"> |
| The auto-detecting create*InputStream methods of Archive and |
| CompressorStreamFactory could fail to detect the format of |
| blocking input streams. |
| </action> |
| <action type="fix" date="2013-10-21" issue="COMPRESS-240" |
| due-to="Gary Gregory"> |
| ZipEncodingHelper.isUTF8(String) does not check all UTF-8 aliases. |
| </action> |
| </release> |
| <release version="1.5" date="2013-03-14" |
| description="Release 1.5"> |
| <action type="fix" date="2012-02-19" issue="COMPRESS-218" |
| due-to="Gili"> |
| Typo in CompressorStreamFactory Javadoc |
| </action> |
| <action type="update" date="2012-07-08" issue="COMPRESS-188" |
| due-to="Harald Kuhn"> |
| Improved exception message if a ZIP archive cannot be read |
| because of an unsupported compression method. |
| </action> |
| <action type="update" date="2012-07-07" issue="COMPRESS-192" |
| due-to="Jukka Zitting"> |
| ArchiveStreamFactory has a setting for file name encoding that |
| sets up encoding for ZIP and TAR streams. |
| </action> |
| <action type="fix" date="2012-07-07" issue="COMPRESS-191" |
| due-to="Jukka Zitting"> |
| ArchiveStreamFactory's tar stream detection created false |
| positives for AIFF files. |
| </action> |
| <action type="update" date="2012-07-07" issue="COMPRESS-191" |
| due-to="Jukka Zitting"> |
| TarArchiveEntry now has a method to verify its checksum. |
| </action> |
| <action type="fix" date="2012-12-27" issue="COMPRESS-199" |
| due-to="Jukka Zitting"> |
| XZ for Java didn't provide an OSGi bundle. Compress' |
| dependency on it has now been marked optional so Compress |
| itself can still be used in an OSGi context. |
| </action> |
| <action type="fix" date="2012-12-27" issue="COMPRESS-200" |
| due-to="Christian Schlichtherle"> |
| When specifying the encoding explicitly TarArchiveOutputStream |
| would write unreadable names in GNU mode or even cause errors |
| in POSIX mode for file names longer than 66 characters. |
| </action> |
| <action type="fix" date="2012-12-27" issue="COMPRESS-203"> |
| Writing TAR PAX headers failed if the generated entry name |
| ended with a "/". |
| </action> |
| <action type="fix" date="2012-12-28" issue="COMPRESS-189" |
| due-to="Daniel Lowe"> |
| ZipArchiveInputStream sometimes failed to provide input to the |
| Inflater when it needed it, leading to reads returning 0. |
| </action> |
| <action type="update" date="2013-01-01"> |
| Split/spanned ZIP archives are now properly detected by |
| ArchiveStreamFactory but will cause an |
| UnsupportedZipFeatureException when read. |
| </action> |
| <action type="update" date="2013-01-01" issue="COMPRESS-208"> |
| ZipArchiveInputStream now reads archives that start with a |
| "PK00" signature. Archives with this signatures are created |
| when the archiver was willing to split the archive but in the |
| end only needed a single segment - so didn't split anything. |
| </action> |
| <action type="update" date="2013-01-01" issue="COMPRESS-201"> |
| TarArchiveEntry has a new constructor that allows setting |
| linkFlag and preserveLeadingSlashes at the same time. |
| </action> |
| <action type="update" date="2013-01-01" issue="COMPRESS-159"> |
| ChangeSetPerformer has a new perform overload that uses a |
| ZipFile instance as input. |
| </action> |
| <action type="fix" date="2013-01-04" issue="COMPRESS-212"> |
| TarArchiveInputStream ignored the encoding for GNU long name |
| entries. |
| </action> |
| <action type="update" date="2013-01-05" issue="COMPRESS-172" |
| due-to="Thomas Mair"> |
| Garbage collection pressure has been reduced by reusing |
| temporary byte arrays in classes. |
| </action> |
| <action type="update" date="2013-01-08" issue="COMPRESS-210" |
| due-to="Julius Davies"> |
| Can now handle ZIP extra field 0x5455 - Extended Timestamp. |
| </action> |
| <action type="update" date="2013-01-07" issue="COMPRESS-211" |
| due-to="Julius Davies"> |
| handle ZIP extra field 0x7875 - Info Zip New Unix Extra Field. |
| </action> |
| <action type="update" date="2013-01-07" issue="COMPRESS-213" |
| due-to="Julius Davies"> |
| ZipShort, ZipLong, ZipEightByteInteger should implement Serializable |
| </action> |
| <action type="update" date="2013-01-14" issue="COMPRESS-214" |
| due-to="Julius Davies"> |
| better support for Unix symlinks in ZipFile entries |
| </action> |
| <action type="update" date="2013-01-19" issue="COMPRESS-215" |
| due-to="Robin Power"> |
| ZipFile's initialization has been improved for non-Zip64 |
| archives. |
| </action> |
| <action type="fix" date="2013-01-20" issue="COMPRESS-206" |
| due-to="Peter De Maeyer"> |
| TarArchiveInputStream could leave the second EOF record |
| inside the stream it had just finished reading. |
| </action> |
| <action type="fix" date="2013-01-20"> |
| DumpArchiveInputStream no longer implicitly closes the |
| original input stream when it reaches the end of the |
| archive. |
| </action> |
| <action type="fix" date="2013-01-22"> |
| ZipArchiveInputStream now consumes the remainder of the |
| archive when getNextZipEntry returns null. |
| </action> |
| <action type="fix" date="2013-01-27" issue="COMPRESS-205" |
| due-to="Daniel Lowe"> |
| Unit tests could fail if the source tree was checked out to |
| a directory tree containign spaces. |
| </action> |
| <action type="update" date="2013-01-31"> |
| Updated XZ for Java dependency to 1.2 as this version |
| provides proper OSGi manifest attributes. |
| </action> |
| <action type="fix" date="2013-02-20" issue="COMPRESS-219"> |
| Fixed a potential ArrayIndexOutOfBoundsException when |
| reading STORED entries from ZipArchiveInputStream. |
| </action> |
| <action type="fix" date="2013-03-07" issue="COMPRESS-221"> |
| CompressorStreamFactory can now be used without XZ for Java |
| being available. |
| </action> |
| <action type="add" date="2013-03-07" issue="COMPRESS-220"> |
| CompressorStreamFactory has an option to create |
| decompressing streams that decompress the full input for |
| formats that support multiple concatenated streams. |
| </action> |
| </release> |
| <release version="1.4.1" date="2012-05-23" |
| description="Release 1.4.1"> |
| <action type="fix" date="2012-05-20"> |
| Ported libbzip2's fallback sort algorithm to |
| BZip2CompressorOutputStream to speed up compression in certain |
| edge cases. |
| Using specially crafted inputs this can be used as a denial |
| of service attack. See the security reports page for details. |
| </action> |
| </release> |
| <release version="1.4" date="2012-04-11" |
| description="Release 1.4"> |
| <action issue="COMPRESS-183" type="fix" date="2012-03-24"> |
| The tar package now allows the encoding of file names to be |
| specified and can optionally use PAX extension headers to |
| write non-ASCII file names. |
| The stream classes now write (or expect to read) archives that |
| use the platform's native encoding for file names. Apache |
| Commons Compress 1.3 used to strip everything but the lower |
| eight bits of each character which effectively only worked for |
| ASCII and ISO-8859-1 file names. |
| This new default behavior is a breaking change. |
| </action> |
| <action issue="COMPRESS-184" type="fix" date="2012-03-23"> |
| TarArchiveInputStream failed to parse PAX headers that |
| contained non-ASCII characters. |
| </action> |
| <action issue="COMPRESS-182" type="update" date="2012-03-02"> |
| The tar package can now write archives that use star/GNU/BSD |
| extensions or use the POSIX/PAX variant to store numeric |
| values that don't fit into the traditional header fields. |
| </action> |
| <action issue="COMPRESS-181" type="update" date="2012-03-02"> |
| Added a workaround for a Bug some tar implementations that add |
| a NUL byte as first byte in numeric header fields. |
| </action> |
| <action issue="COMPRESS-176" type="update" date="2012-02-28"> |
| Added a workaround for a Bug in WinZIP which uses backslashes |
| as path separators in Unicode Extra Fields. |
| </action> |
| <action issue="COMPRESS-131" type="update" date="2012-02-23"> |
| ArrayOutOfBounds while decompressing bz2. Added test case - code already seems to have been fixed. |
| </action> |
| <action issue="COMPRESS-178" type="fix" date="2012-02-23"> |
| TarArchiveInputStream throws IllegalArgumentException instead of IOException |
| </action> |
| <action issue="COMPRESS-179" type="fix" date="2012-02-23"> |
| TarUtils.formatLongOctalOrBinaryBytes() assumes the field will be 12 bytes long |
| </action> |
| <action issue="COMPRESS-175" type="fix" date="2012-02-22"> |
| GNU Tar sometimes uses binary encoding for UID and GID |
| </action> |
| <action issue="COMPRESS-171" type="fix" date="2012-01-29"> |
| ArchiveStreamFactory.createArchiveInputStream would claim |
| short text files were TAR archives. |
| </action> |
| <action issue="COMPRESS-156" type="add" date="2011-11-02"> |
| Support for the XZ format has been added. |
| </action> |
| <action issue="COMPRESS-146" type="update" date="2011-11-07"> |
| BZip2CompressorInputStream now optionally supports reading of |
| concatenated .bz2 files. |
| </action> |
| <action issue="COMPRESS-154" type="update" date="2011-11-09"> |
| GZipCompressorInputStream now optionally supports reading of |
| concatenated .gz files. |
| </action> |
| <action issue="COMPRESS-164" type="fix" date="2011-12-05"> |
| ZipFile didn't work properly for archives using unicode extra |
| fields rather than UTF-8 filenames and the EFS-Flag. |
| </action> |
| <action issue="COMPRESS-16" type="update" date="2011-12-07"> |
| The tar package can now read archives that use star/GNU/BSD |
| extensions for files that are longer than 8 GByte as well as |
| archives that use the POSIX/PAX variant. |
| </action> |
| <action issue="COMPRESS-165" type="update" date="2011-12-08"> |
| The tar package can now write archives that use star/GNU/BSD |
| extensions for files that are longer than 8 GByte as well as |
| archives that use the POSIX/PAX variant. |
| </action> |
| <action issue="COMPRESS-166" type="update" date="2011-12-08"> |
| The tar package can now use the POSIX/PAX variant for writing |
| entries with names longer than 100 characters. |
| </action> |
| <action issue="COMPRESS-169" type="fix" date="2011-12-22"> |
| For corrupt archives ZipFile would throw a RuntimeException in |
| some cases and an IOException in others. It will now |
| consistently throw an IOException. |
| </action> |
| </release> |
| <release version="1.3" date="2011-11-01" |
| description="Release 1.3 - API compatible to 1.2 but requires Java5 at runtime"> |
| <action issue="COMPRESS-142" type="add" date="2011-09-14"> |
| Support for the Pack200 format has been added. |
| </action> |
| <action issue="COMPRESS-132" type="add" date="2011-08-17"> |
| Read-only support for the format used by the Unix dump(8) tool |
| has been added. |
| </action> |
| <action issue="COMPRESS-36" type="update" date="2011-08-15"> |
| The ZIP package now supports Zip64 extensions. |
| </action> |
| <action issue="COMPRESS-144" type="update" date="2011-08-08"> |
| The AR package now supports the BSD dialect of storing file |
| names longer than 16 chars (both reading and writing). |
| </action> |
| <action type="fix" date="2011-08-08"> |
| BZip2CompressorInputStream's getBytesRead method always |
| returned 0. |
| </action> |
| <action issue="COMPRESS-152" type="fix" date="2011-08-03"> |
| ZipArchiveInputStream and ZipArchiveOutputStream could leak |
| resources on some JDKs. |
| </action> |
| <action issue="COMPRESS-160" type="fix" date="2011-10-23"> |
| TarArchiveOutputStream's getBytesWritten method didn't count |
| correctly. |
| </action> |
| </release> |
| <release version="1.2" date="2011-07-31" |
| description="Release 1.2 - a bugfix release, the last release expected to be compatible with Java 1.4"> |
| <action issue="COMPRESS-129" type="fix" date="2011-07-26"> |
| ZipArchiveInputStream could fail with a "Truncated ZIP" error |
| message for entries between 2 GByte and 4 GByte in size. |
| </action> |
| <action issue="COMPRESS-145" type="fix" date="2011-07-23" |
| due-to="Patrick Dreyer"> |
| TarArchiveInputStream now detects sparse entries using the |
| oldgnu format and properly reports it cannot extract their |
| contents. |
| </action> |
| <action issue="COMPRESS-123" type="add" date="2011-07-23"> |
| ZipArchiveEntry has a new method getRawName that provides the |
| original bytes that made up the name. This may allow user |
| code to detect the encoding. |
| </action> |
| <action issue="COMPRESS-130" type="fix" date="2011-07-20"> |
| The Javadoc for ZipArchiveInputStream#skip now matches the |
| implementation, the code has been made more defensive. |
| </action> |
| <action issue="COMPRESS-140" type="fix" date="2011-07-20" |
| due-to="Trejkaz"> |
| ArArchiveInputStream fails if entries contain only blanks for |
| userId or groupId. |
| </action> |
| <action issue="COMPRESS-139" type="fix" date="2011-07-13"> |
| ZipFile may leak resources on some JDKs. |
| </action> |
| <action type="update" date="2011-04-18"> |
| ZipFile now implements finalize which closes the underlying |
| file. |
| </action> |
| <action issue="COMPRESS-117" type="update" date="2011-03-23"> |
| Certain tar files not recognised by ArchiveStreamFactory. |
| </action> |
| <action issue="COMPRESS-125" type="fix" date="2011-03-23"> |
| BZip2CompressorInputStream throws IOException if underlying stream returns available() == 0. |
| Removed the check. |
| </action> |
| <action issue="COMPRESS-127" type="fix" date="2011-03-23"> |
| Calling close() on inputStream returned by CompressorStreamFactory.createCompressorInputStream() |
| does not close the underlying input stream. |
| </action> |
| <action issue="COMPRESS-122" type="add" date="2010-10-29"> |
| TarArchiveEntry provides access to the flags that determine |
| whether it is an archived symbolic link, pipe or other |
| "uncommon" file system object. |
| </action> |
| <action issue="COMPRESS-119" type="fix" date="2010-10-26"> |
| TarArchiveOutputStream#finish now writes all buffered data to the stream |
| </action> |
| </release> |
| <release version="1.1" date="2010-08-13" description="Release 1.1"> |
| <action issue="COMPRESS-72" type="fix" date="2010-06-02"> |
| Move acknowledgements from NOTICE to README |
| </action> |
| <action issue="COMPRESS-113" type="fix" date="2010-06-02"> |
| TarArchiveEntry.parseTarHeader() includes the trailing space/NUL when parsing the octal size |
| </action> |
| <action issue="COMPRESS-108" type="add" date="2010-05-23"> |
| Command-line interface to list archive contents. |
| Usage: java -jar commons-compress-n.m.jar archive-name [zip|tar|etc] |
| </action> |
| <action issue="COMPRESS-118" type="fix" date="2010-05-17"> |
| TarUtils.parseName does not properly handle characters outside the range 0-127 |
| </action> |
| <action issue="COMPRESS-112" type="update" date="2010-05-13"> |
| ArArchiveInputStream does not handle GNU extended filename records (//) |
| </action> |
| <action issue="COMPRESS-109" type="add" date="2010-05-10"> |
| Tar implementation does not support Pax headers |
| Added support for reading pax headers. |
| Note: does not support global pax headers |
| </action> |
| <action issue="COMPRESS-107" type="fix" date="2010-05-10"> |
| ArchiveStreamFactory does not recognise tar files created by Ant |
| </action> |
| <action issue="COMPRESS-110" type="fix" date="2010-05-09"> |
| Support "ustar" prefix field, which is used when file paths are longer |
| than 100 characters. |
| </action> |
| <action type="update" date="2010-04-19" issue="COMPRESS-105"> |
| Document that the name of an ZipArchiveEntry determines whether |
| an entry is considered a directory or not. |
| If you don't use the constructor with the File argument the entry's |
| name must end in a "/" in order for the entry to be known as a directory. |
| </action> |
| <action type="add" date="2010-03-19" issue="COMPRESS-103"> |
| ZipArchiveInputStream can optionally extract data that used |
| the STORED compression method and a data descriptor. |
| Doing so in a stream is not safe in general, so you have to |
| explicitly enable the feature. By default the stream will |
| throw an exception if it encounters such an entry. |
| </action> |
| <action type="fix" date="2010-03-12" issue="COMPRESS-100"> |
| ZipArchiveInputStream will throw an exception if it detects an |
| entry that uses a data descriptor for a STORED entry since it |
| cannot reliably find the end of data for this "compression" |
| method. |
| </action> |
| <action type="fix" date="2010-03-12" issue="COMPRESS-101"> |
| ZipArchiveInputStream should now properly read archives that |
| use data descriptors but without the "unofficial" signature. |
| </action> |
| <action type="add" date="2010-03-09" issue="COMPRESS-98"> |
| The ZIP classes will throw specialized exceptions if any |
| attempt is made to read or write data that uses ZIP features |
| not supported (yet). |
| </action> |
| <action type="add" date="2010-03-08" issue="COMPRESS-99"> |
| ZipFile#getEntries returns entries in a predictable order - |
| the order they appear inside the central directory. |
| A new method getEntriesInPhysicalOrder returns entries in |
| order of the entry data, i.e. the order ZipArchiveInputStream |
| would see. |
| </action> |
| <action type="add" date="2010-02-19"> |
| The Archive*Stream and ZipFile classes now have |
| can(Read|Write)EntryData methods that can be used to check |
| whether a given entry's data can be read/written. |
| The method currently returns false for ZIP archives if an |
| entry uses an unsupported compression method or encryption. |
| </action> |
| <action type="add" date="2010-02-19" issue="COMPRESS-89"> |
| The ZIP classes now detect encrypted entries. |
| </action> |
| <action type="update" date="2010-02-18" issue="COMPRESS-79"> |
| Move DOS/Java time conversions into Zip utility class. |
| </action> |
| <action type="fix" date="2010-02-18" issue="COMPRESS-74"> |
| ZipArchiveInputStream failed to update the number of bytes |
| read properly. |
| </action> |
| <action type="fix" date="2010-02-18"> |
| ArchiveInputStream has a new method getBytesRead that should |
| be preferred over getCount since the later may truncate the |
| number of bytes read for big archives. |
| </action> |
| <action type="fix" date="2010-02-18" issue="COMPRESS-85"> |
| The cpio archives created by CpioArchiveOutputStream couldn't |
| be read by many existing native implementations because the |
| archives contained multiple entries with the same inode/device |
| combinations and weren't padded to a blocksize of 512 bytes. |
| </action> |
| <action type="fix" date="2010-02-16" issue="COMPRESS-73"> |
| ZipArchiveEntry, ZipFile and ZipArchiveInputStream are now |
| more lenient when parsing extra fields. |
| </action> |
| <action issue="COMPRESS-75" type="update" date="2010-02-12"> |
| ZipArchiveInputStream does not show location in file where a problem occurred. |
| </action> |
| <action type="fix" date="2010-02-12" issue="COMPRESS-82"> |
| cpio is terribly slow. |
| Documented that buffered streams are needed for performance |
| </action> |
| <action type="add" date="2010-02-12" issue="COMPRESS-97"> |
| Added autodetection of compression format to |
| CompressorStreamFactory. |
| </action> |
| <action type="fix" date="2010-02-12"> |
| Improved exception message if the extra field data in ZIP |
| archives cannot be parsed. |
| </action> |
| <action type="fix" date="2010-02-11" issue="COMPRESS-17"> |
| Tar format unspecified - current support documented. |
| </action> |
| <action type="add" issue="COMPRESS-95" date="2010-01-29" |
| due-to="Joerg Bellmann"> |
| Improve ExceptionMessages in ArchiveStreamFactory |
| </action> |
| <action type="fix" issue="COMPRESS-94" date="2010-01-07" |
| due-to="Anon Devs"> |
| ZipArchiveEntry's equals method was broken for entries created |
| with the String-arg constructor. This lead to broken ZIP |
| archives if two different entries had the same hash code. |
| </action> |
| <action type="fix" issue="COMPRESS-87" date="2009-10-30" |
| due-to="Antoni Mylka"> |
| ZipArchiveInputStream could repeatedly return 0 on read() when |
| the archive was truncated. |
| </action> |
| <action type="fix" issue="COMPRESS-86" date="2009-10-08"> |
| Tar archive entries holding the file name for names longer |
| than 100 characters in GNU longfile mode didn't properly |
| specify they'd be using the "oldgnu" extension. |
| </action> |
| <action type="add" date="2009-08-25"> |
| A new constructor of TarArchiveEntry can create entries with |
| names that start with slashes - the default is to strip |
| leading slashes in order to create relative path names. |
| </action> |
| <action issue="COMPRESS-83" type="fix" date="2009-08-01"> |
| Delegate all read and write methods in GZip stream in order to |
| speed up operations. |
| </action> |
| <action type="add" date="2009-08-01"> |
| ArchiveEntry now has a getLastModifiedDate method. |
| </action> |
| <action type="fix" date="2009-08-01"> |
| The ar and cpio streams now properly read and write last |
| modified times. |
| </action> |
| <action issue="COMPRESS-81" type="fix" date="2009-06-30"> |
| TarOutputStream can leave garbage at the end of the archive |
| </action> |
| <action issue="COMPRESS-78" type="add" date="2009-06-30" |
| due-to="Jukka Zitting"> |
| Add a BZip2Utils class modelled after GZipUtils |
| </action> |
| </release> |
| <release version="1.0" date="2009-05-21" description="First Public Release"> |
| <action dev="all" type="add" date="2009-05-21"> |
| Initial release |
| </action> |
| <action dev="sgoeschl" type="fix"> |
| Updating the pom.xml for preparing a move to commons-proper |
| </action> |
| </release> |
| </body> |
| </document> |