fix: failing to serialize from AttachmentUploadJob.kt started from resumed pending jobs

This commit is contained in:
jubb 2021-07-05 09:53:12 +10:00
parent 340d11377d
commit 50b02323a8

View File

@ -141,12 +141,12 @@ class AttachmentUploadJob(val attachmentID: Long, val threadID: String, val mess
kryo.isRegistrationRequired = false kryo.isRegistrationRequired = false
val serializedMessage = ByteArray(4096) val serializedMessage = ByteArray(4096)
val output = Output(serializedMessage) val output = Output(serializedMessage)
kryo.writeObject(output, message) kryo.writeClassAndObject(output, message)
output.close() output.close()
return Data.Builder() return Data.Builder()
.putLong(ATTACHMENT_ID_KEY, attachmentID) .putLong(ATTACHMENT_ID_KEY, attachmentID)
.putString(THREAD_ID_KEY, threadID) .putString(THREAD_ID_KEY, threadID)
.putByteArray(MESSAGE_KEY, serializedMessage) .putByteArray(MESSAGE_KEY, output.toBytes())
.putString(MESSAGE_SEND_JOB_ID_KEY, messageSendJobID) .putString(MESSAGE_SEND_JOB_ID_KEY, messageSendJobID)
.build() .build()
} }
@ -157,12 +157,18 @@ class AttachmentUploadJob(val attachmentID: Long, val threadID: String, val mess
class Factory: Job.Factory<AttachmentUploadJob> { class Factory: Job.Factory<AttachmentUploadJob> {
override fun create(data: Data): AttachmentUploadJob { override fun create(data: Data): AttachmentUploadJob? {
val serializedMessage = data.getByteArray(MESSAGE_KEY) val serializedMessage = data.getByteArray(MESSAGE_KEY)
val kryo = Kryo() val kryo = Kryo()
kryo.isRegistrationRequired = false kryo.isRegistrationRequired = false
val input = Input(serializedMessage) val input = Input(serializedMessage)
val message = kryo.readObject(input, Message::class.java) val message: Message
try {
message = kryo.readClassAndObject(input) as Message
} catch (e: Exception) {
Log.e("Loki","Couldn't serialize the AttachmentUploadJob", e)
return null
}
input.close() input.close()
return AttachmentUploadJob( return AttachmentUploadJob(
data.getLong(ATTACHMENT_ID_KEY), data.getLong(ATTACHMENT_ID_KEY),