From ba077b58fc567b6711c1370569feac670d3a1c8c Mon Sep 17 00:00:00 2001 From: jmaxwell Date: Fri, 9 Mar 2018 13:44:19 -0600 Subject: [PATCH] GH-1292 Remove Unnecessary ByteBuffer Resolves #1292 Resolves #1293 --- .../stream/schema/avro/AbstractAvroMessageConverter.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/spring-cloud-stream-schema/src/main/java/org/springframework/cloud/stream/schema/avro/AbstractAvroMessageConverter.java b/spring-cloud-stream-schema/src/main/java/org/springframework/cloud/stream/schema/avro/AbstractAvroMessageConverter.java index f00a045e7..5ce234ec6 100644 --- a/spring-cloud-stream-schema/src/main/java/org/springframework/cloud/stream/schema/avro/AbstractAvroMessageConverter.java +++ b/spring-cloud-stream-schema/src/main/java/org/springframework/cloud/stream/schema/avro/AbstractAvroMessageConverter.java @@ -18,7 +18,6 @@ package org.springframework.cloud.stream.schema.avro; import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.nio.ByteBuffer; import java.util.Collection; import java.util.Collections; @@ -77,7 +76,7 @@ public abstract class AbstractAvroMessageConverter extends AbstractMessageConver Object result = null; try { byte[] payload = (byte[]) message.getPayload(); - ByteBuffer buf = ByteBuffer.wrap(payload); + MimeType mimeType = getContentTypeResolver().resolve(message.getHeaders()); if (mimeType == null) { if (conversionHint instanceof MimeType) { @@ -87,9 +86,11 @@ public abstract class AbstractAvroMessageConverter extends AbstractMessageConver return null; } } - buf.get(payload); + Schema writerSchema = resolveWriterSchemaForDeserialization(mimeType); Schema readerSchema = resolveReaderSchemaForDeserialization(targetClass); + + @SuppressWarnings("unchecked") DatumReader reader = getDatumReader((Class) targetClass, readerSchema, writerSchema); Decoder decoder = DecoderFactory.get().binaryDecoder(payload, null); result = reader.read(null, decoder);