From 0811776273dbfb4d0dc161fbc32d7d6925101ee0 Mon Sep 17 00:00:00 2001 From: alexandrump Date: Tue, 8 Sep 2026 01:34:42 +0200 Subject: [PATCH] Use patched jamule 1.0.3-thax1 (fixes intermittent 'Invalid opcode' errors) jamule's AmuleConnection created a new BufferedInputStream on every request over the same persistent socket. Recreating the wrapper discards whatever it read ahead into its own buffer past the current packet boundary -- those bytes are gone from the raw stream, never reaching the parser, corrupting framing for the next packet on that connection. This showed up as intermittent 'jamule.exception.ServerException: Invalid opcode (wrong protocol version?)' failures, unpredictably dropping some Torznab searches. Patched jamule keeps one BufferedInputStream per connection (recreated only alongside the socket on reconnect), published locally as com.vexdev:jamule:1.0.3-thax1. --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index d16108c..6bbd18d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -30,7 +30,7 @@ dependencyResolutionManagement { library("ktor-client-cio", "io.ktor", "ktor-client-cio").versionRef("ktor") library("ktor-client-logging", "io.ktor", "ktor-client-logging").versionRef("ktor") library("ktor-client-mock", "io.ktor", "ktor-client-mock").versionRef("ktor") - library("jamule", "com.vexdev", "jamule").version("1.0.3") + library("jamule", "com.vexdev", "jamule").version("1.0.3-thax1") library("guava", "com.google.guava", "guava").version("32.1.3-jre") library("kotest-runner-junit5", "io.kotest", "kotest-runner-junit5").versionRef("kotest") library("kotest-assertions-core", "io.kotest", "kotest-assertions-core").versionRef("kotest")