From 89f0fbd2f21b5f7db0a6716030f62b18fbc8fad2 Mon Sep 17 00:00:00 2001 From: Riegel <alexander.riegel@hft-stuttgart.de> Date: Fri, 8 Nov 2024 13:41:03 +0100 Subject: [PATCH] Make LibraryObject and RelativeGeometry thread-safe --- .../stuttgart/citydoctor2/datastructure/LibraryObject.java | 5 +++-- .../citydoctor2/datastructure/RelativeGeometry.java | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/LibraryObject.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/LibraryObject.java index 4f99f87..f1e2024 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/LibraryObject.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/LibraryObject.java @@ -9,8 +9,9 @@ import org.apache.logging.log4j.Logger; import java.io.Serial; import java.nio.file.Path; -import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Reference object for handling of implicit geometries with a library object contained in an external file @@ -24,7 +25,7 @@ public class LibraryObject extends Geometry { private static final long serialVersionUID = -50293435187454911L; private final String filepath; private final ParserConfiguration config; - private static HashMap<String, LibraryObject> libraryObjects = new HashMap<>(); + private static Map<String, LibraryObject> libraryObjects = new ConcurrentHashMap<>(); public static LibraryObject of(Path path, ParserConfiguration config) { if (libraryObjects.containsKey(path.toString())) { diff --git a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/RelativeGeometry.java b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/RelativeGeometry.java index 987b3c9..bbacc03 100644 --- a/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/RelativeGeometry.java +++ b/CityDoctorParent/CityDoctorModel/src/main/java/de/hft/stuttgart/citydoctor2/datastructure/RelativeGeometry.java @@ -5,7 +5,8 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.Serial; -import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * Reference object for handling of implicit geometries with a relative geometry @@ -18,7 +19,7 @@ public class RelativeGeometry extends Geometry { @Serial private static final long serialVersionUID = -686112245455298977L; - private static HashMap<Geometry, RelativeGeometry> relativeGeometries = new HashMap<>(); + private static Map<Geometry, RelativeGeometry> relativeGeometries = new ConcurrentHashMap<>(); public static RelativeGeometry of(Geometry geom) { if (relativeGeometries.containsKey(geom)) { -- GitLab