From c12e6d0525cb10e922daf63d83f0c7fe33b15708 Mon Sep 17 00:00:00 2001 From: D4rkr34lm Date: Fri, 3 May 2024 23:41:55 +0200 Subject: [PATCH] Fixed Nullpointer in clear Made hacky fix for EOF --- .../bausystem/features/tracer/Trace.java | 18 +++++++++++------- .../features/tracer/TraceManager.java | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java index 13e7114d..fa3cc9c6 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/Trace.java @@ -308,16 +308,20 @@ public class Trace { /** * Loads the records of this trace from storage to memory */ - @SneakyThrows private void loadRecords() { List records = new ArrayList<>(); - FileInputStream fileInputStream = new FileInputStream(recordsSaveFile); - - @Cleanup - ObjectInputStream inputStream = new ObjectInputStream(new GZIPInputStream(fileInputStream)); - while (fileInputStream.getChannel().position() < recordsSaveFile.length()) { - records.add((TNTPoint) inputStream.readObject()); + try { + FileInputStream fileInputStream = new FileInputStream(recordsSaveFile); + @Cleanup + ObjectInputStream inputStream = new ObjectInputStream(new GZIPInputStream(fileInputStream)); + while (fileInputStream.getChannel().position() < recordsSaveFile.length()) { + TNTPoint record = (TNTPoint) inputStream.readObject(); + records.add(record); + } + } catch (EOFException e) { + } catch (IOException | ClassNotFoundException e) { + e.printStackTrace(); } Map> histories = new HashMap<>(); diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java index d735fe8d..8ab7437c 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/tracer/TraceManager.java @@ -152,7 +152,7 @@ public class TraceManager implements Listener { .keySet() .forEach(player -> { Set players = followerMap.getOrDefault(player, Collections.emptySet()); - tracesByRegion.get(region).values().forEach(trace -> { + tracesByRegion.getOrDefault(region, new HashMap<>()).values().forEach(trace -> { trace.hide(player); players.forEach(trace::hide); });