Jumper251 / AdvancedReplay

Minecraft plugin to record players on your server
GNU General Public License v3.0
141 stars 62 forks source link

java.io.OptionalDataException when trying to play or display info of a saved replay #135

Open Lopolin-LP opened 1 year ago

Lopolin-LP commented 1 year ago

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

Installed Plugins (if that helps)

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}'