Fix IllegalStateException when losing packet

This commit is contained in:
Him188 2020-05-21 10:38:46 +08:00
parent 7172ef628c
commit 12c38b94fe

View File

@ -531,6 +531,7 @@ internal class QQAndroidBotNetworkHandler(coroutineContext: CoroutineContext, bo
val cache = cachedPacket.value
if (cache == null) {
kotlin.runCatching {
// 没有缓存
var length: Int = rawInput.readInt() - 4
if (rawInput.remaining == length.toLong()) {
@ -560,6 +561,10 @@ internal class QQAndroidBotNetworkHandler(coroutineContext: CoroutineContext, bo
cachedPacketTimeoutJob?.cancel()
return
}
}.getOrElse {
cachedPacket.value = null
cachedPacketTimeoutJob?.cancel()
}
} else {
// 有缓存
val expectingLength = expectingRemainingLength