java.io.OptionalDataException when trying to play or display info of a saved replay
Lopolin-LP opened this issue · comments
I will try to attach as much info as possible.
Problem
Starting, Stopping and Saving a recording works without issue, however playing or displaying info about it causes the following error:
[19:41:59 INFO]: Lopolin issued server command: /rp info kSCt92
[19:41:59 WARN]: java.io.OptionalDataException
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1767)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472)
[19:41:59 WARN]: at java.base/java.util.HashMap.readObject(HashMap.java:1550)
[19:41:59 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[19:41:59 WARN]: at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
[19:41:59 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:41:59 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[19:41:59 WARN]: at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514)
[19:41:59 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472)
[19:41:59 WARN]: at Replay.jar//me.jumper251.replay.filesystem.saving.DefaultReplaySaver$1.getValue(DefaultReplaySaver.java:77)
[19:41:59 WARN]: at Replay.jar//me.jumper251.replay.filesystem.saving.DefaultReplaySaver$1.getValue(DefaultReplaySaver.java:65)
[19:41:59 WARN]: at Replay.jar//me.jumper251.replay.utils.fetcher.Acceptor.run(Acceptor.java:17)
[19:41:59 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[19:41:59 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[19:41:59 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[19:41:59 WARN]: Exception in thread "pool-59-thread-1" java.lang.NullPointerException: Cannot invoke "me.jumper251.replay.replaysystem.Replay.getReplayInfo()" because "replay" is null
[19:41:59 WARN]: at Replay.jar//me.jumper251.replay.commands.replay.ReplayInfoCommand.lambda$execute$0(ReplayInfoCommand.java:45)
[19:41:59 WARN]: at Replay.jar//me.jumper251.replay.utils.fetcher.Acceptor.run(Acceptor.java:17)
[19:41:59 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[19:41:59 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[19:41:59 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[19:45:04 INFO]: Lopolin issued server command: /rp play kSCt92
[19:45:04 WARN]: java.io.OptionalDataException
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1767)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472)
[19:45:04 WARN]: at java.base/java.util.HashMap.readObject(HashMap.java:1550)
[19:45:04 WARN]: at java.base/jdk.internal.reflect.GeneratedMethodAccessor73.invoke(Unknown Source)
[19:45:04 WARN]: at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[19:45:04 WARN]: at java.base/java.lang.reflect.Method.invoke(Method.java:568)
[19:45:04 WARN]: at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1231)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2434)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2617)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2468)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2268)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1744)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:514)
[19:45:04 WARN]: at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:472)
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.filesystem.saving.DefaultReplaySaver$1.getValue(DefaultReplaySaver.java:77)
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.filesystem.saving.DefaultReplaySaver$1.getValue(DefaultReplaySaver.java:65)
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.utils.fetcher.Acceptor.run(Acceptor.java:17)
[19:45:04 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[19:45:04 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[19:45:04 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
[19:45:04 WARN]: Exception in thread "pool-59-thread-3" java.lang.NullPointerException: Cannot invoke "me.jumper251.replay.replaysystem.Replay.getData()" because "replay" is null
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.commands.replay.ReplayPlayCommand$1.accept(ReplayPlayCommand.java:43)
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.commands.replay.ReplayPlayCommand$1.accept(ReplayPlayCommand.java:39)
[19:45:04 WARN]: at Replay.jar//me.jumper251.replay.utils.fetcher.Acceptor.run(Acceptor.java:17)
[19:45:04 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[19:45:04 WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[19:45:04 WARN]: at java.base/java.lang.Thread.run(Thread.java:833)
It seems that something called "replay" is null. Could mean it failed to recieve the data of the file, because these files aren't actually empty.
Server Info
- Purpur 1.19.4 - Offline Mode
- Players Online: 2, 1x Java, 1x Bedrock (through Geyser)
Installed Plugins (if that helps)
- AdvancedBan-Bundle-2.3.0-RELEASE.jar
- CoreProtect-21.3.jar
- DiscordSRV-Build-1.26.2.jar
- floodgate-spigot.jar
- FreedomChat-1.4.2.jar
- Geyser-Spigot.jar
- KarmaPlugin.jar
- LockLogin.jar
- LuckPerms-Bukkit-5.4.71.jar
- MyCommand.jar
- PlaceholderAPI-2.11.3.jar
- ProtocolLib (2).jar
- Replay.jar
- ResourcePackDownloader-7.4.jar
- SkinsRestorer.jar
- spark-1.10.37-bukkit.jar
- Themis_0.14.6.jar
- ViaBackwards-4.6.1.jar
- ViaVersion-4.6.2.jar
- voicechat-bukkit-2.4.4.jar
- XCatch-1.1.4.jar
Config of Plugin
general:
max_length: 86400
record_on_startup: false
save_on_stop: true
use_mysql: false
use_offline_skins: true
quality: medium
cleanup_replays: -1
hide_players: false
add_new_players: true
update_notifications: true
death_message: '&6{name} &7died.'
quit_message: '&6{name} &7left the game.'
join_message: '&6{name} &7joined the game.'
replaying:
world:
reset_changes: false
recording:
blocks:
enabled: true
real_changes: true
entities:
enabled: true
items:
enabled: true
chat:
enabled: true
format: '&r<{name}> {message}'