This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 10.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.0.x by this push: new ea274f2 Fix SpotBugs warning and threading issue ea274f2 is described below commit ea274f248d65a9b7290010dbcd39017e78181beb Author: Mark Thomas <ma...@apache.org> AuthorDate: Wed Jun 23 11:01:30 2021 +0100 Fix SpotBugs warning and threading issue The threading issue is that roles/groups can have entries removed between the size test and the call to StringUtils.join() Empty groups and/or role lists are not an issue so remove the test which removes the need for the sync and removes the threading issue. --- java/org/apache/catalina/users/MemoryGroup.java | 10 ++----- java/org/apache/catalina/users/MemoryUser.java | 40 ++++++++----------------- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/java/org/apache/catalina/users/MemoryGroup.java b/java/org/apache/catalina/users/MemoryGroup.java index d348693..aad4180 100644 --- a/java/org/apache/catalina/users/MemoryGroup.java +++ b/java/org/apache/catalina/users/MemoryGroup.java @@ -171,13 +171,9 @@ public class MemoryGroup extends AbstractGroup { sb.append(description); sb.append("\""); } - synchronized (roles) { - if (roles.size() > 0) { - sb.append(" roles=\""); - StringUtils.join(roles, ',', Role::getRolename, sb); - sb.append("\""); - } - } + sb.append(" roles=\""); + StringUtils.join(roles, ',', Role::getRolename, sb); + sb.append("\""); sb.append("/>"); return sb.toString(); } diff --git a/java/org/apache/catalina/users/MemoryUser.java b/java/org/apache/catalina/users/MemoryUser.java index 3609764..007dd56 100644 --- a/java/org/apache/catalina/users/MemoryUser.java +++ b/java/org/apache/catalina/users/MemoryUser.java @@ -221,20 +221,12 @@ public class MemoryUser extends AbstractUser { sb.append(Escape.xml(fullName)); sb.append("\""); } - synchronized (groups) { - if (groups.size() > 0) { - sb.append(" groups=\""); - StringUtils.join(groups, ',', (x) -> Escape.xml(x.getGroupname()), sb); - sb.append("\""); - } - } - synchronized (roles) { - if (roles.size() > 0) { - sb.append(" roles=\""); - StringUtils.join(roles, ',', (x) -> Escape.xml(x.getRolename()), sb); - sb.append("\""); - } - } + sb.append(" groups=\""); + StringUtils.join(groups, ',', (x) -> Escape.xml(x.getGroupname()), sb); + sb.append("\""); + sb.append(" roles=\""); + StringUtils.join(roles, ',', (x) -> Escape.xml(x.getRolename()), sb); + sb.append("\""); sb.append("/>"); return sb.toString(); } @@ -254,20 +246,12 @@ public class MemoryUser extends AbstractUser { sb.append(Escape.xml(fullName)); sb.append("\""); } - synchronized (groups) { - if (groups.size() > 0) { - sb.append(", groups=\""); - StringUtils.join(groups, ',', (x) -> Escape.xml(x.getGroupname()), sb); - sb.append("\""); - } - } - synchronized (roles) { - if (roles.size() > 0) { - sb.append(", roles=\""); - StringUtils.join(roles, ',', (x) -> Escape.xml(x.getRolename()), sb); - sb.append("\""); - } - } + sb.append(", groups=\""); + StringUtils.join(groups, ',', (x) -> Escape.xml(x.getGroupname()), sb); + sb.append("\""); + sb.append(", roles=\""); + StringUtils.join(roles, ',', (x) -> Escape.xml(x.getRolename()), sb); + sb.append("\""); return sb.toString(); } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org