This is an automated email from the ASF dual-hosted git repository. lihan pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push: new e1aa7083ee Refactor. Simplify 'Map' operations. No functional change. e1aa7083ee is described below commit e1aa7083ee1639d852d6deefdd74e1a317b4fbb0 Author: lihan <li...@apache.org> AuthorDate: Tue Nov 1 11:42:47 2022 +0800 Refactor. Simplify 'Map' operations. No functional change. --- java/org/apache/catalina/authenticator/SavedRequest.java | 7 +------ .../apache/catalina/session/PersistentManagerBase.java | 6 +----- java/org/apache/catalina/startup/ContextConfig.java | 14 ++------------ java/org/apache/catalina/startup/Tomcat.java | 7 +------ java/org/apache/coyote/http2/HpackEncoder.java | 6 +----- java/org/apache/jasper/compiler/Generator.java | 7 ++----- java/org/apache/jasper/compiler/PageInfo.java | 9 ++------- java/org/apache/naming/factory/ResourceLinkFactory.java | 11 +++-------- java/org/apache/tomcat/util/buf/StringCache.java | 15 ++------------- java/org/apache/tomcat/util/digester/RulesBase.java | 7 +------ java/org/apache/tomcat/util/modeler/Registry.java | 12 ++---------- .../org/apache/tomcat/websocket/WsWebSocketContainer.java | 13 ++----------- java/org/apache/tomcat/websocket/server/UpgradeUtil.java | 11 ++--------- test/org/apache/catalina/startup/TesterMapRealm.java | 7 +------ test/org/apache/tomcat/unittest/TesterRequest.java | 7 +------ 15 files changed, 24 insertions(+), 115 deletions(-) diff --git a/java/org/apache/catalina/authenticator/SavedRequest.java b/java/org/apache/catalina/authenticator/SavedRequest.java index faaf8ec9a6..38d1db2716 100644 --- a/java/org/apache/catalina/authenticator/SavedRequest.java +++ b/java/org/apache/catalina/authenticator/SavedRequest.java @@ -67,12 +67,7 @@ public final class SavedRequest implements Serializable { private final Map<String, List<String>> headers = new HashMap<>(); public void addHeader(String name, String value) { - List<String> values = headers.get(name); - if (values == null) { - values = new ArrayList<>(); - headers.put(name, values); - } - values.add(value); + headers.computeIfAbsent(name, k -> new ArrayList<>()).add(value); } public Iterator<String> getHeaderNames() { diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java b/java/org/apache/catalina/session/PersistentManagerBase.java index a7698ee2fa..2c5b01deb9 100644 --- a/java/org/apache/catalina/session/PersistentManagerBase.java +++ b/java/org/apache/catalina/session/PersistentManagerBase.java @@ -706,11 +706,7 @@ public abstract class PersistentManagerBase extends ManagerBase * carry on. */ synchronized (this) { - swapInLock = sessionSwapInLocks.get(id); - if (swapInLock == null) { - swapInLock = new Object(); - sessionSwapInLocks.put(id, swapInLock); - } + swapInLock = sessionSwapInLocks.computeIfAbsent(id, k -> new Object()); } Session session = null; diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java index dc3bf7822b..b06c7e4294 100644 --- a/java/org/apache/catalina/startup/ContextConfig.java +++ b/java/org/apache/catalina/startup/ContextConfig.java @@ -1869,13 +1869,7 @@ public class ContextConfig implements LifecycleListener { } else { handlesTypesNonAnnotations = true; } - Set<ServletContainerInitializer> scis = - typeInitializerMap.get(type); - if (scis == null) { - scis = new HashSet<>(); - typeInitializerMap.put(type, scis); - } - scis.add(sci); + typeInitializerMap.computeIfAbsent(type, k -> new HashSet<>()).add(sci); } } } @@ -2407,11 +2401,7 @@ public class ContextConfig implements LifecycleListener { } for (ServletContainerInitializer sci : entry.getSciSet()) { - Set<Class<?>> classes = initializerClassMap.get(sci); - if (classes == null) { - classes = new HashSet<>(); - initializerClassMap.put(sci, classes); - } + Set<Class<?>> classes = initializerClassMap.computeIfAbsent(sci, k -> new HashSet<>()); classes.add(clazz); } } diff --git a/java/org/apache/catalina/startup/Tomcat.java b/java/org/apache/catalina/startup/Tomcat.java index ac18e65aa6..39142b6b06 100644 --- a/java/org/apache/catalina/startup/Tomcat.java +++ b/java/org/apache/catalina/startup/Tomcat.java @@ -525,12 +525,7 @@ public class Tomcat { * @param role The role name */ public void addRole(String user, String role) { - List<String> roles = userRoles.get(user); - if (roles == null) { - roles = new ArrayList<>(); - userRoles.put(user, roles); - } - roles.add(role); + userRoles.computeIfAbsent(user, k -> new ArrayList<>()).add(role); } // ------- Extra customization ------- diff --git a/java/org/apache/coyote/http2/HpackEncoder.java b/java/org/apache/coyote/http2/HpackEncoder.java index ae81033e84..1de32c632d 100644 --- a/java/org/apache/coyote/http2/HpackEncoder.java +++ b/java/org/apache/coyote/http2/HpackEncoder.java @@ -245,11 +245,7 @@ class HpackEncoder { private void addToDynamicTable(String headerName, String val) { int pos = entryPositionCounter++; DynamicTableEntry d = new DynamicTableEntry(headerName, val, -pos); - List<TableEntry> existing = dynamicTable.get(headerName); - if (existing == null) { - dynamicTable.put(headerName, existing = new ArrayList<>(1)); - } - existing.add(d); + dynamicTable.computeIfAbsent(headerName, k -> new ArrayList<>(1)).add(d); evictionQueue.add(d); currentTableSize += d.getSize(); runEvictionIfRequired(); diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java index 41c8feb67a..8f77afe2b1 100644 --- a/java/org/apache/jasper/compiler/Generator.java +++ b/java/org/apache/jasper/compiler/Generator.java @@ -2133,11 +2133,8 @@ class Generator { private TagHandlerInfo getTagHandlerInfo(Node.CustomTag n) throws JasperException { - Map<String,TagHandlerInfo> handlerInfosByShortName = handlerInfos.get(n.getPrefix()); - if (handlerInfosByShortName == null) { - handlerInfosByShortName = new HashMap<>(); - handlerInfos.put(n.getPrefix(), handlerInfosByShortName); - } + Map<String, TagHandlerInfo> handlerInfosByShortName = handlerInfos. + computeIfAbsent(n.getPrefix(), k -> new HashMap<>()); TagHandlerInfo handlerInfo = handlerInfosByShortName.get(n.getLocalName()); if (handlerInfo == null) { diff --git a/java/org/apache/jasper/compiler/PageInfo.java b/java/org/apache/jasper/compiler/PageInfo.java index b0c5832ae1..9afa6593e7 100644 --- a/java/org/apache/jasper/compiler/PageInfo.java +++ b/java/org/apache/jasper/compiler/PageInfo.java @@ -338,13 +338,8 @@ class PageInfo { * @param uri The URI to be pushed onto the stack */ public void pushPrefixMapping(String prefix, String uri) { - Deque<String> stack = xmlPrefixMapper.get(prefix); - if (stack == null) { - // Must be LinkedList as it needs to accept nulls - stack = new LinkedList<>(); - xmlPrefixMapper.put(prefix, stack); - } - stack.addFirst(uri); + // Must be LinkedList as it needs to accept nulls + xmlPrefixMapper.computeIfAbsent(prefix, k -> new LinkedList<>()).addFirst(uri); } /* diff --git a/java/org/apache/naming/factory/ResourceLinkFactory.java b/java/org/apache/naming/factory/ResourceLinkFactory.java index 765a02c7f1..17ca733b7e 100644 --- a/java/org/apache/naming/factory/ResourceLinkFactory.java +++ b/java/org/apache/naming/factory/ResourceLinkFactory.java @@ -71,14 +71,9 @@ public class ResourceLinkFactory implements ObjectFactory { String globalName) { validateGlobalContext(globalContext); ClassLoader cl = Thread.currentThread().getContextClassLoader(); - Map<String,String> registrations = globalResourceRegistrations.get(cl); - if (registrations == null) { - // Web application initialization is single threaded so this is - // safe. - registrations = new HashMap<>(); - globalResourceRegistrations.put(cl, registrations); - } - registrations.put(localName, globalName); + // Web application initialization is single threaded so this is + // safe. + globalResourceRegistrations.computeIfAbsent(cl, k -> new HashMap<>()).put(localName, globalName); } diff --git a/java/org/apache/tomcat/util/buf/StringCache.java b/java/org/apache/tomcat/util/buf/StringCache.java index 84acd19005..37a3c28336 100644 --- a/java/org/apache/tomcat/util/buf/StringCache.java +++ b/java/org/apache/tomcat/util/buf/StringCache.java @@ -241,13 +241,7 @@ public class StringCache { int[] countA = item.getValue(); Integer count = Integer.valueOf(countA[0]); // Add to the list for that count - ArrayList<ByteEntry> list = tempMap.get(count); - if (list == null) { - // Create list - list = new ArrayList<>(); - tempMap.put(count, list); - } - list.add(entry); + tempMap.computeIfAbsent(count, k -> new ArrayList<>()).add(entry); } // Allocate array of the right size int size = bcStats.size(); @@ -358,12 +352,7 @@ public class StringCache { int[] countA = item.getValue(); Integer count = Integer.valueOf(countA[0]); // Add to the list for that count - ArrayList<CharEntry> list = tempMap.get(count); - if (list == null) { - // Create list - list = new ArrayList<>(); - tempMap.put(count, list); - } + ArrayList<CharEntry> list = tempMap.computeIfAbsent(count, k -> new ArrayList<>()); list.add(entry); } // Allocate array of the right size diff --git a/java/org/apache/tomcat/util/digester/RulesBase.java b/java/org/apache/tomcat/util/digester/RulesBase.java index 9a182fd500..2531509953 100644 --- a/java/org/apache/tomcat/util/digester/RulesBase.java +++ b/java/org/apache/tomcat/util/digester/RulesBase.java @@ -103,12 +103,7 @@ public class RulesBase implements Rules { pattern = pattern.substring(0, patternLength-1); } - List<Rule> list = cache.get(pattern); - if (list == null) { - list = new ArrayList<>(); - cache.put(pattern, list); - } - list.add(rule); + cache.computeIfAbsent(pattern, k -> new ArrayList<>()).add(rule); rules.add(rule); if (this.digester != null) { rule.setDigester(this.digester); diff --git a/java/org/apache/tomcat/util/modeler/Registry.java b/java/org/apache/tomcat/util/modeler/Registry.java index 84cf831420..130d6f5bdd 100644 --- a/java/org/apache/tomcat/util/modeler/Registry.java +++ b/java/org/apache/tomcat/util/modeler/Registry.java @@ -277,11 +277,7 @@ public class Registry implements RegistryMBean, MBeanRegistration { if (domain == null) { domain = ""; } - Hashtable<String, Integer> domainTable = idDomains.get(domain); - if (domainTable == null) { - domainTable = new Hashtable<>(); - idDomains.put(domain, domainTable); - } + Hashtable<String, Integer> domainTable = idDomains.computeIfAbsent(domain, k -> new Hashtable<>()); if (name == null) { name = ""; } @@ -291,11 +287,7 @@ public class Registry implements RegistryMBean, MBeanRegistration { return i.intValue(); } - int id[] = ids.get(domain); - if (id == null) { - id = new int[1]; - ids.put(domain, id); - } + int[] id = ids.computeIfAbsent(domain, k -> new int[1]); int code = id[0]++; domainTable.put(name, Integer.valueOf(code)); return code; diff --git a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java index 05bf453eaa..0225c5d8e4 100644 --- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java +++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java @@ -612,12 +612,7 @@ public class WsWebSocketContainer implements WebSocketContainer, BackgroundProce if (endpointSessionMap.size() == 0) { BackgroundProcessManager.getInstance().register(this); } - Set<WsSession> wsSessions = endpointSessionMap.get(key); - if (wsSessions == null) { - wsSessions = new HashSet<>(); - endpointSessionMap.put(key, wsSessions); - } - wsSessions.add(wsSession); + endpointSessionMap.computeIfAbsent(key, k -> new HashSet<>()).add(wsSession); } sessions.put(wsSession, wsSession); } @@ -898,11 +893,7 @@ public class WsWebSocketContainer implements WebSocketContainer, BackgroundProce // expected to handle splitting into individual values String headerValue = line.substring(index + 1).trim(); - List<String> values = headers.get(headerName); - if (values == null) { - values = new ArrayList<>(1); - headers.put(headerName, values); - } + List<String> values = headers.computeIfAbsent(headerName, k -> new ArrayList<>(1)); values.add(headerValue); } diff --git a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java index de6c3527d6..b0e6b49328 100644 --- a/java/org/apache/tomcat/websocket/server/UpgradeUtil.java +++ b/java/org/apache/tomcat/websocket/server/UpgradeUtil.java @@ -256,15 +256,8 @@ public class UpgradeUtil { List<Transformation> result = new ArrayList<>(negotiatedExtensions.size()); for (Extension extension : negotiatedExtensions) { - List<List<Extension.Parameter>> preferences = - extensionPreferences.get(extension.getName()); - - if (preferences == null) { - preferences = new ArrayList<>(); - extensionPreferences.put(extension.getName(), preferences); - } - - preferences.add(extension.getParameters()); + extensionPreferences.computeIfAbsent(extension.getName(), k -> new ArrayList<>()) + .add(extension.getParameters()); } for (Map.Entry<String,List<List<Extension.Parameter>>> entry : diff --git a/test/org/apache/catalina/startup/TesterMapRealm.java b/test/org/apache/catalina/startup/TesterMapRealm.java index 3f5abc957b..c1ee7f3f5b 100644 --- a/test/org/apache/catalina/startup/TesterMapRealm.java +++ b/test/org/apache/catalina/startup/TesterMapRealm.java @@ -38,12 +38,7 @@ public final class TesterMapRealm extends RealmBase { } public void addUserRole(String username, String role) { - List<String> userRoles = roles.get(username); - if (userRoles == null) { - userRoles = new ArrayList<>(); - roles.put(username, userRoles); - } - userRoles.add(role); + roles.computeIfAbsent(username, k -> new ArrayList<>()).add(role); } @Override diff --git a/test/org/apache/tomcat/unittest/TesterRequest.java b/test/org/apache/tomcat/unittest/TesterRequest.java index f73c68d0af..cdecdffe20 100644 --- a/test/org/apache/tomcat/unittest/TesterRequest.java +++ b/test/org/apache/tomcat/unittest/TesterRequest.java @@ -111,12 +111,7 @@ public class TesterRequest extends Request { private final Map<String,List<String>> headers = new HashMap<>(); public void addHeader(String name, String value) { - List<String> values = headers.get(name); - if (values == null) { - values = new ArrayList<>(); - headers.put(name, values); - } - values.add(value); + headers.computeIfAbsent(name, k -> new ArrayList<>()).add(value); } @Override public String getHeader(String name) { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org