From 28de385b14e75325d8e9aed497ea5e59bea6bcff Mon Sep 17 00:00:00 2001
From: Andreas Romeyke <andreas.romeyke@slub-dresden.de>
Date: Thu, 16 May 2024 10:59:27 +0200
Subject: [PATCH] - bugfix, use threadsafe set implementation, closes
 https://git.slub-dresden.de/digital-preservation/xml_plugin4rosetta/-/issues/23

---
 PLUGIN-INF/metadata_XmlFormatValidationPlugin.xml             | 2 +-
 .../dps/repository/plugin/XmlFormatValidationPlugin.java      | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/PLUGIN-INF/metadata_XmlFormatValidationPlugin.xml b/PLUGIN-INF/metadata_XmlFormatValidationPlugin.xml
index b1ae1a3..1a7e0ec 100644
--- a/PLUGIN-INF/metadata_XmlFormatValidationPlugin.xml
+++ b/PLUGIN-INF/metadata_XmlFormatValidationPlugin.xml
@@ -57,7 +57,7 @@
 		</fr:x_form>
 	</pl:initParameters>
 	<pl:description>SLUB Format Validation Plugin for XML</pl:description>
-	<pl:version>0.03</pl:version>
+	<pl:version>0.04</pl:version>
 	<pl:materialType>DIGITAL</pl:materialType>
 	<pl:module>Preservation</pl:module>
 	<pl:generalType>TASK</pl:generalType>
diff --git a/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java b/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
index 8ff9517..22349f8 100644
--- a/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
+++ b/java/org/slub/rosetta/dps/repository/plugin/XmlFormatValidationPlugin.java
@@ -37,11 +37,11 @@ import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 /**
  * XmlFormatValidationPlugin
@@ -55,7 +55,7 @@ public class XmlFormatValidationPlugin implements FormatValidationPlugin {
     private boolean valid;
     private boolean wellformed;
     private final DocumentBuilderFactory dbf = DocumentBuilderFactory.newDefaultInstance();
-    private static final Set<ValidationSchema> namespaceSchemaMap = new HashSet<>();
+    private static final Set<ValidationSchema> namespaceSchemaMap = new CopyOnWriteArraySet<>();
     private ValidationCatalogResolver validationCatalogResolver; /* for DTDs */
     private ValidationResourceResolver validationResourceResolver; /* for schema/relaxNG/... */
 
-- 
GitLab