commit e2f096327561d990b3c785396333ef45818e8e0d376a3d1f844a97b46174a4b2 Author: Fridrich Strba Date: Fri Jan 25 09:18:16 2019 +0000 OBS-URL: https://build.opensuse.org/package/show/Java:packages/apache-commons-compress?expand=0&rev=1 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Remove-Brotli-compressor.patch b/0001-Remove-Brotli-compressor.patch new file mode 100644 index 0000000..5fa1c84 --- /dev/null +++ b/0001-Remove-Brotli-compressor.patch @@ -0,0 +1,37 @@ +From bba585e9e4fdfc67de3b53b58b8d60923e1ccd0c Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 12 Feb 2018 10:53:48 +0100 +Subject: [PATCH 1/2] Remove Brotli compressor + +--- + .../commons/compress/compressors/CompressorStreamFactory.java | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +index d730b9d..ab178a9 100644 +--- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java ++++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +@@ -31,8 +31,6 @@ import java.util.Set; + import java.util.SortedMap; + import java.util.TreeMap; + +-import org.apache.commons.compress.compressors.brotli.BrotliCompressorInputStream; +-import org.apache.commons.compress.compressors.brotli.BrotliUtils; + import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; + import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; + import org.apache.commons.compress.compressors.deflate.DeflateCompressorInputStream; +@@ -586,10 +584,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + } + + if (BROTLI.equalsIgnoreCase(name)) { +- if (!BrotliUtils.isBrotliCompressionAvailable()) { +- throw new CompressorException("Brotli compression is not available." + YOU_NEED_BROTLI_DEC); +- } +- return new BrotliCompressorInputStream(in); ++ throw new CompressorException("Brotli compression is not available in this build."); + } + + if (XZ.equalsIgnoreCase(name)) { +-- +2.14.3 + diff --git a/0002-Remove-ZSTD-compressor.patch b/0002-Remove-ZSTD-compressor.patch new file mode 100644 index 0000000..cb3963f --- /dev/null +++ b/0002-Remove-ZSTD-compressor.patch @@ -0,0 +1,58 @@ +From bab91e014f73296a8ac9a3aef2aaa324a85e9b96 Mon Sep 17 00:00:00 2001 +From: Michael Simacek +Date: Mon, 12 Feb 2018 10:59:55 +0100 +Subject: [PATCH 2/2] Remove ZSTD compressor + +--- + .../compress/compressors/CompressorStreamFactory.java | 14 ++------------ + 1 file changed, 2 insertions(+), 12 deletions(-) + +diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +index ab178a9..3817704 100644 +--- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java ++++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +@@ -54,9 +54,6 @@ import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; + import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream; + import org.apache.commons.compress.compressors.xz.XZUtils; + import org.apache.commons.compress.compressors.z.ZCompressorInputStream; +-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStream; +-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream; +-import org.apache.commons.compress.compressors.zstandard.ZstdUtils; + import org.apache.commons.compress.utils.IOUtils; + import org.apache.commons.compress.utils.Lists; + import org.apache.commons.compress.utils.ServiceLoaderIterator; +@@ -516,10 +513,6 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + return LZ4_FRAMED; + } + +- if (ZstdUtils.matches(signature, signatureLength)) { +- return ZSTANDARD; +- } +- + throw new CompressorException("No Compressor found for the stream signature."); + } + /** +@@ -595,10 +588,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + } + + if (ZSTANDARD.equalsIgnoreCase(name)) { +- if (!ZstdUtils.isZstdCompressionAvailable()) { +- throw new CompressorException("Zstandard compression is not available." + YOU_NEED_ZSTD_JNI); +- } +- return new ZstdCompressorInputStream(in); ++ throw new CompressorException("Zstandard compression is not available in this build."); + } + + if (LZMA.equalsIgnoreCase(name)) { +@@ -714,7 +704,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + } + + if (ZSTANDARD.equalsIgnoreCase(name)) { +- return new ZstdCompressorOutputStream(out); ++ throw new CompressorException("Zstandard compression is not available in this build."); + } + } catch (final IOException e) { + throw new CompressorException("Could not create CompressorOutputStream", e); +-- +2.14.3 + diff --git a/apache-commons-compress-build.xml b/apache-commons-compress-build.xml new file mode 100644 index 0000000..efdffc1 --- /dev/null +++ b/apache-commons-compress-build.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apache-commons-compress.spec b/apache-commons-compress.spec new file mode 100644 index 0000000..e6116ee --- /dev/null +++ b/apache-commons-compress.spec @@ -0,0 +1,117 @@ +# +# spec file for package apache-commons-compress +# +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global base_name compress +%global short_name commons-%{base_name} +Name: apache-%{short_name} +Version: 1.18 +Release: 0 +Summary: Java API for working with compressed files and archivers +License: Apache-2.0 +Group: Development/Libraries/Java +URL: http://commons.apache.org/proper/commons-compress/ +Source0: http://archive.apache.org/dist/commons/compress/source/%{short_name}-%{version}-src.tar.gz +Source1: %{name}-build.xml +Patch0: 0001-Remove-Brotli-compressor.patch +Patch1: 0002-Remove-ZSTD-compressor.patch +Patch2: fix_java_8_compatibility.patch +BuildRequires: ant +BuildRequires: apache-commons-parent +BuildRequires: fdupes +BuildRequires: javapackages-local +BuildRequires: xz-java +Requires: mvn(org.apache.commons:commons-parent:pom:) +Requires: mvn(org.tukaani:xz) +Provides: %{short_name} = %{version}-%{release} +Obsoletes: %{short_name} < %{version}-%{release} +Provides: jakarta-%{short_name} = %{version}-%{release} +Obsoletes: jakarta-%{short_name} < %{version}-%{release} +BuildArch: noarch + +%description +The Apache Commons Compress library defines an API for working with +ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 and bzip2 files. +In version 1.14 read-only support for Brotli decompression has been added, +but it has been removed form this package. + +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +This package provides %{summary}. + +%prep +%setup -q -n %{short_name}-%{version}-src +cp %{SOURCE1} build.xml + +# Unavailable Google Brotli library (org.brotli.dec) +%patch0 -p1 +%pom_remove_dep org.brotli:dec +rm -r src/{main,test}/java/org/apache/commons/compress/compressors/brotli + +# Unavailable ZSTD JNI library +%patch1 -p1 +%pom_remove_dep :zstd-jni +rm -r src/{main,test}/java/org/apache/commons/compress/compressors/zstandard +rm src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java + +# Restore Java 8 compatibility +%patch2 -p1 + +# remove osgi tests, we don't have deps for them +%pom_remove_dep org.ops4j.pax.exam:::test +%pom_remove_dep :org.apache.felix.framework::test +%pom_remove_dep :javax.inject::test +%pom_remove_dep :slf4j-api::test +rm src/test/java/org/apache/commons/compress/OsgiITest.java + +# NPE with jdk10 +%pom_remove_plugin :maven-javadoc-plugin + +%pom_xpath_remove "pom:profiles/pom:profile[pom:id[text()='java9+']]" + +%build +mkdir -p lib +build-jar-repository -s lib xz-java +%{ant} package javadoc + +%install +# jar +install -dm 0755 %{buildroot}%{_javadir} +install -pm 0644 target/%{short_name}-%{version}.jar %{buildroot}%{_javadir}/%{short_name}.jar +ln -sf %{short_name}.jar %{buildroot}%{_javadir}/%{name}.jar +# pom +install -dm 0755 %{buildroot}%{_mavenpomdir} +install -pm 0644 pom.xml %{buildroot}%{_mavenpomdir}/%{short_name}.pom +%add_maven_depmap %{short_name}.pom %{short_name}.jar -a commons:commons-compress,commons-compress:commons-compress +# javadoc +install -dm 0755 %{buildroot}%{_javadocdir}/%{name} +cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name} +%fdupes -s %{buildroot}%{_javadocdir} + +%files -f .mfiles +%{_javadir}/%{name}.jar +%license LICENSE.txt +%doc NOTICE.txt + +%files javadoc +%{_javadocdir}/%{name} +%license LICENSE.txt +%doc NOTICE.txt + +%changelog diff --git a/commons-compress-1.18-src.tar.gz b/commons-compress-1.18-src.tar.gz new file mode 100644 index 0000000..7275731 --- /dev/null +++ b/commons-compress-1.18-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93d4f8394ef1b18b10e8ab116137aa4c2484ec30fba29ab20094b781b69d1b2a +size 9851989 diff --git a/fix_java_8_compatibility.patch b/fix_java_8_compatibility.patch new file mode 100644 index 0000000..57e4b92 --- /dev/null +++ b/fix_java_8_compatibility.patch @@ -0,0 +1,387 @@ +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream.java 2018-05-02 22:17:13.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/BoundedSeekableByteChannelInputStream.java 2018-10-26 16:05:32.068171466 +0200 +@@ -19,6 +19,7 @@ + + import java.io.IOException; + import java.io.InputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.channels.SeekableByteChannel; + +@@ -69,7 +70,7 @@ + } else { + buf = ByteBuffer.allocate(bytesToRead); + bytesRead = channel.read(buf); +- buf.flip(); ++ ((Buffer)buf).flip(); + } + if (bytesRead >= 0) { + buf.get(b, off, bytesRead); +@@ -79,9 +80,9 @@ + } + + private int read(int len) throws IOException { +- buffer.rewind().limit(len); ++ ((Buffer)buffer).rewind().limit(len); + int read = channel.read(buffer); +- buffer.flip(); ++ ((Buffer)buffer).flip(); + return read; + } + +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java 2018-06-07 21:11:34.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZFile.java 2018-10-26 16:05:32.068171466 +0200 +@@ -25,6 +25,7 @@ + import java.io.FilterInputStream; + import java.io.IOException; + import java.io.InputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + import java.nio.CharBuffer; +@@ -1184,9 +1185,9 @@ + } + + private void readFully(ByteBuffer buf) throws IOException { +- buf.rewind(); ++ ((Buffer)buf).rewind(); + IOUtils.readFully(channel, buf); +- buf.flip(); ++ ((Buffer)buf).flip(); + } + + @Override +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java 2018-07-01 11:53:29.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/sevenz/SevenZOutputFile.java 2018-10-26 16:05:32.068171466 +0200 +@@ -24,6 +24,7 @@ + import java.io.File; + import java.io.IOException; + import java.io.OutputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + import java.nio.channels.SeekableByteChannel; +@@ -288,7 +289,7 @@ + crc32.reset(); + crc32.update(bb.array(), SevenZFile.sevenZSignature.length + 6, 20); + bb.putInt(SevenZFile.sevenZSignature.length + 2, (int) crc32.getValue()); +- bb.flip(); ++ ((Buffer)bb).flip(); + channel.write(bb); + } + +@@ -772,7 +773,7 @@ + private final ByteBuffer buffer = ByteBuffer.allocate(BUF_SIZE); + @Override + public void write(final int b) throws IOException { +- buffer.clear(); ++ ((Buffer)buffer).clear(); + buffer.put((byte) b).flip(); + channel.write(buffer); + compressedCrc32.update(b); +@@ -790,7 +791,7 @@ + if (len > BUF_SIZE) { + channel.write(ByteBuffer.wrap(b, off, len)); + } else { +- buffer.clear(); ++ ((Buffer)buffer).clear(); + buffer.put(b, off, len).flip(); + channel.write(buffer); + } +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/NioZipEncoding.java 2018-05-02 22:17:13.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/NioZipEncoding.java 2018-10-26 16:05:32.068171466 +0200 +@@ -20,6 +20,7 @@ + package org.apache.commons.compress.archivers.zip; + + import java.io.IOException; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.CharBuffer; + import java.nio.charset.Charset; +@@ -118,8 +119,8 @@ + enc.encode(cb, out, true); + // may have caused underflow, but that's been ignored traditionally + +- out.limit(out.position()); +- out.rewind(); ++ ((Buffer)out).limit(out.position()); ++ ((Buffer)out).rewind(); + return out; + } + +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java 2018-08-09 20:37:01.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java 2018-10-26 16:21:33.869007928 +0200 +@@ -25,6 +25,7 @@ + import java.io.InputStream; + import java.io.PushbackInputStream; + import java.math.BigInteger; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.util.Arrays; + import java.util.zip.CRC32; +@@ -220,7 +221,7 @@ + this.allowStoredEntriesWithDataDescriptor = + allowStoredEntriesWithDataDescriptor; + // haven't read anything so far +- buf.limit(0); ++ ((Buffer)buf).limit(0); + } + + public ZipArchiveEntry getNextZipEntry() throws IOException { +@@ -522,13 +523,13 @@ + } + + if (buf.position() >= buf.limit()) { +- buf.position(0); ++ ((Buffer)buf).position(0); + final int l = in.read(buf.array()); + if (l == -1) { +- buf.limit(0); ++ ((Buffer)buf).limit(0); + throw new IOException("Truncated ZIP file"); + } +- buf.limit(l); ++ ((Buffer)buf).limit(l); + + count(l); + current.bytesReadFromStream += l; +@@ -719,7 +720,7 @@ + } + + inf.reset(); +- buf.clear().flip(); ++ ((Buffer)buf).clear().flip(); + current = null; + lastStoredEntry = null; + } +@@ -784,7 +785,7 @@ + } + final int length = in.read(buf.array()); + if (length > 0) { +- buf.limit(length); ++ ((Buffer)buf).limit(length); + count(buf.limit()); + inf.setInput(buf.array(), 0, buf.limit()); + } +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncodingHelper.java 2018-05-23 14:50:54.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncodingHelper.java 2018-10-26 16:13:51.818646873 +0200 +@@ -18,6 +18,7 @@ + + package org.apache.commons.compress.archivers.zip; + ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.charset.Charset; + import java.nio.charset.StandardCharsets; +@@ -85,8 +86,8 @@ + } + + static ByteBuffer growBufferBy(ByteBuffer buffer, int increment) { +- buffer.limit(buffer.position()); +- buffer.rewind(); ++ ((Buffer)buffer).limit(buffer.position()); ++ ((Buffer)buffer).rewind(); + + final ByteBuffer on = ByteBuffer.allocate(buffer.capacity() + increment); + +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java 2018-05-23 14:50:54.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java 2018-10-26 16:05:32.068171466 +0200 +@@ -25,6 +25,7 @@ + import java.io.IOException; + import java.io.InputStream; + import java.io.SequenceInputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.channels.FileChannel; + import java.nio.channels.SeekableByteChannel; +@@ -620,7 +621,7 @@ + + positionAtCentralDirectory(); + +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + long sig = ZipLong.getValue(wordBuf); + +@@ -631,7 +632,7 @@ + + while (sig == CFH_SIG) { + readCentralDirectoryEntry(noUTF8Flag); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + sig = ZipLong.getValue(wordBuf); + } +@@ -650,7 +651,7 @@ + private void + readCentralDirectoryEntry(final Map noUTF8Flag) + throws IOException { +- cfhBbuf.rewind(); ++ ((Buffer)cfhBbuf).rewind(); + IOUtils.readFully(archive, cfhBbuf); + int off = 0; + final Entry ze = new Entry(); +@@ -886,7 +887,7 @@ + archive.position() > ZIP64_EOCDL_LENGTH; + if (searchedForZip64EOCD) { + archive.position(archive.position() - ZIP64_EOCDL_LENGTH); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + found = Arrays.equals(ZipArchiveOutputStream.ZIP64_EOCD_LOC_SIG, + wordBuf); +@@ -915,10 +916,10 @@ + throws IOException { + skipBytes(ZIP64_EOCDL_LOCATOR_OFFSET + - WORD /* signature has already been read */); +- dwordBbuf.rewind(); ++ ((Buffer)dwordBbuf).rewind(); + IOUtils.readFully(archive, dwordBbuf); + archive.position(ZipEightByteInteger.getLongValue(dwordBuf)); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + if (!Arrays.equals(wordBuf, ZipArchiveOutputStream.ZIP64_EOCD_SIG)) { + throw new ZipException("archive's ZIP64 end of central " +@@ -926,7 +927,7 @@ + } + skipBytes(ZIP64_EOCD_CFD_LOCATOR_OFFSET + - WORD /* signature has already been read */); +- dwordBbuf.rewind(); ++ ((Buffer)dwordBbuf).rewind(); + IOUtils.readFully(archive, dwordBbuf); + archive.position(ZipEightByteInteger.getLongValue(dwordBuf)); + } +@@ -941,7 +942,7 @@ + private void positionAtCentralDirectory32() + throws IOException { + skipBytes(CFD_LOCATOR_OFFSET); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + archive.position(ZipLong.getValue(wordBuf)); + } +@@ -975,9 +976,9 @@ + for (; off >= stopSearching; off--) { + archive.position(off); + try { +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); +- wordBbuf.flip(); ++ ((Buffer)wordBbuf).flip(); + } catch (EOFException ex) { + break; + } +@@ -1047,9 +1048,9 @@ + final Entry ze = (Entry) zipArchiveEntry; + final long offset = ze.getLocalHeaderOffset(); + archive.position(offset + LFH_OFFSET_FOR_FILENAME_LENGTH); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); +- wordBbuf.flip(); ++ ((Buffer)wordBbuf).flip(); + wordBbuf.get(shortBuf); + final int fileNameLen = ZipShort.getValue(shortBuf); + wordBbuf.get(shortBuf); +@@ -1084,7 +1085,7 @@ + */ + private boolean startsWithLocalFileHeader() throws IOException { + archive.position(0); +- wordBbuf.rewind(); ++ ((Buffer)wordBbuf).rewind(); + IOUtils.readFully(archive, wordBbuf); + return Arrays.equals(wordBuf, ZipArchiveOutputStream.LFH_SIG); + } +@@ -1127,7 +1128,7 @@ + singleByteBuffer = ByteBuffer.allocate(1); + } + else { +- singleByteBuffer.rewind(); ++ ((Buffer)singleByteBuffer).rewind(); + } + int read = read(loc, singleByteBuffer); + if (read < 0) { +@@ -1166,7 +1167,7 @@ + archive.position(pos); + read = archive.read(buf); + } +- buf.flip(); ++ ((Buffer)buf).flip(); + return read; + } + } +@@ -1188,7 +1189,7 @@ + @Override + protected int read(long pos, ByteBuffer buf) throws IOException { + int read = archive.read(buf, pos); +- buf.flip(); ++ ((Buffer)buf).flip(); + return read; + } + } +--- commons-compress-1.18-src/src/main/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStream.java 2018-07-01 11:53:29.000000000 +0200 ++++ commons-compress-1.18-src/src/main/java/org/apache/commons/compress/utils/FixedLengthBlockOutputStream.java 2018-10-26 16:05:32.072171484 +0200 +@@ -21,6 +21,7 @@ + import java.io.FileOutputStream; + import java.io.IOException; + import java.io.OutputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + import java.nio.channels.ClosedChannelException; +@@ -88,7 +89,7 @@ + } + + private void writeBlock() throws IOException { +- buffer.flip(); ++ ((Buffer)buffer).flip(); + int i = out.write(buffer); + boolean hasRemaining = buffer.hasRemaining(); + if (i != blockSize || hasRemaining) { +@@ -97,7 +98,7 @@ + blockSize, i); + throw new IOException(msg); + } +- buffer.clear(); ++ ((Buffer)buffer).clear(); + } + + @Override +@@ -142,7 +143,7 @@ + // fill up the reset of buffer and write the block. + if (buffer.position() != 0) { + int n = buffer.remaining(); +- src.limit(src.position() + n); ++ ((Buffer)src).limit(src.position() + n); + buffer.put(src); + writeBlock(); + srcLeft -= n; +@@ -150,12 +151,12 @@ + // whilst we have enough bytes in src for complete blocks, + // write them directly from src without copying them to buffer + while (srcLeft >= blockSize) { +- src.limit(src.position() + blockSize); ++ ((Buffer)src).limit(src.position() + blockSize); + out.write(src); + srcLeft -= blockSize; + } + // copy any remaining bytes into buffer +- src.limit(savedLimit); ++ ((Buffer)src).limit(savedLimit); + buffer.put(src); + } + return srcRemaining; +@@ -240,9 +241,9 @@ + + try { + int pos = buffer.position(); +- int len = buffer.limit() - pos; ++ int len = ((Buffer)buffer).limit() - pos; + out.write(buffer.array(), buffer.arrayOffset() + pos, len); +- buffer.position(buffer.limit()); ++ ((Buffer)buffer).position(buffer.limit()); + return len; + } catch (IOException e) { + try {