From 85e6b62c7b168a7180ea6c6b8890ff5016e808e6 Mon Sep 17 00:00:00 2001
From: Emmanuel Bruno <emmanuel.bruno@univ-tln.fr>
Date: Tue, 2 Mar 2021 09:16:01 +0100
Subject: [PATCH] adds thread safe id inc.

---
 .../fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java    | 5 +++--
 .../fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java  | 1 -
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java
index 01db785..424306c 100644
--- a/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/model/BiblioModel.java
@@ -18,6 +18,7 @@ import java.io.Serializable;
 import java.security.InvalidParameterException;
 import java.util.Comparator;
 import java.util.List;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -28,14 +29,14 @@ import static fr.univtln.bruno.samples.jaxrs.model.BiblioModel.Field.valueOf;
 @FieldDefaults(level = AccessLevel.PRIVATE)
 @NoArgsConstructor(staticName = "of")
 public class BiblioModel {
-    private static long lastId = 0;
+    private static AtomicLong lastId = new AtomicLong(0);
 
     @Delegate
     final MutableLongObjectMap<Auteur> auteurs = LongObjectMaps.mutable.empty();
 
     public Auteur addAuteur(Auteur auteur) throws IllegalArgumentException {
         if (auteur.id != 0) throw new IllegalArgumentException();
-        auteur.id = ++lastId;
+        auteur.id = lastId.incrementAndGet();
         auteurs.put(auteur.id, auteur);
         return auteur;
     }
diff --git a/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java
index 1e376ee..a01e7a2 100644
--- a/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java
+++ b/src/main/java/fr/univtln/bruno/samples/jaxrs/status/StatusFilter.java
@@ -6,7 +6,6 @@ import jakarta.ws.rs.container.ContainerResponseFilter;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.ext.Provider;
 
-import java.io.IOException;
 import java.lang.annotation.Annotation;
 
 @Provider
-- 
GitLab