From 60cc37749f3b63d0728e4869b77bca3a632a16cb Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Mon, 29 Mar 2021 11:08:16 -0400 Subject: [PATCH] Fix ByteBuffer cross-compatibility issues (#128) Co-authored-by: Jack Dingilian --- .../converters/avro/AvroElitzurConversionUtils.scala | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/AvroElitzurConversionUtils.scala b/elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/AvroElitzurConversionUtils.scala index dbb9bd9..fbf69a4 100644 --- a/elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/AvroElitzurConversionUtils.scala +++ b/elitzur-avro/src/main/scala/com/spotify/elitzur/converters/avro/AvroElitzurConversionUtils.scala @@ -16,7 +16,7 @@ */ package com.spotify.elitzur.converters.avro -import java.nio.ByteBuffer +import java.nio.{Buffer, ByteBuffer} import org.apache.avro.Schema import org.apache.avro.generic.{GenericData, GenericRecord, GenericRecordBuilder} @@ -40,7 +40,9 @@ object AvroElitzurConversionUtils { // http://errorprone.info/bugpattern/ByteBufferBackingArray val bArray = new Array[Byte](bBuffer.remaining) bBuffer.get(bArray) - bBuffer.position(bBuffer.position() - bArray.length) // Restores position + // cast to Buffer to fix cross-compat issue described + // here: https://stackoverflow.com/questions/61267495 + (bBuffer: Buffer).position((bBuffer: Buffer).position() - bArray.length) // Restores position bArray }