spmp
spmp copied to clipboard
[Flatpak/Linux] java.io.FileNotFoundException: ~/.cache/spmp/thumbnails/<filename>.png (No such file or directory)
Checklist
- [X] I am able to reproduce the bug with the latest debug version (Android, Linux, Windows)
- [X] I've checked that there is no open or closed issue about this bug.
- [X] This issue contains only one bug.
- [X] The title of this issue accurately describes the bug.
Steps to reproduce
- Install spmp through flatpak following: https://spmp.toastbits.dev/docs/0.4.x/client/installation/#flatpak
- Launch spmp through Rofi or run
flatpak run spmpin Kitty terminal.
Expected behavior
Program should run without crashes.
Actual behavior
Program crashed due to
java.io.FileNotFoundException: /home/popcat19/.cache/spmp/thumbnails/VLRDCLAK5uy_l39bpxtMK-nGlOep-fF0yW_rFTdG0P5Ig.0.png (No such file or directory)
Screenshots / recordings
Logs
~
❯ flatpak run dev.toastbits.spmp
Database is already up to date (version 6)
Loading resource file at values/strings.xml
Loading resource file at values-en-US/strings.xml
SLF4J(W): No SLF4J providers were found.
SLF4J(W): Defaulting to no-operation (NOP) logger implementation
SLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details.
Event (true, null): PROPERTY_CHANGED({key="is_playing", value=false})
Connecting to server at tcp://127.0.0.1:3973...
Sending handshake message to server at tcp://127.0.0.1:3973...
Waiting for reply from server at tcp://127.0.0.1:3973...
Received reply handshake from server with the following content:
[{"name":"spmp-server","device_name":"popcat19-pc0 on Linux","spms_api_version":2,"server_state":{"queue":[],"state":"IDLE","is_playing":false,"current_item_index":-1,"current_position_ms":0,"duration_ms":0,"repeat_mode":"NONE"},"machine_id":"TYwYXCcw"}]
Sent connection reply to Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=2454)): SpMsServerHandshake(name=spmp-server, device_name=popcat19-pc0 on Linux, spms_api_version=2, server_state=SpMsServerState(queue=[], state=IDLE, is_playing=false, current_item_index=-1, current_position_ms=0, duration_ms=0, repeat_mode=NONE), machine_id=TYwYXCcw, action_replies=null)
Client connected: Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=2454))
sendRequest !clients [] false
GOT MSG FROM CLIENT [!clients, []]
Performing server action clients with [] from Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=157281509))
Sending reply to client: [SpMsActionReply(success=true, error=null, error_cause=null, result=[{"name":"spmp-server","type":"SERVER","language":"EN","machine_id":"TYwYXCcw","player_port":3973},{"name":"SpMp [Linux, popcat19-pc0]","type":"SPMP_STANDALONE","language":"EN","machine_id":"TYwYXCcw","is_caller":true}])]
sendRequest setAuthInfo [null] false
GOT MSG FROM CLIENT [setAuthInfo, [null]]
Performing player action setAuthInfo with [null] from Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=409086586))
Sending reply to client: []
sendRequest !clients [] false
GOT MSG FROM CLIENT [!clients, []]
Performing server action clients with [] from Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=1129838756))
Sending reply to client: [SpMsActionReply(success=true, error=null, error_cause=null, result=[{"name":"spmp-server","type":"SERVER","language":"EN","machine_id":"TYwYXCcw","player_port":3973},{"name":"SpMp [Linux, popcat19-pc0]","type":"SPMP_STANDALONE","language":"EN","machine_id":"TYwYXCcw","is_caller":true}])]
sendRequest setLocalFiles [{}] false
GOT MSG FROM CLIENT [setLocalFiles, [{}]]
Performing player action setLocalFiles with [{}] from Client(id=30385170, name=SpMp [Linux, popcat19-pc0], type=SPMP_STANDALONE, language=EN, event_head=0, last_heartbeat=ValueTimeMark(reading=1242562235))
Sending reply to client: []
java.io.FileNotFoundException: /home/popcat19/.cache/spmp/thumbnails/l6_w3887Rwo.0.png (No such file or directory)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:114)
at com.toasterofbread.spmp.model.mediaitem.loader.MediaItemThumbnailLoader$performLoad$2.invokeSuspend(MediaItemThumbnailLoader.kt:128)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.scene.ComposeContainer$DesktopCoroutineExceptionHandler@4eba452e, androidx.compose.runtime.BroadcastFrameClock@13f7bec2, StandaloneCoroutine{Cancelling}@71ddaf1e, FlushCoroutineDispatcher@3da3bae4]
java.io.FileNotFoundException: /home/popcat19/.cache/spmp/thumbnails/VLRDCLAK5uy_l39bpxtMK-nGlOep-fF0yW_rFTdG0P5Ig.0.png (No such file or directory)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at java.base/java.io.FileOutputStream.<init>(Unknown Source)
at kotlin.io.FilesKt__FileReadWriteKt.writeBytes(FileReadWrite.kt:114)
at com.toasterofbread.spmp.model.mediaitem.loader.MediaItemThumbnailLoader$performLoad$2.invokeSuspend(MediaItemThumbnailLoader.kt:128)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.scene.ComposeContainer$DesktopCoroutineExceptionHandler@4eba452e, androidx.compose.runtime.BroadcastFrameClock@13f7bec2, StandaloneCoroutine{Cancelling}@6b4774db, FlushCoroutineDispatcher@3da3bae4]
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
GOT MSG FROM CLIENT []
Sending reply to client: []
SpMp version
0.4.1
SpMp platform
Linux
OS version
CachyOS/Arch 6.12.1-2-cachyos
Additional information
Couldn't run debug release artifact
After executing spmp from ~/Downloads/spmp/bin with crash: java.lang.UnsupportedClassVersionError.
|
If I'm doing this wrong, please direct me with steps to properly run spmp latest debug version on Arch Linux.
(jdk-openjdk 23.0.1 is installed)
Log
java.lang.UnsupportedClassVersionError: dev/toastbits/ytmkt/impl/youtubei/YoutubeiApi has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 65.0
Stack trace:
java.lang.UnsupportedClassVersionError: dev/toastbits/ytmkt/impl/youtubei/YoutubeiApi has been compiled by a more recent version of the Java Runtime (class file version 66.0), this version of the Java Runtime only recognizes class file versions up to 65.0
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(Unknown Source)
at java.base/java.security.SecureClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(Unknown Source)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at com.toasterofbread.spmp.youtubeapi.YtmApiType.instantiate(YtmApiType.kt:24)
at com.toasterofbread.spmp.platform.AppContext.<init>(AppContext.desktop.kt:56)
at com.toasterofbread.spmp.platform.AppContext.<init>(AppContext.desktop.kt)
at com.toasterofbread.spmp.platform.AppContext$Companion.create(AppContext.desktop.kt:35)
at com.toasterofbread.spmp.platform.AppContext$Companion$create$1.invokeSuspend(AppContext.desktop.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:28)
at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:100)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
at MainKt.main(main.kt:41)
Distro: CachyOS (Arch-based) WM: Hyprland (Wayland)
~
❯ flatpak info dev.toastbits.spmp
SpMp - A customisable YouTube Music client
ID: dev.toastbits.spmp
Ref: app/dev.toastbits.spmp/x86_64/master
Arch: x86_64
Branch: master
Version: v0.4.1
License: GPL-3.0-only
Origin: toastbits
Collection:
Installation: system
Installed: 507.7 MB
Runtime: org.freedesktop.Platform/x86_64/23.08
Sdk: org.freedesktop.Sdk/x86_64/23.08
Commit: aae20f3b742fccea3a090e67846ee29808428633c9298532124dea203ef5fc3e
Subject: Export dev.toastbits.spmp
Date: 2024-10-28 17:50:21 +0000
On an afterthought, this problem could be occuring because of my <800kb/s download speed. Nonetheless, it should still compensate load for the limited speed; youtube/ytm loads and runs without issues in Brave browser.