From a5aaa8924a18f504faa60555bfd981a28d2320e1 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 27 Jan 2025 16:08:19 +0100 Subject: [PATCH] SPVBlockStore: make sure to use position(int) only from Buffer rather than MappedByteBuffer Without this cast, on some old JDKs it links against an overloaded method in MappedByteBuffer and Android doesn't have it. --- core/src/main/java/org/bitcoinj/store/SPVBlockStore.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java b/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java index c583c2708..fc25026d6 100644 --- a/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java +++ b/core/src/main/java/org/bitcoinj/store/SPVBlockStore.java @@ -236,9 +236,9 @@ public class SPVBlockStore implements BlockStore { final byte[] zeroPadding = new byte[20]; // 32 (V2 work) - 12 (V1 work) for (int i = currentCapacity - 1; i >= 0; i--) { byte[] record = new byte[RECORD_SIZE_V1]; - buffer.position(FILE_PROLOGUE_BYTES + i * RECORD_SIZE_V1); + ((Buffer) buffer).position(FILE_PROLOGUE_BYTES + i * RECORD_SIZE_V1); buffer.get(record); - buffer.position(FILE_PROLOGUE_BYTES + i * RECORD_SIZE_V2); + ((Buffer) buffer).position(FILE_PROLOGUE_BYTES + i * RECORD_SIZE_V2); buffer.put(record, 0, 32); // hash buffer.put(zeroPadding); buffer.put(record, 32, RECORD_SIZE_V1 - 32); // work, height, block header