OBS-URL: https://build.opensuse.org/package/show/Java:packages/apache-commons-compress?expand=0&rev=1
This commit is contained in:
commit
e2f0963275
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
37
0001-Remove-Brotli-compressor.patch
Normal file
37
0001-Remove-Brotli-compressor.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From bba585e9e4fdfc67de3b53b58b8d60923e1ccd0c Mon Sep 17 00:00:00 2001
|
||||
From: Michael Simacek <msimacek@redhat.com>
|
||||
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
|
||||
|
58
0002-Remove-ZSTD-compressor.patch
Normal file
58
0002-Remove-ZSTD-compressor.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From bab91e014f73296a8ac9a3aef2aaa324a85e9b96 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Simacek <msimacek@redhat.com>
|
||||
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
|
||||
|
135
apache-commons-compress-build.xml
Normal file
135
apache-commons-compress-build.xml
Normal file
@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project name="commons-compress" default="package" basedir=".">
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Build environment properties -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<property file="build.properties"/>
|
||||
|
||||
<property name="build.name" value="commons-compress"/>
|
||||
<property name="build.version" value="1.18"/>
|
||||
<property name="build.finalName" value="${build.name}-${build.version}"/>
|
||||
<property name="build.dir" value="target"/>
|
||||
<property name="build.javadocDir" value="${build.dir}/site/apidocs"/>
|
||||
<property name="build.outputDir" value="${build.dir}/classes"/>
|
||||
<property name="build.srcDir.0" value="src/main/java"/>
|
||||
<property name="build.resourceDir.0" value="src/main/resources"/>
|
||||
<property name="build.resourceDir.1" value="."/>
|
||||
|
||||
<property name="commons.javadoc.javaee.link" value="http://docs.oracle.com/javaee/6/api/"/>
|
||||
<property name="commons.javadoc.java.link" value="http://docs.oracle.com/javase/7/docs/api/"/>
|
||||
|
||||
<property name="commons.osgi.dynamicImport" value=""/>
|
||||
<property name="commons.osgi.excludeDependencies" value="true"/>
|
||||
<property name="commons.osgi.export" value="org.apache.commons.*;version\=${build.version};-noimport\:\=true"/>
|
||||
<property name="commons.osgi.import" value="org.tukaani.xz;resolution\:\=optional,org.brotli.dec;resolution\:\=optional,com.github.luben.zstd;resolution\:\=optional,javax.crypto.*;resolution\:\=optional,*"/>
|
||||
<property name="commons.osgi.private" value=""/>
|
||||
<property name="commons.osgi.symbolicName" value="org.apache.commons.compress"/>
|
||||
|
||||
<property name="compiler.source" value="1.7"/>
|
||||
<property name="compiler.target" value="1.7"/>
|
||||
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Defining classpaths -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<path id="build.classpath">
|
||||
<fileset dir="lib">
|
||||
<include name="**/*.jar">
|
||||
</include>
|
||||
</fileset>
|
||||
</path>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Cleaning up target -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<target name="clean" description="Clean the output directory">
|
||||
<delete dir="${build.dir}"/>
|
||||
</target>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Compilation target -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<target name="compile" description="Compile the code">
|
||||
<mkdir dir="${build.outputDir}"/>
|
||||
<javac destdir="${build.outputDir}"
|
||||
encoding="iso-8859-1"
|
||||
nowarn="false"
|
||||
debug="true"
|
||||
optimize="false"
|
||||
deprecation="true"
|
||||
target="${compiler.target}"
|
||||
verbose="false"
|
||||
fork="false"
|
||||
source="${compiler.source}">
|
||||
<src>
|
||||
<pathelement location="${build.srcDir.0}"/>
|
||||
</src>
|
||||
<classpath refid="build.classpath"/>
|
||||
</javac>
|
||||
<mkdir dir="${build.outputDir}/META-INF"/>
|
||||
<copy todir="${build.outputDir}/META-INF">
|
||||
<fileset dir="${build.resourceDir.1}">
|
||||
<include name="NOTICE.txt"/>
|
||||
<include name="LICENSE.txt"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Javadoc target -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<target name="javadoc" description="Generates the Javadoc of the application">
|
||||
<mkdir dir="${build.javadocDir}"/>
|
||||
<javadoc sourcepath="${build.srcDir.0}"
|
||||
packagenames="*"
|
||||
destdir="${build.javadocDir}"
|
||||
access="protected"
|
||||
verbose="false"
|
||||
encoding="iso-8859-1"
|
||||
version="true"
|
||||
use="true"
|
||||
author="true"
|
||||
splitindex="false"
|
||||
nodeprecated="false"
|
||||
nodeprecatedlist="false"
|
||||
notree="false"
|
||||
noindex="false"
|
||||
nohelp="false"
|
||||
nonavbar="false"
|
||||
serialwarn="false"
|
||||
source="${compiler.source}"
|
||||
linksource="true"
|
||||
breakiterator="false">
|
||||
<classpath refid="build.classpath"/>
|
||||
<!-- <link href="${commons.javadoc.java.link}"/> -->
|
||||
<!-- <link href="${commons.javadoc.javaee.link}"/> -->
|
||||
</javadoc>
|
||||
</target>
|
||||
|
||||
<!-- ====================================================================== -->
|
||||
<!-- Package target -->
|
||||
<!-- ====================================================================== -->
|
||||
|
||||
<target name="package" depends="compile" description="Package the application">
|
||||
<jar jarfile="${build.dir}/${build.finalName}.jar"
|
||||
compress="true"
|
||||
index="false"
|
||||
basedir="${build.outputDir}"
|
||||
excludes="**/package.html">
|
||||
<manifest>
|
||||
<attribute name="Bundle-SymbolicName" value="${commons.osgi.symbolicName}"/>
|
||||
<attribute name="Bundle-Version" value="${build.version}"/>
|
||||
<attribute name="Export-Package" value="${commons.osgi.export}"/>
|
||||
<attribute name="Import-Package" value="${commons.osgi.import}"/>
|
||||
</manifest>
|
||||
</jar>
|
||||
</target>
|
||||
|
||||
</project>
|
117
apache-commons-compress.spec
Normal file
117
apache-commons-compress.spec
Normal file
@ -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
|
3
commons-compress-1.18-src.tar.gz
Normal file
3
commons-compress-1.18-src.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:93d4f8394ef1b18b10e8ab116137aa4c2484ec30fba29ab20094b781b69d1b2a
|
||||
size 9851989
|
387
fix_java_8_compatibility.patch
Normal file
387
fix_java_8_compatibility.patch
Normal file
@ -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<ZipArchiveEntry, NameAndComment> 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 {
|
Loading…
Reference in New Issue
Block a user