This is an automated email from the ASF dual-hosted git repository.

pdallig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/zeppelin.git


The following commit(s) were added to refs/heads/master by this push:
     new 5d102f5289 [ZEPPELIN-5885] Solve the concurrency problem caused by 
multiple concurrent calls to note clone (#4563)
5d102f5289 is described below

commit 5d102f528902306a8172a7c608072789f15981f4
Author: qinbo12 <34186735+qinb...@users.noreply.github.com>
AuthorDate: Thu Mar 23 00:24:55 2023 +0800

    [ZEPPELIN-5885] Solve the concurrency problem caused by multiple concurrent 
calls to note clone (#4563)
---
 .../java/org/apache/zeppelin/notebook/AuthorizationService.java     | 6 +++---
 .../apache/zeppelin/notebook/NotebookAuthorizationInfoSaving.java   | 4 ++--
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
index 2b50ec01a5..d8fb3b798e 100644
--- 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
+++ 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/AuthorizationService.java
@@ -32,10 +32,10 @@ import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
 import java.io.IOException;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * This class is responsible for maintain notes authorization info. And 
provide api for
@@ -50,10 +50,10 @@ public class AuthorizationService implements 
ClusterEventListener {
   private ConfigStorage configStorage;
 
   // contains roles for each user (username --> roles)
-  private Map<String, Set<String>> userRoles = new HashMap<>();
+  private Map<String, Set<String>> userRoles = new ConcurrentHashMap<>();
 
   // cached note permission info. (noteId --> NoteAuth)
-  private Map<String, NoteAuth> notesAuth = new HashMap<>();
+  private Map<String, NoteAuth> notesAuth = new ConcurrentHashMap<>();
 
   @Inject
   public AuthorizationService(NoteManager noteManager, ZeppelinConfiguration 
conf) {
diff --git 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookAuthorizationInfoSaving.java
 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookAuthorizationInfoSaving.java
index 6440fa4a97..75dc09b720 100644
--- 
a/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookAuthorizationInfoSaving.java
+++ 
b/zeppelin-zengine/src/main/java/org/apache/zeppelin/notebook/NotebookAuthorizationInfoSaving.java
@@ -21,9 +21,9 @@ import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.apache.zeppelin.common.JsonSerializable;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * Only used for saving NotebookAuthorization info
@@ -35,7 +35,7 @@ public class NotebookAuthorizationInfoSaving implements 
JsonSerializable {
   private final Map<String, Map<String, Set<String>>> authInfo;
 
   public NotebookAuthorizationInfoSaving(Map<String, NoteAuth> notesAuth) {
-    this.authInfo = new HashMap<>();
+    this.authInfo = new ConcurrentHashMap<>();
     for (Map.Entry<String, NoteAuth> entry : notesAuth.entrySet()) {
       this.authInfo.put(entry.getKey(), entry.getValue().toMap());
     }

Reply via email to