From 0d4040cc68cae73cf7417c814aba35c8b6ca73c2279eed3eaab50987afb19edf Mon Sep 17 00:00:00 2001 From: Fridrich Strba Date: Thu, 10 Oct 2019 21:03:59 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/Java:packages/guava?expand=0&rev=4 --- guava-25.0-java8compat.patch | 656 +++++++++++++++++++++++++++++++++++ guava.changes | 11 + guava.spec | 5 +- 3 files changed, 671 insertions(+), 1 deletion(-) create mode 100644 guava-25.0-java8compat.patch diff --git a/guava-25.0-java8compat.patch b/guava-25.0-java8compat.patch new file mode 100644 index 0000000..611bc94 --- /dev/null +++ b/guava-25.0-java8compat.patch @@ -0,0 +1,656 @@ +--- guava-25.0/android/guava/src/com/google/common/hash/AbstractByteHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/hash/AbstractByteHasher.java 2019-10-10 22:06:40.125798409 +0200 +@@ -22,6 +22,7 @@ + import com.google.common.primitives.Longs; + import com.google.common.primitives.Shorts; + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + +@@ -54,7 +55,7 @@ + protected void update(ByteBuffer b) { + if (b.hasArray()) { + update(b.array(), b.arrayOffset() + b.position(), b.remaining()); +- b.position(b.limit()); ++ ((Buffer)b).position(b.limit()); + } else { + for (int remaining = b.remaining(); remaining > 0; remaining--) { + update(b.get()); +@@ -67,7 +68,7 @@ + try { + update(scratch.array(), 0, bytes); + } finally { +- scratch.clear(); ++ ((Buffer)scratch).clear(); + } + return this; + } +--- guava-25.0/android/guava/src/com/google/common/hash/AbstractCompositeHashFunction.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/hash/AbstractCompositeHashFunction.java 2019-10-10 22:08:03.862309584 +0200 +@@ -18,6 +18,7 @@ + import static com.google.common.base.Preconditions.checkNotNull; + + import com.google.errorprone.annotations.Immutable; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.charset.Charset; + +@@ -98,7 +99,7 @@ + public Hasher putBytes(ByteBuffer bytes) { + int pos = bytes.position(); + for (Hasher hasher : hashers) { +- bytes.position(pos); ++ ((Buffer)bytes).position(pos); + hasher.putBytes(bytes); + } + return this; +--- guava-25.0/android/guava/src/com/google/common/hash/AbstractHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/hash/AbstractHasher.java 2019-10-10 22:02:00.936093927 +0200 +@@ -16,6 +16,7 @@ + + import com.google.common.base.Preconditions; + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.charset.Charset; + +@@ -73,7 +74,7 @@ + public Hasher putBytes(ByteBuffer b) { + if (b.hasArray()) { + putBytes(b.array(), b.arrayOffset() + b.position(), b.remaining()); +- b.position(b.limit()); ++ ((Buffer)b).position(b.limit()); + } else { + for (int remaining = b.remaining(); remaining > 0; remaining--) { + putByte(b.get()); +--- guava-25.0/android/guava/src/com/google/common/hash/AbstractStreamingHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/hash/AbstractStreamingHasher.java 2019-10-10 22:04:31.181011211 +0200 +@@ -17,6 +17,7 @@ + import static com.google.common.base.Preconditions.checkArgument; + + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + +@@ -179,10 +180,10 @@ + @Override + public final HashCode hash() { + munch(); +- buffer.flip(); ++ ((Buffer)buffer).flip(); + if (buffer.remaining() > 0) { + processRemaining(buffer); +- buffer.position(buffer.limit()); ++ ((Buffer)buffer).position(buffer.limit()); + } + return makeHash(); + } +@@ -203,7 +204,7 @@ + } + + private void munch() { +- buffer.flip(); ++ ((Buffer)buffer).flip(); + while (buffer.remaining() >= chunkSize) { + // we could limit the buffer to ensure process() does not read more than + // chunkSize number of bytes, but we trust the implementations +--- guava-25.0/android/guava/src/com/google/common/io/ByteStreams.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/io/ByteStreams.java 2019-10-10 21:58:55.242959068 +0200 +@@ -33,6 +33,7 @@ + import java.io.IOException; + import java.io.InputStream; + import java.io.OutputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.channels.FileChannel; + import java.nio.channels.ReadableByteChannel; +@@ -145,11 +146,11 @@ + ByteBuffer buf = ByteBuffer.wrap(createBuffer()); + long total = 0; + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + while (buf.hasRemaining()) { + total += to.write(buf); + } +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/android/guava/src/com/google/common/io/CharStreams.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/io/CharStreams.java 2019-10-10 22:51:07.748443767 +0200 +@@ -25,6 +25,7 @@ + import java.io.IOException; + import java.io.Reader; + import java.io.Writer; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.ArrayList; + import java.util.List; +@@ -83,10 +84,10 @@ + long total = 0; + CharBuffer buf = createBuffer(); + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + to.append(buf); + total += buf.remaining(); +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +@@ -240,7 +241,7 @@ + CharBuffer buf = createBuffer(); + while ((read = readable.read(buf)) != -1) { + total += read; +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/android/guava/src/com/google/common/io/LineReader.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/io/LineReader.java 2019-10-10 22:51:07.748443767 +0200 +@@ -22,6 +22,7 @@ + import com.google.errorprone.annotations.CanIgnoreReturnValue; + import java.io.IOException; + import java.io.Reader; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.LinkedList; + import java.util.Queue; +@@ -70,7 +71,7 @@ + @CanIgnoreReturnValue // to skip a line + public String readLine() throws IOException { + while (lines.peek() == null) { +- cbuf.clear(); ++ ((Buffer)cbuf).clear(); + // The default implementation of Reader#read(CharBuffer) allocates a + // temporary char[], so we call Reader#read(char[], int, int) instead. + int read = (reader != null) ? reader.read(buf, 0, buf.length) : readable.read(cbuf); +--- guava-25.0/android/guava/src/com/google/common/io/ReaderInputStream.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava/src/com/google/common/io/ReaderInputStream.java 2019-10-10 22:51:07.748443767 +0200 +@@ -104,7 +104,7 @@ + encoder.reset(); + + charBuffer = CharBuffer.allocate(bufferSize); +- charBuffer.flip(); ++ ((Buffer)charBuffer).flip(); + + byteBuffer = ByteBuffer.allocate(bufferSize); + } +@@ -143,7 +143,7 @@ + return (totalBytesRead > 0) ? totalBytesRead : -1; + } + draining = false; +- byteBuffer.clear(); ++ ((Buffer)byteBuffer).clear(); + } + + while (true) { +@@ -189,8 +189,8 @@ + private static CharBuffer grow(CharBuffer buf) { + char[] copy = Arrays.copyOf(buf.array(), buf.capacity() * 2); + CharBuffer bigger = CharBuffer.wrap(copy); +- bigger.position(buf.position()); +- bigger.limit(buf.limit()); ++ ((Buffer)bigger).position(buf.position()); ++ ((Buffer)bigger).limit(buf.limit()); + return bigger; + } + +@@ -207,7 +207,7 @@ + if (availableCapacity(charBuffer) == 0) { + if (charBuffer.position() > 0) { + // (2) There is room in the buffer. Move existing bytes to the beginning. +- charBuffer.compact().flip(); ++ ((Buffer)(charBuffer.compact())).flip(); + } else { + // (3) Entire buffer is full, need bigger buffer. + charBuffer = grow(charBuffer); +@@ -220,7 +220,7 @@ + if (numChars == -1) { + endOfInput = true; + } else { +- charBuffer.limit(limit + numChars); ++ ((Buffer)charBuffer).limit(limit + numChars); + } + } + +@@ -235,7 +235,7 @@ + * overflow must be due to a small output buffer. + */ + private void startDraining(boolean overflow) { +- byteBuffer.flip(); ++ ((Buffer)byteBuffer).flip(); + if (overflow && byteBuffer.remaining() == 0) { + byteBuffer = ByteBuffer.allocate(byteBuffer.capacity() * 2); + } else { +--- guava-25.0/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java 2019-10-10 22:51:07.748443767 +0200 +@@ -21,6 +21,7 @@ + import java.io.IOException; + import java.io.StringReader; + import java.io.StringWriter; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.Random; + +@@ -40,10 +41,10 @@ + CharBuffer buf = CharStreams.createBuffer(); + long total = 0; + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + to.append(buf); + total += buf.remaining(); +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/android/guava-tests/test/com/google/common/hash/HashTestUtils.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava-tests/test/com/google/common/hash/HashTestUtils.java 2019-10-10 21:55:54.929856118 +0200 +@@ -24,6 +24,7 @@ + import com.google.common.collect.Sets; + import com.google.common.primitives.Ints; + import com.google.common.testing.EqualsTester; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + import java.nio.charset.Charset; +@@ -195,8 +196,8 @@ + int limit = pos + random.nextInt(value.length - pos + 1); + for (PrimitiveSink sink : sinks) { + ByteBuffer buffer = ByteBuffer.wrap(value); +- buffer.position(pos); +- buffer.limit(limit); ++ ((Buffer)buffer).position(pos); ++ ((Buffer)buffer).limit(limit); + sink.putBytes(buffer); + assertEquals(limit, buffer.limit()); + assertEquals(limit, buffer.position()); +--- guava-25.0/android/guava-tests/test/com/google/common/io/CharSequenceReaderTest.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava-tests/test/com/google/common/io/CharSequenceReaderTest.java 2019-10-10 22:51:07.748443767 +0200 +@@ -17,6 +17,7 @@ + package com.google.common.io; + + import java.io.IOException; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import junit.framework.TestCase; + +@@ -211,7 +212,7 @@ + reader = new CharSequenceReader(charSequence); + CharBuffer buf2 = CharBuffer.allocate(expected.length()); + assertEquals(expected.length() == 0 ? -1 : expected.length(), reader.read(buf2)); +- buf2.flip(); ++ ((Buffer)buf2).flip(); + assertEquals(expected, buf2.toString()); + assertFullyRead(reader); + +@@ -220,9 +221,9 @@ + buf2 = CharBuffer.allocate(5); + builder = new StringBuilder(); + while (reader.read(buf2) != -1) { +- buf2.flip(); ++ ((Buffer)buf2).flip(); + builder.append(buf2); +- buf2.clear(); ++ ((Buffer)buf2).clear(); + } + assertEquals(expected, builder.toString()); + assertFullyRead(reader); +--- guava-25.0/android/guava-tests/test/com/google/common/io/SourceSinkFactories.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/android/guava-tests/test/com/google/common/io/SourceSinkFactories.java 2019-10-10 22:51:07.752443789 +0200 +@@ -34,6 +34,7 @@ + import java.io.OutputStreamWriter; + import java.io.Reader; + import java.io.Writer; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.Arrays; + import java.util.logging.Logger; +@@ -407,9 +408,9 @@ + StringBuilder builder = new StringBuilder(); + CharBuffer buffer = CharBuffer.allocate(100); + while (reader.read(buffer) != -1) { +- buffer.flip(); ++ ((Buffer)buffer).flip(); + builder.append(buffer); +- buffer.clear(); ++ ((Buffer)buffer).clear(); + } + return builder.toString(); + } +--- guava-25.0/guava/src/com/google/common/hash/AbstractByteHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/hash/AbstractByteHasher.java 2019-10-10 22:25:49.468199825 +0200 +@@ -22,6 +22,7 @@ + import com.google.common.primitives.Longs; + import com.google.common.primitives.Shorts; + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + +@@ -54,7 +55,7 @@ + protected void update(ByteBuffer b) { + if (b.hasArray()) { + update(b.array(), b.arrayOffset() + b.position(), b.remaining()); +- b.position(b.limit()); ++ ((Buffer)b).position(b.limit()); + } else { + for (int remaining = b.remaining(); remaining > 0; remaining--) { + update(b.get()); +@@ -67,7 +68,7 @@ + try { + update(scratch.array(), 0, bytes); + } finally { +- scratch.clear(); ++ ((Buffer)scratch).clear(); + } + return this; + } +--- guava-25.0/guava/src/com/google/common/hash/AbstractCompositeHashFunction.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/hash/AbstractCompositeHashFunction.java 2019-10-10 22:27:25.852699317 +0200 +@@ -18,6 +18,7 @@ + import static com.google.common.base.Preconditions.checkNotNull; + + import com.google.errorprone.annotations.Immutable; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.charset.Charset; + +@@ -98,7 +99,7 @@ + public Hasher putBytes(ByteBuffer bytes) { + int pos = bytes.position(); + for (Hasher hasher : hashers) { +- bytes.position(pos); ++ ((Buffer)bytes).position(pos); + hasher.putBytes(bytes); + } + return this; +--- guava-25.0/guava/src/com/google/common/hash/AbstractHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/hash/AbstractHasher.java 2019-10-10 22:21:28.222754715 +0200 +@@ -16,6 +16,7 @@ + + import com.google.common.base.Preconditions; + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.charset.Charset; + +@@ -73,7 +74,7 @@ + public Hasher putBytes(ByteBuffer b) { + if (b.hasArray()) { + putBytes(b.array(), b.arrayOffset() + b.position(), b.remaining()); +- b.position(b.limit()); ++ ((Buffer)b).position(b.limit()); + } else { + for (int remaining = b.remaining(); remaining > 0; remaining--) { + putByte(b.get()); +--- guava-25.0/guava/src/com/google/common/hash/AbstractStreamingHasher.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/hash/AbstractStreamingHasher.java 2019-10-10 22:24:01.043564217 +0200 +@@ -17,6 +17,7 @@ + import static com.google.common.base.Preconditions.checkArgument; + + import com.google.errorprone.annotations.CanIgnoreReturnValue; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + +@@ -179,10 +180,10 @@ + @Override + public final HashCode hash() { + munch(); +- buffer.flip(); ++ ((Buffer)buffer).flip(); + if (buffer.remaining() > 0) { + processRemaining(buffer); +- buffer.position(buffer.limit()); ++ ((Buffer)buffer).position(buffer.limit()); + } + return makeHash(); + } +@@ -203,7 +204,7 @@ + } + + private void munch() { +- buffer.flip(); ++ ((Buffer)buffer).flip(); + while (buffer.remaining() >= chunkSize) { + // we could limit the buffer to ensure process() does not read more than + // chunkSize number of bytes, but we trust the implementations +--- guava-25.0/guava/src/com/google/common/io/ByteStreams.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/io/ByteStreams.java 2019-10-10 22:14:55.056830174 +0200 +@@ -33,6 +33,7 @@ + import java.io.IOException; + import java.io.InputStream; + import java.io.OutputStream; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.channels.FileChannel; + import java.nio.channels.ReadableByteChannel; +@@ -145,11 +146,11 @@ + ByteBuffer buf = ByteBuffer.wrap(createBuffer()); + long total = 0; + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + while (buf.hasRemaining()) { + total += to.write(buf); + } +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/guava/src/com/google/common/io/CharStreams.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/io/CharStreams.java 2019-10-10 22:51:07.752443789 +0200 +@@ -25,6 +25,7 @@ + import java.io.IOException; + import java.io.Reader; + import java.io.Writer; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.ArrayList; + import java.util.List; +@@ -83,10 +84,10 @@ + long total = 0; + CharBuffer buf = createBuffer(); + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + to.append(buf); + total += buf.remaining(); +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +@@ -240,7 +241,7 @@ + CharBuffer buf = createBuffer(); + while ((read = readable.read(buf)) != -1) { + total += read; +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/guava/src/com/google/common/io/LineReader.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/io/LineReader.java 2019-10-10 22:51:07.752443789 +0200 +@@ -22,6 +22,7 @@ + import com.google.errorprone.annotations.CanIgnoreReturnValue; + import java.io.IOException; + import java.io.Reader; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.LinkedList; + import java.util.Queue; +@@ -70,7 +71,7 @@ + @CanIgnoreReturnValue // to skip a line + public String readLine() throws IOException { + while (lines.peek() == null) { +- cbuf.clear(); ++ ((Buffer)cbuf).clear(); + // The default implementation of Reader#read(CharBuffer) allocates a + // temporary char[], so we call Reader#read(char[], int, int) instead. + int read = (reader != null) ? reader.read(buf, 0, buf.length) : readable.read(cbuf); +--- guava-25.0/guava/src/com/google/common/io/ReaderInputStream.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava/src/com/google/common/io/ReaderInputStream.java 2019-10-10 22:19:43.042350389 +0200 +@@ -104,7 +104,7 @@ + encoder.reset(); + + charBuffer = CharBuffer.allocate(bufferSize); +- charBuffer.flip(); ++ ((Buffer)charBuffer).flip(); + + byteBuffer = ByteBuffer.allocate(bufferSize); + } +@@ -143,7 +143,7 @@ + return (totalBytesRead > 0) ? totalBytesRead : -1; + } + draining = false; +- byteBuffer.clear(); ++ ((Buffer)byteBuffer).clear(); + } + + while (true) { +@@ -189,8 +189,8 @@ + private static CharBuffer grow(CharBuffer buf) { + char[] copy = Arrays.copyOf(buf.array(), buf.capacity() * 2); + CharBuffer bigger = CharBuffer.wrap(copy); +- bigger.position(buf.position()); +- bigger.limit(buf.limit()); ++ ((Buffer)bigger).position(buf.position()); ++ ((Buffer)bigger).limit(buf.limit()); + return bigger; + } + +@@ -207,7 +207,7 @@ + if (availableCapacity(charBuffer) == 0) { + if (charBuffer.position() > 0) { + // (2) There is room in the buffer. Move existing bytes to the beginning. +- charBuffer.compact().flip(); ++ ((Buffer)(charBuffer.compact())).flip(); + } else { + // (3) Entire buffer is full, need bigger buffer. + charBuffer = grow(charBuffer); +@@ -220,7 +220,7 @@ + if (numChars == -1) { + endOfInput = true; + } else { +- charBuffer.limit(limit + numChars); ++ ((Buffer)charBuffer).limit(limit + numChars); + } + } + +@@ -235,7 +235,7 @@ + * overflow must be due to a small output buffer. + */ + private void startDraining(boolean overflow) { +- byteBuffer.flip(); ++ ((Buffer)byteBuffer).flip(); + if (overflow && byteBuffer.remaining() == 0) { + byteBuffer = ByteBuffer.allocate(byteBuffer.capacity() * 2); + } else { +--- guava-25.0/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava-tests/benchmark/com/google/common/io/CharStreamsCopyBenchmark.java 2019-10-10 22:51:18.680505077 +0200 +@@ -21,6 +21,7 @@ + import java.io.IOException; + import java.io.StringReader; + import java.io.StringWriter; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.util.Random; + +@@ -40,10 +41,10 @@ + CharBuffer buf = CharStreams.createBuffer(); + long total = 0; + while (from.read(buf) != -1) { +- buf.flip(); ++ ((Buffer)buf).flip(); + to.append(buf); + total += buf.remaining(); +- buf.clear(); ++ ((Buffer)buf).clear(); + } + return total; + } +--- guava-25.0/guava-tests/test/com/google/common/hash/HashTestUtils.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava-tests/test/com/google/common/hash/HashTestUtils.java 2019-10-10 22:12:29.071934399 +0200 +@@ -24,6 +24,7 @@ + import com.google.common.collect.Sets; + import com.google.common.primitives.Ints; + import com.google.common.testing.EqualsTester; ++import java.nio.Buffer; + import java.nio.ByteBuffer; + import java.nio.ByteOrder; + import java.nio.charset.Charset; +@@ -195,8 +196,8 @@ + int limit = pos + random.nextInt(value.length - pos + 1); + for (PrimitiveSink sink : sinks) { + ByteBuffer buffer = ByteBuffer.wrap(value); +- buffer.position(pos); +- buffer.limit(limit); ++ ((Buffer)buffer).position(pos); ++ ((Buffer)buffer).limit(limit); + sink.putBytes(buffer); + assertEquals(limit, buffer.limit()); + assertEquals(limit, buffer.position()); +--- guava-25.0/guava-tests/test/com/google/common/io/CharSequenceReaderTest.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava-tests/test/com/google/common/io/CharSequenceReaderTest.java 2019-10-10 22:51:18.680505077 +0200 +@@ -17,6 +17,7 @@ + package com.google.common.io; + + import java.io.IOException; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import junit.framework.TestCase; + +@@ -211,7 +212,7 @@ + reader = new CharSequenceReader(charSequence); + CharBuffer buf2 = CharBuffer.allocate(expected.length()); + assertEquals(expected.length() == 0 ? -1 : expected.length(), reader.read(buf2)); +- buf2.flip(); ++ ((Buffer)buf2).flip(); + assertEquals(expected, buf2.toString()); + assertFullyRead(reader); + +@@ -220,9 +221,9 @@ + buf2 = CharBuffer.allocate(5); + builder = new StringBuilder(); + while (reader.read(buf2) != -1) { +- buf2.flip(); ++ ((Buffer)buf2).flip(); + builder.append(buf2); +- buf2.clear(); ++ ((Buffer)buf2).clear(); + } + assertEquals(expected, builder.toString()); + assertFullyRead(reader); +--- guava-25.0/guava-tests/test/com/google/common/io/SourceSinkFactories.java 2018-04-26 00:12:31.000000000 +0200 ++++ guava-25.0/guava-tests/test/com/google/common/io/SourceSinkFactories.java 2019-10-10 22:51:18.684505100 +0200 +@@ -34,6 +34,7 @@ + import java.io.OutputStreamWriter; + import java.io.Reader; + import java.io.Writer; ++import java.nio.Buffer; + import java.nio.CharBuffer; + import java.nio.file.Path; + import java.nio.file.StandardOpenOption; +@@ -442,9 +443,9 @@ + StringBuilder builder = new StringBuilder(); + CharBuffer buffer = CharBuffer.allocate(100); + while (reader.read(buffer) != -1) { +- buffer.flip(); ++ ((Buffer)buffer).flip(); + builder.append(buffer); +- buffer.clear(); ++ ((Buffer)buffer).clear(); + } + return builder.toString(); + } diff --git a/guava.changes b/guava.changes index b605275..20fed55 100644 --- a/guava.changes +++ b/guava.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Oct 10 21:00:22 UTC 2019 - Fridrich Strba + +- Added patch: + * guava-25.0-java8compat.patch + + Avoid callingoverridden methods with covariant return types + for java.nio.ByteBuffer and java.nio.CharBuffer, which were + introduced in Java 9 + + This allows us to produce with Java >= 9 binaries that are + compatible with Java 8 + ------------------------------------------------------------------- Fri Apr 12 10:05:01 UTC 2019 - Fridrich Strba diff --git a/guava.spec b/guava.spec index fc8f675..906ee8f 100644 --- a/guava.spec +++ b/guava.spec @@ -1,7 +1,7 @@ # # spec file for package guava # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# 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 @@ -24,6 +24,7 @@ License: Apache-2.0 AND CC0-1.0 Group: Development/Libraries/Java URL: https://github.com/google/guava Source0: https://github.com/google/guava/archive/v%{version}.tar.gz +Patch0: %{name}-%{version}-java8compat.patch BuildRequires: fdupes BuildRequires: maven-local BuildRequires: mvn(com.google.code.findbugs:jsr305) @@ -49,12 +50,14 @@ API documentation for %{name}. %package testlib Summary: The guava-testlib artifact +Group: Development/Libraries/Java %description testlib guava-testlib provides additional functionality for conveninent unit testing %prep %setup -q +%patch0 -p1 find . -name '*.jar' -delete