mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-22 10:38:26 +00:00
fix: failing to serialize from AttachmentUploadJob.kt started from resumed pending jobs
This commit is contained in:
parent
340d11377d
commit
50b02323a8
@ -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,18 +157,24 @@ 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),
|
||||||
data.getString(THREAD_ID_KEY)!!,
|
data.getString(THREAD_ID_KEY)!!,
|
||||||
message,
|
message,
|
||||||
data.getString(MESSAGE_SEND_JOB_ID_KEY)!!
|
data.getString(MESSAGE_SEND_JOB_ID_KEY)!!
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user