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

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit b71617b76ae89c461fc11d66ae2375279ede8a3b
Author: Shoothzj <[email protected]>
AuthorDate: Thu Jul 29 16:45:21 2021 +0800

    Deep copy the tenants to avoid concurrent sort exception (#11463)
    
    
    (cherry picked from commit 191dc62d7714a7126c0190e63d0796bc84c2c367)
---
 .../main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
index d81da0a..879e8b0 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/TenantsBase.java
@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
@@ -75,8 +76,10 @@ public class TenantsBase extends PulsarWebResource {
                 asyncResponse.resume(new RestException(e));
                 return;
             }
-            tenants.sort(null);
-            asyncResponse.resume(tenants);
+            // deep copy the tenants to avoid concurrent sort exception
+            List<String> deepCopy = new ArrayList<>(tenants);
+            deepCopy.sort(null);
+            asyncResponse.resume(deepCopy);
         });
     }
 

Reply via email to