--- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferDataInput.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferDataInput.java 2021-10-18 07:58:03.359785670 +0200 @@ -2,6 +2,7 @@ import java.io.DataInput; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.util.Objects; @@ -34,8 +35,8 @@ public ByteBuffer slice(int n) { int limit = ranged(n); ByteBuffer slice = bb.slice(); - slice.limit(limit); - bb.position(bb.position() + limit); + ((Buffer)slice).limit(limit); + ((Buffer)bb).position(bb.position() + limit); return slice; } @@ -52,7 +53,7 @@ @Override public int skipBytes(int n) { int skipped = ranged(n); - bb.position(bb.position() + skipped); + ((Buffer)bb).position(bb.position() + skipped); return skipped; } --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferDataOutput.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferDataOutput.java 2021-10-18 08:02:40.545556492 +0200 @@ -4,6 +4,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.UTFDataFormatException; +import java.nio.Buffer; import java.nio.ByteBuffer; public class ByteBufferDataOutput implements DataOutput { @@ -19,7 +20,7 @@ public ByteBuffer toByteBuffer() { ByteBuffer obb = bb.duplicate(); - obb.flip(); + ((Buffer)obb).flip(); return obb; } @@ -41,7 +42,7 @@ if ((newCap - minCap) < 0) { newCap = minCap; } - obb.flip(); + ((Buffer)obb).flip(); return bb = ByteBuffer.allocate(newCap) .put(obb); } @@ -78,7 +79,7 @@ byte[] buffer = obb.array(); for (int size, position; obb.hasRemaining() && (size = in.read(buffer, position = obb.position(), obb.remaining())) > 0;) { - obb.position(position + size); + ((Buffer)obb).position(position + size); } } while (!obb.hasRemaining()); } --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferInputStream.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferInputStream.java 2021-10-18 08:00:48.472840427 +0200 @@ -1,13 +1,14 @@ package aQute.lib.io; import java.io.InputStream; +import java.nio.Buffer; import java.nio.ByteBuffer; public class ByteBufferInputStream extends InputStream { private final ByteBuffer bb; public ByteBufferInputStream(ByteBuffer buffer) { - buffer.mark(); + ((Buffer)buffer).mark(); bb = buffer; } @@ -44,7 +45,7 @@ return 0L; } int skipped = Math.min((int) n, bb.remaining()); - bb.position(bb.position() + skipped); + ((Buffer)bb).position(bb.position() + skipped); return skipped; } @@ -55,17 +56,17 @@ @Override public void close() { - bb.position(bb.limit()); + ((Buffer)bb).position(bb.limit()); } @Override public synchronized void mark(int readlimit) { - bb.mark(); + ((Buffer)bb).mark(); } @Override public synchronized void reset() { - bb.reset(); + ((Buffer)bb).reset(); } @Override --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferOutputStream.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/ByteBufferOutputStream.java 2021-10-18 07:59:24.488303884 +0200 @@ -3,6 +3,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.Buffer; import java.nio.ByteBuffer; public class ByteBufferOutputStream extends OutputStream { @@ -18,7 +19,7 @@ public ByteBuffer toByteBuffer() { ByteBuffer obb = bb.duplicate(); - obb.flip(); + ((Buffer)obb).flip(); return obb; } @@ -40,7 +41,7 @@ if ((newCap - minCap) < 0) { newCap = minCap; } - obb.flip(); + ((Buffer)obb).flip(); return bb = ByteBuffer.allocate(newCap) .put(obb); } @@ -77,7 +78,7 @@ byte[] buffer = obb.array(); for (int size, position; obb.hasRemaining() && (size = in.read(buffer, position = obb.position(), obb.remaining())) > 0;) { - obb.position(position + size); + ((Buffer)obb).position(position + size); } } while (!obb.hasRemaining()); } --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/CharBufferReader.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/CharBufferReader.java 2021-10-18 08:09:03.356117231 +0200 @@ -1,13 +1,14 @@ package aQute.lib.io; import java.io.Reader; +import java.nio.Buffer; import java.nio.CharBuffer; public class CharBufferReader extends Reader { private final CharBuffer cb; public CharBufferReader(CharBuffer buffer) { - buffer.mark(); + ((Buffer)buffer).mark(); cb = buffer; } @@ -24,7 +25,7 @@ @Override public void close() { - cb.position(cb.limit()); + ((Buffer)cb).position(cb.limit()); } @Override @@ -41,7 +42,7 @@ return 0L; } int skipped = Math.min((int) n, cb.remaining()); - cb.position(cb.position() + skipped); + ((Buffer)cb).position(cb.position() + skipped); return skipped; } @@ -57,11 +58,11 @@ @Override public void mark(int readAheadLimit) { - cb.mark(); + ((Buffer)cb).mark(); } @Override public void reset() { - cb.reset(); + ((Buffer)cb).reset(); } } --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/IO.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/io/IO.java 2021-10-18 08:32:23.545468242 +0200 @@ -25,6 +25,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.channels.Channels; @@ -218,11 +219,11 @@ try { ByteBuffer bb = ByteBuffer.allocateDirect(BUFFER_SIZE); while (in.read(bb) > 0) { - bb.flip(); + ((Buffer)bb).flip(); out.write(bb); bb.compact(); } - for (bb.flip(); bb.hasRemaining();) { + for (((Buffer)bb).flip(); bb.hasRemaining();) { out.write(bb); } return out; @@ -238,7 +239,7 @@ int offset = bb.arrayOffset(); for (int size, position; bb.hasRemaining() && (size = in.read(buffer, offset + (position = bb.position()), bb.remaining())) > 0;) { - bb.position(position + size); + ((Buffer)bb).position(position + size); } } else { int length = Math.min(bb.remaining(), BUFFER_SIZE); @@ -275,7 +276,7 @@ bbout.write(bb); } else if (bb.hasArray()) { out.write(bb.array(), bb.arrayOffset() + bb.position(), bb.remaining()); - bb.position(bb.limit()); + ((Buffer)bb).position(bb.limit()); } else { int length = Math.min(bb.remaining(), BUFFER_SIZE); byte[] buffer = new byte[length]; @@ -294,7 +295,7 @@ bbout.write(bb); } else if (bb.hasArray()) { out.write(bb.array(), bb.arrayOffset() + bb.position(), bb.remaining()); - bb.position(bb.limit()); + ((Buffer)bb).position(bb.limit()); } else { int length = Math.min(bb.remaining(), BUFFER_SIZE); byte[] buffer = new byte[length]; @@ -339,7 +340,7 @@ try { ByteBuffer bb = ByteBuffer.allocate(BUFFER_SIZE); while (in.read(bb) > 0) { - bb.flip(); + ((Buffer)bb).flip(); md.update(bb); bb.compact(); } @@ -472,12 +473,12 @@ ByteBuffer bb = ByteBuffer.allocate(BUFFER_SIZE); byte[] buffer = bb.array(); for (int size, position; (size = in.read(buffer, position = bb.position(), bb.remaining())) > 0;) { - bb.position(position + size); - bb.flip(); + ((Buffer)bb).position(position + size); + ((Buffer)bb).flip(); out.write(bb); bb.compact(); } - for (bb.flip(); bb.hasRemaining();) { + for (((Buffer)bb).flip(); bb.hasRemaining();) { out.write(bb); } return out; @@ -490,7 +491,7 @@ try { ByteBuffer bb = ByteBuffer.allocate(BUFFER_SIZE); byte[] buffer = bb.array(); - for (; in.read(bb) > 0; bb.clear()) { + for (; in.read(bb) > 0; ((Buffer)bb).clear()) { out.write(buffer, 0, bb.position()); } return out; @@ -515,7 +516,7 @@ } ByteBuffer bb = ByteBuffer.allocate((int) size); while (in.read(bb) > 0) {} - bb.flip(); + ((Buffer)bb).flip(); return bb; } } --- bnd-5.1.1.REL/aQute.libg/src/aQute/lib/utf8properties/UTF8Properties.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/src/aQute/lib/utf8properties/UTF8Properties.java 2021-10-18 08:04:01.910076369 +0200 @@ -10,6 +10,7 @@ import java.io.Reader; import java.io.StringWriter; import java.io.Writer; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.CharsetDecoder; @@ -120,11 +121,11 @@ } decoder.reset(); if (success) { - return cb.flip() + return ((Buffer)cb).flip() .toString(); } - bb.rewind(); - cb.clear(); + ((Buffer)bb).rewind(); + ((Buffer)cb).clear(); } return new String(buffer); // default decoding } --- bnd-5.1.1.REL/aQute.libg/test/aQute/lib/io/IOTest.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/aQute.libg/test/aQute/lib/io/IOTest.java 2021-10-18 07:51:55.341414987 +0200 @@ -13,6 +13,7 @@ import java.io.InputStream; import java.io.Writer; import java.lang.reflect.Method; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.file.Files; import java.nio.file.Path; @@ -135,7 +136,7 @@ assertEquals((int) src.length(), bb.position()); assertEquals(bb.capacity(), bb.position()); assertFalse(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -149,7 +150,7 @@ ByteBuffer bb = IO.copy(IO.stream(src), ByteBuffer.allocate((int) src.length() - 8)); assertEquals(bb.capacity(), bb.position()); assertFalse(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -163,7 +164,7 @@ ByteBuffer bb = IO.copy(IO.stream(src), ByteBuffer.allocate((int) src.length() + 20)); assertEquals((int) src.length(), bb.position()); assertTrue(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -178,7 +179,7 @@ assertEquals((int) src.length(), bb.position()); assertEquals(bb.capacity(), bb.position()); assertFalse(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -192,7 +193,7 @@ ByteBuffer bb = IO.copy(IO.stream(src), ByteBuffer.allocateDirect((int) src.length() - 8)); assertEquals(bb.capacity(), bb.position()); assertFalse(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -206,7 +207,7 @@ ByteBuffer bb = IO.copy(IO.stream(src), ByteBuffer.allocateDirect((int) src.length() + 20)); assertEquals((int) src.length(), bb.position()); assertTrue(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -220,7 +221,7 @@ ByteBuffer bb = IO.copy(IO.stream(src), ByteBuffer.allocateDirect(IOConstants.PAGE_SIZE * 32)); assertEquals((int) src.length(), bb.position()); assertTrue(bb.hasRemaining()); - bb.flip(); + ((Buffer)bb).flip(); int length = bb.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], bb.get()); @@ -243,7 +244,7 @@ for (int i = 1; i < length; i++) { assertEquals(file[i - 1], wrapped[i]); } - slice.flip(); + ((Buffer)slice).flip(); length = slice.remaining(); for (int i = 0; i < length; i++) { assertEquals(file[i], slice.get()); --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/CodeAttribute.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/CodeAttribute.java 2021-10-18 07:43:59.698276751 +0200 @@ -3,6 +3,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.util.Arrays; @@ -58,7 +59,7 @@ out.writeShort(max_stack); out.writeShort(max_locals); ByteBuffer duplicate = code.duplicate(); - duplicate.rewind(); + ((Buffer)duplicate).rewind(); int code_length = duplicate.limit(); out.writeInt(code_length); IO.copy(duplicate, out); --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/SourceDebugExtensionAttribute.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/SourceDebugExtensionAttribute.java 2021-10-18 07:46:56.515450094 +0200 @@ -3,6 +3,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import aQute.lib.io.IO; @@ -40,7 +41,7 @@ out.writeShort(attribute_name_index); out.writeInt(attribute_length); ByteBuffer duplicate = debug_extension.duplicate(); - duplicate.rewind(); + ((Buffer)duplicate).rewind(); IO.copy(duplicate, out); } --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/UnrecognizedAttribute.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/classfile/UnrecognizedAttribute.java 2021-10-18 08:14:58.714562788 +0200 @@ -3,6 +3,7 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.nio.Buffer; import java.nio.ByteBuffer; import aQute.lib.io.IO; @@ -41,7 +42,7 @@ out.writeShort(attribute_name_index); out.writeInt(attribute_length); ByteBuffer duplicate = value.duplicate(); - duplicate.rewind(); + ((Buffer)duplicate).rewind(); IO.copy(duplicate, out); } --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/Clazz.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/Clazz.java 2021-10-18 07:36:37.475442949 +0200 @@ -23,6 +23,7 @@ import java.io.InputStream; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Modifier; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.util.ArrayDeque; import java.util.Arrays; @@ -1201,7 +1202,7 @@ private void processCode(CodeAttribute attribute, ElementType elementType) { ByteBuffer code = attribute.code.duplicate(); - code.rewind(); + ((Buffer)code).rewind(); int lastReference = -1; while (code.hasRemaining()) { int instruction = Byte.toUnsignedInt(code.get()); @@ -1248,7 +1249,7 @@ } case OpCodes.wide : { int opcode = Byte.toUnsignedInt(code.get()); - code.position(code.position() + (opcode == OpCodes.iinc ? 4 : 2)); + ((Buffer)code).position(code.position() + (opcode == OpCodes.iinc ? 4 : 2)); lastReference = -1; break; } @@ -1256,12 +1257,12 @@ // Skip to place divisible by 4 int rem = code.position() % 4; if (rem != 0) { - code.position(code.position() + 4 - rem); + ((Buffer)code).position(code.position() + 4 - rem); } int deflt = code.getInt(); int low = code.getInt(); int high = code.getInt(); - code.position(code.position() + (high - low + 1) * 4); + ((Buffer)code).position(code.position() + (high - low + 1) * 4); lastReference = -1; break; } @@ -1269,16 +1270,16 @@ // Skip to place divisible by 4 int rem = code.position() % 4; if (rem != 0) { - code.position(code.position() + 4 - rem); + ((Buffer)code).position(code.position() + 4 - rem); } int deflt = code.getInt(); int npairs = code.getInt(); - code.position(code.position() + npairs * 8); + ((Buffer)code).position(code.position() + npairs * 8); lastReference = -1; break; } default : { - code.position(code.position() + OpCodes.OFFSETS[instruction]); + ((Buffer)code).position(code.position() + OpCodes.OFFSETS[instruction]); lastReference = -1; break; } @@ -1292,7 +1293,7 @@ private void visitCode(ClassDataCollector cd, CodeAttribute attribute, ElementType elementType) throws Exception { ByteBuffer code = attribute.code.duplicate(); - code.rewind(); + ((Buffer)code).rewind(); while (code.hasRemaining()) { int instruction = Byte.toUnsignedInt(code.get()); switch (instruction) { @@ -1309,7 +1310,7 @@ case OpCodes.invokeinterface : { int method_ref_index = Short.toUnsignedInt(code.getShort()); visitReferenceMethod(cd, method_ref_index); - code.position(code.position() + 2); + ((Buffer)code).position(code.position() + 2); break; } case OpCodes.invokestatic : { @@ -1319,34 +1320,34 @@ } case OpCodes.wide : { int opcode = Byte.toUnsignedInt(code.get()); - code.position(code.position() + (opcode == OpCodes.iinc ? 4 : 2)); + ((Buffer)code).position(code.position() + (opcode == OpCodes.iinc ? 4 : 2)); break; } case OpCodes.tableswitch : { // Skip to place divisible by 4 int rem = code.position() % 4; if (rem != 0) { - code.position(code.position() + 4 - rem); + ((Buffer)code).position(code.position() + 4 - rem); } int deflt = code.getInt(); int low = code.getInt(); int high = code.getInt(); - code.position(code.position() + (high - low + 1) * 4); + ((Buffer)code).position(code.position() + (high - low + 1) * 4); break; } case OpCodes.lookupswitch : { // Skip to place divisible by 4 int rem = code.position() % 4; if (rem != 0) { - code.position(code.position() + 4 - rem); + ((Buffer)code).position(code.position() + 4 - rem); } int deflt = code.getInt(); int npairs = code.getInt(); - code.position(code.position() + npairs * 8); + ((Buffer)code).position(code.position() + npairs * 8); break; } default : { - code.position(code.position() + OpCodes.OFFSETS[instruction]); + ((Buffer)code).position(code.position() + OpCodes.OFFSETS[instruction]); break; } } --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/Jar.java 2021-10-18 07:40:21.304848650 +0200 @@ -13,6 +13,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.net.URI; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.file.FileVisitOption; import java.nio.file.FileVisitResult; @@ -1106,7 +1107,7 @@ if ((bb != null) && bb.hasArray()) { for (MessageDigest d : digests) { d.update(bb); - bb.flip(); + ((Buffer)bb).flip(); } } else { try (InputStream in = r.openInputStream()) { --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/URLResource.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/URLResource.java 2021-10-18 07:39:12.944410885 +0200 @@ -7,6 +7,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.util.jar.JarFile; @@ -48,7 +49,7 @@ return buffer = ByteBuffer.wrap(IO.read(in)); } ByteBuffer bb = IO.copy(in, ByteBuffer.allocate(size)); - bb.flip(); + ((Buffer)bb).flip(); return buffer = bb; } --- bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/ZipResource.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.bndlib/src/aQute/bnd/osgi/ZipResource.java 2021-10-18 07:37:53.975919239 +0200 @@ -6,6 +6,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.file.Path; import java.util.zip.ZipEntry; @@ -64,7 +65,7 @@ return buffer = ByteBuffer.wrap(IO.read(zip.getInputStream(entry))); } ByteBuffer bb = IO.copy(zip.getInputStream(entry), ByteBuffer.allocate((int) size)); - bb.flip(); + ((Buffer)bb).flip(); return buffer = bb; } --- bnd-5.1.1.REL/biz.aQute.repository/src/aQute/maven/provider/POM.java 2020-06-16 23:03:04.000000000 +0200 +++ bnd-5.1.1.REL/biz.aQute.repository/src/aQute/maven/provider/POM.java 2021-10-18 07:49:09.756330007 +0200 @@ -3,6 +3,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.charset.StandardCharsets; @@ -147,7 +148,7 @@ try (FileChannel in = IO.readChannel(file.toPath())) { ByteBuffer bb = ByteBuffer.allocate((int) in.size()); while (in.read(bb) > 0) {} - bb.flip(); + ((Buffer)bb).flip(); return processEntities(bb); } }