-
Notifications
You must be signed in to change notification settings - Fork 55
Description
During testing of the Kotlin SDK for SQS, an exception was encountered. This code works using the Java SDK written in Kotlin:
for (message in messages) {
val deleteMessageRequest = DeleteMessageRequest.builder()
.queueUrl(queueUrl)
.receiptHandle(message.receiptHandle())
.build()
sqsClient.deleteMessage(deleteMessageRequest)
}
This is similar code using the Kotlin SDK
for (message in messages) {
val hanVal = message.receiptHandle
val deleteMessageRequest = DeleteMessageRequest {
queueUrl = queueUrlVal
receiptHandle = hanVal
}
sqsClient.deleteMessage(deleteMessageRequest) // Throws exception
}
This code throws this exception when deleteMessage is called.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at io.ktor.utils.io.bits.Memory.copyTo-f5Ywojk(MemoryJvm.kt:62)
at software.aws.clientrt.io.SdkBufferKt.writeFully(SdkBuffer.kt:277)
at software.aws.clientrt.io.SdkBufferKt.writeFully$default(SdkBuffer.kt:159)
at software.aws.clientrt.io.SdkBufferKt.write(SdkBuffer.kt:216)
at software.aws.clientrt.serde.formurl.FormUrlSerializer$write$1.invoke(FormUrlSerializer.kt:38)
at software.aws.clientrt.serde.formurl.FormUrlSerializer$write$1.invoke(FormUrlSerializer.kt:38)
at software.aws.clientrt.serde.formurl.FormUrlSerializer.write(FormUrlSerializer.kt:35)
at software.aws.clientrt.serde.formurl.FormUrlSerializer.write(FormUrlSerializer.kt:38)
at software.aws.clientrt.serde.formurl.FormUrlSerializer.serializeString(FormUrlSerializer.kt:48)
at software.aws.clientrt.serde.formurl.FormUrlStructSerializer.serializeString(FormUrlSerializer