From 7392fd635941e8f72b738b86a62df27bd86bc392 Mon Sep 17 00:00:00 2001 From: markt Date: Tue, 2 Feb 2010 17:21:23 +0000 Subject: [PATCH] Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48551 Use entrySet() rather than keySet() + get() Patch provided by sebb git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@905714 13f79535-47bb-0310-9956-ffa450edef68 --- java/org/apache/catalina/deploy/WebXml.java | 38 +++++++++++++----------- java/org/apache/tomcat/util/buf/StringCache.java | 17 +++++------ 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/java/org/apache/catalina/deploy/WebXml.java b/java/org/apache/catalina/deploy/WebXml.java index 121b134b0..90f5264a7 100644 --- a/java/org/apache/catalina/deploy/WebXml.java +++ b/java/org/apache/catalina/deploy/WebXml.java @@ -29,6 +29,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Map.Entry; import javax.servlet.MultipartConfigElement; import javax.servlet.SessionCookieConfig; @@ -1054,8 +1055,8 @@ public class WebXml { context.setPublicId(publicId); // Everything else in order - for (String contextParam : contextParams.keySet()) { - context.addParameter(contextParam, contextParams.get(contextParam)); + for (Entry entry : contextParams.entrySet()) { + context.addParameter(entry.getKey(), entry.getValue()); } context.setDisplayName(displayName); context.setDistributable(distributable); @@ -1081,9 +1082,9 @@ public class WebXml { for (String listener : listeners) { context.addApplicationListener(listener); } - for (String locale : localeEncodingMappings.keySet()) { - context.addLocaleEncodingMappingParameter(locale, - localeEncodingMappings.get(locale)); + for (Entry entry : localeEncodingMappings.entrySet()) { + context.addLocaleEncodingMappingParameter(entry.getKey(), + entry.getValue()); } // Prevents IAE if (loginConfig != null) { @@ -1096,8 +1097,8 @@ public class WebXml { // messageDestinations were ignored in Tomcat 6, so ignore here context.setIgnoreAnnotations(metadataComplete); - for (String extension : mimeMappings.keySet()) { - context.addMimeMapping(extension, mimeMappings.get(extension)); + for (Entry entry : mimeMappings.entrySet()) { + context.addMimeMapping(entry.getKey(), entry.getValue()); } // Name is just used for ordering for (ContextResourceEnvRef resource : resourceEnvRefs.values()) { @@ -1134,8 +1135,8 @@ public class WebXml { } wrapper.setName(servlet.getServletName()); Map params = servlet.getParameterMap(); - for (String param : params.keySet()) { - wrapper.addInitParameter(param, params.get(param)); + for (Entry entry : params.entrySet()) { + wrapper.addInitParameter(entry.getKey(), entry.getValue()); } wrapper.setRunAs(servlet.getRunAs()); Set roleRefs = servlet.getSecurityRoleRefs(); @@ -1166,8 +1167,8 @@ public class WebXml { } context.addChild(wrapper); } - for (String pattern : servletMappings.keySet()) { - context.addServletMapping(pattern, servletMappings.get(pattern)); + for (Entry entry : servletMappings.entrySet()) { + context.addServletMapping(entry.getKey(), entry.getValue()); } if (sessionConfig != null) { if (sessionConfig.getSessionTimeout() != null) { @@ -1194,8 +1195,8 @@ public class WebXml { sessionConfig.getSessionTrackingModes()); } } - for (String uri : taglibs.keySet()) { - context.addTaglib(uri, taglibs.get(uri)); + for (Entry entry : taglibs.entrySet()) { + context.addTaglib(entry.getKey(), entry.getValue()); } // Context doesn't use version directly @@ -1735,10 +1736,11 @@ public class WebXml { private static boolean mergeMap(Map fragmentMap, Map mainMap, Map tempMap, WebXml fragment, String mapName) { - for (String key : fragmentMap.keySet()) { + for (Entry entry : fragmentMap.entrySet()) { + final String key = entry.getKey(); if (!mainMap.containsKey(key)) { // Not defined in main web.xml - T value = fragmentMap.get(key); + T value = entry.getValue(); if (tempMap.containsKey(key)) { if (value != null && !value.equals( tempMap.get(key))) { @@ -1942,9 +1944,9 @@ public class WebXml { for (String requestedName : requestedOrder) { if (WebXml.ORDER_OTHERS.equals(requestedName)) { // Add all fragments not named explicitly at this point - for (String name : fragments.keySet()) { - if (!requestedOrder.contains(name)) { - WebXml fragment = fragments.get(name); + for (Entry entry : fragments.entrySet()) { + if (!requestedOrder.contains(entry.getKey())) { + WebXml fragment = entry.getValue(); if (fragment != null) { orderedFragments.add(fragment); } diff --git a/java/org/apache/tomcat/util/buf/StringCache.java b/java/org/apache/tomcat/util/buf/StringCache.java index e6d650e86..7ed6d9616 100644 --- a/java/org/apache/tomcat/util/buf/StringCache.java +++ b/java/org/apache/tomcat/util/buf/StringCache.java @@ -19,8 +19,8 @@ package org.apache.tomcat.util.buf; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.TreeMap; +import java.util.Map.Entry; /** * This class implements a String cache for ByteChunk and CharChunk. @@ -233,11 +233,9 @@ public class StringCache { // Sort the entries according to occurrence TreeMap> tempMap = new TreeMap>(); - Iterator entries = - bcStats.keySet().iterator(); - while (entries.hasNext()) { - ByteEntry entry = entries.next(); - int[] countA = bcStats.get(entry); + for (Entry item : bcStats.entrySet()) { + ByteEntry entry = item.getKey(); + int[] countA = item.getValue(); Integer count = new Integer(countA[0]); // Add to the list for that count ArrayList list = tempMap.get(count); @@ -347,10 +345,9 @@ public class StringCache { // Sort the entries according to occurrence TreeMap> tempMap = new TreeMap>(); - Iterator entries = ccStats.keySet().iterator(); - while (entries.hasNext()) { - CharEntry entry = entries.next(); - int[] countA = ccStats.get(entry); + for (Entry item : ccStats.entrySet()) { + CharEntry entry = item.getKey(); + int[] countA = item.getValue(); Integer count = new Integer(countA[0]); // Add to the list for that count ArrayList list = tempMap.get(count); -- 2.11.0