You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/05/04 08:19:55 UTC

[tomcat] branch 8.5.x updated (db47aa4 -> 041ae23)

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

markt pushed a change to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git.


    from db47aa4  Skip untranslated values on import
     new 26c4c04  Replace indexed for loops and iterator while with foreach
     new 041ae23  Additional clean-up after enhanced for loop changes

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 java/javax/el/BeanELResolver.java                  |   6 +-
 java/javax/el/Util.java                            |  12 +-
 java/javax/servlet/ServletSecurityElement.java     |  12 +-
 .../servlet/jsp/el/ImplicitObjectELResolver.java   |  26 ++-
 .../javax/servlet/jsp/tagext/SimpleTagSupport.java |   3 +-
 .../javax/servlet/jsp/tagext/TagAttributeInfo.java |  10 +-
 java/javax/servlet/jsp/tagext/TagData.java         |   4 +-
 java/javax/servlet/jsp/tagext/TagLibraryInfo.java  |  18 +-
 .../catalina/ant/jmx/JMXAccessorQueryTask.java     |   6 +-
 .../catalina/authenticator/AuthenticatorBase.java  |   6 +-
 .../catalina/authenticator/BasicAuthenticator.java |   6 +-
 .../catalina/authenticator/FormAuthenticator.java  |   4 +-
 .../catalina/authenticator/SingleSignOn.java       |   6 +-
 .../apache/catalina/connector/CoyoteAdapter.java   |   8 +-
 java/org/apache/catalina/connector/Request.java    |  14 +-
 .../catalina/core/ApplicationFilterFactory.java    |  24 +--
 .../catalina/core/ApplicationHttpRequest.java      |   4 +-
 .../apache/catalina/core/ApplicationRequest.java   |   4 +-
 java/org/apache/catalina/core/ContainerBase.java   |  14 +-
 java/org/apache/catalina/core/StandardContext.java | 137 +++++++-------
 java/org/apache/catalina/core/StandardHost.java    |   4 +-
 java/org/apache/catalina/core/StandardServer.java  |  22 +--
 .../catalina/filters/CsrfPreventionFilterBase.java |   6 +-
 .../apache/catalina/filters/RemoteIpFilter.java    |   4 +-
 .../catalina/filters/RequestDumperFilter.java      |   6 +-
 .../catalina/ha/context/ReplicatedContext.java     |  20 +-
 .../apache/catalina/ha/deploy/FarmWarDeployer.java |  10 +-
 java/org/apache/catalina/ha/deploy/WarWatcher.java |   8 +-
 .../apache/catalina/ha/session/DeltaManager.java   |  14 +-
 .../apache/catalina/ha/session/DeltaRequest.java   |  45 +++--
 .../apache/catalina/ha/session/DeltaSession.java   |  10 +-
 .../apache/catalina/ha/tcp/ReplicationValve.java   |   8 +-
 .../catalina/loader/WebappClassLoaderBase.java     |  17 +-
 java/org/apache/catalina/loader/WebappLoader.java  |  32 ++--
 .../catalina/manager/HTMLManagerServlet.java       |   5 +-
 .../apache/catalina/manager/ManagerServlet.java    |  18 +-
 .../manager/host/HTMLHostManagerServlet.java       |  33 ++--
 .../catalina/manager/host/HostManagerServlet.java  |   4 +-
 .../apache/catalina/manager/util/SessionUtils.java |  16 +-
 java/org/apache/catalina/mapper/Mapper.java        |   4 +-
 .../org/apache/catalina/mbeans/ContainerMBean.java |   8 +-
 java/org/apache/catalina/mbeans/MBeanFactory.java  |  27 +--
 java/org/apache/catalina/mbeans/MBeanUtils.java    |   6 +-
 .../catalina/mbeans/NamingResourcesMBean.java      |  25 +--
 .../apache/catalina/realm/GenericPrincipal.java    |   4 +-
 .../apache/catalina/realm/JAASCallbackHandler.java |  46 +++--
 .../catalina/realm/JAASMemoryLoginModule.java      |   4 +-
 java/org/apache/catalina/realm/JAASRealm.java      |  12 +-
 java/org/apache/catalina/realm/JNDIRealm.java      |   6 +-
 java/org/apache/catalina/realm/RealmBase.java      | 107 ++++++-----
 java/org/apache/catalina/session/FileStore.java    |   4 +-
 java/org/apache/catalina/session/ManagerBase.java  |   4 +-
 .../catalina/session/PersistentManagerBase.java    |  36 ++--
 .../apache/catalina/session/StandardManager.java   |   3 +-
 .../apache/catalina/session/StandardSession.java   |  93 ++++------
 java/org/apache/catalina/session/StoreBase.java    |  16 +-
 .../catalina/ssi/SSIServletExternalResolver.java   |   3 +-
 java/org/apache/catalina/startup/Catalina.java     |  16 +-
 .../catalina/startup/ClassLoaderFactory.java       |  40 ++--
 .../org/apache/catalina/startup/ContextConfig.java |  29 ++-
 java/org/apache/catalina/startup/ExpandWar.java    |   4 +-
 .../apache/catalina/startup/HomesUserDatabase.java |   6 +-
 java/org/apache/catalina/startup/HostConfig.java   |  70 +++----
 .../catalina/startup/SetAllPropertiesRule.java     |   2 +-
 .../catalina/storeconfig/StandardContextSF.java    |  15 +-
 .../catalina/storeconfig/StandardEngineSF.java     |   6 +-
 .../catalina/storeconfig/StandardHostSF.java       |   6 +-
 .../apache/catalina/storeconfig/StoreAppender.java |  14 +-
 .../catalina/storeconfig/StoreFactoryBase.java     |   4 +-
 .../apache/catalina/tribes/ChannelException.java   |   3 +-
 .../apache/catalina/tribes/group/GroupChannel.java |  11 +-
 .../interceptors/FragmentationInterceptor.java     |  18 +-
 .../group/interceptors/NonBlockingCoordinator.java |  12 +-
 .../group/interceptors/OrderInterceptor.java       |  10 +-
 .../group/interceptors/TcpFailureDetector.java     |  20 +-
 .../interceptors/TwoPhaseCommitInterceptor.java    |  11 +-
 .../catalina/tribes/io/ReplicationStream.java      |   6 +-
 .../tribes/membership/McastServiceImpl.java        |  15 +-
 .../catalina/tribes/membership/Membership.java     |  10 +-
 .../tribes/tipis/AbstractReplicatedMap.java        |  42 ++---
 .../catalina/tribes/transport/PooledSender.java    |  12 +-
 .../tribes/transport/nio/NioReplicationTask.java   |  38 ++--
 .../tribes/transport/nio/ParallelNioSender.java    |  42 ++---
 .../tribes/transport/nio/PooledParallelSender.java |   4 +-
 java/org/apache/catalina/tribes/util/Arrays.java   |  17 +-
 java/org/apache/catalina/util/DOMWriter.java       |   3 +-
 .../apache/catalina/util/ExtensionValidator.java   |  13 +-
 java/org/apache/catalina/util/URLEncoder.java      |   3 +-
 .../catalina/valves/AbstractAccessLogValve.java    |  14 +-
 java/org/apache/catalina/valves/RemoteIpValve.java |   4 +-
 .../catalina/valves/rewrite/RewriteRule.java       |   8 +-
 .../catalina/valves/rewrite/RewriteValve.java      |  18 +-
 .../catalina/valves/rewrite/Substitution.java      |   4 +-
 java/org/apache/coyote/CompressionConfig.java      |   4 +-
 java/org/apache/coyote/ajp/AjpProcessor.java       |   6 +-
 .../apache/el/parser/AstCompositeExpression.java   |   4 +-
 .../org/apache/el/parser/ELParserTokenManager.java |  16 +-
 java/org/apache/el/parser/SimpleCharStream.java    |   8 +-
 java/org/apache/el/parser/SimpleNode.java          |   4 +-
 java/org/apache/el/util/ReflectionUtil.java        |  12 +-
 java/org/apache/jasper/JspC.java                   |  19 +-
 java/org/apache/jasper/compiler/Collector.java     |   4 +-
 .../jasper/compiler/DefaultErrorHandler.java       |  22 +--
 .../apache/jasper/compiler/ELFunctionMapper.java   |   3 +-
 java/org/apache/jasper/compiler/Generator.java     | 203 ++++++++++-----------
 java/org/apache/jasper/compiler/JDTCompiler.java   |  17 +-
 .../apache/jasper/compiler/JspRuntimeContext.java  |  22 +--
 java/org/apache/jasper/compiler/JspUtil.java       |  27 ++-
 java/org/apache/jasper/compiler/Node.java          |   6 +-
 java/org/apache/jasper/compiler/Parser.java        |   8 +-
 .../apache/jasper/compiler/ParserController.java   |   3 +-
 .../apache/jasper/compiler/ScriptingVariabler.java |  24 +--
 java/org/apache/jasper/compiler/SmapUtil.java      |  20 +-
 java/org/apache/jasper/compiler/Validator.java     |  42 ++---
 .../jasper/runtime/JspApplicationContextImpl.java  |   4 +-
 .../apache/jasper/runtime/JspContextWrapper.java   |   3 +-
 .../apache/jasper/runtime/JspRuntimeLibrary.java   |  43 ++---
 java/org/apache/jasper/runtime/JspWriterImpl.java  |   3 +-
 .../apache/jasper/servlet/JspCServletContext.java  |   8 +-
 .../jasper/tagplugins/jstl/core/ForEach.java       |   9 +-
 .../apache/jasper/tagplugins/jstl/core/When.java   |   3 +-
 java/org/apache/juli/ClassLoaderLogManager.java    |   8 +-
 .../org/apache/naming/factory/SendMailFactory.java |   3 +-
 java/org/apache/tomcat/buildutil/SignCode.java     |  12 +-
 java/org/apache/tomcat/buildutil/Txt2Html.java     |  26 ++-
 .../tomcat/dbcp/dbcp2/DelegatingConnection.java    |   5 +-
 .../datasources/InstanceKeyDataSourceFactory.java  |   9 +-
 java/org/apache/tomcat/dbcp/pool2/PoolUtils.java   |   5 +-
 .../dbcp/pool2/impl/GenericKeyedObjectPool.java    |  21 +--
 .../tomcat/dbcp/pool2/impl/GenericObjectPool.java  |   9 +-
 .../dbcp/pool2/impl/SoftReferenceObjectPool.java   |   9 +-
 java/org/apache/tomcat/util/Diagnostics.java       |   4 +-
 .../org/apache/tomcat/util/IntrospectionUtils.java |  70 +++----
 java/org/apache/tomcat/util/buf/ByteChunk.java     |   5 +-
 java/org/apache/tomcat/util/buf/HexUtils.java      |   8 +-
 java/org/apache/tomcat/util/buf/UriUtil.java       |   3 +-
 .../apache/tomcat/util/codec/binary/Base64.java    |   4 +-
 .../tomcat/util/descriptor/web/FilterMap.java      |   8 +-
 .../util/descriptor/web/SecurityCollection.java    |  12 +-
 .../util/descriptor/web/SecurityConstraint.java    |  20 +-
 .../tomcat/util/descriptor/web/WebRuleSet.java     |   7 +-
 java/org/apache/tomcat/util/digester/Digester.java |  14 +-
 java/org/apache/tomcat/util/file/Matcher.java      |   4 +-
 .../tomcat/util/http/Rfc6265CookieProcessor.java   |   3 +-
 .../org/apache/tomcat/util/http/parser/Cookie.java |   4 +-
 .../apache/tomcat/util/modeler/BaseModelMBean.java |  10 +-
 .../util/modeler/BaseNotificationBroadcaster.java  |   3 +-
 java/org/apache/tomcat/util/modeler/Registry.java  |  20 +-
 .../MbeansDescriptorsIntrospectionSource.java      |  56 +++---
 .../apache/tomcat/util/net/jsse/JSSESupport.java   |   8 +-
 .../tomcat/util/net/openssl/OpenSSLConf.java       |   8 +-
 .../tomcat/websocket/AuthenticatorFactory.java     |   5 +-
 .../tomcat/websocket/WsWebSocketContainer.java     |   4 +-
 .../apache/tomcat/jdbc/test/TestValidation.java    |   9 +-
 .../authenticator/TestFormAuthenticator.java       |  15 +-
 .../TestNonLoginAndBasicAuthenticator.java         |   9 +-
 .../TestSSOnonLoginAndBasicAuthenticator.java      |  18 +-
 .../TestSSOnonLoginAndDigestAuthenticator.java     |   6 +-
 .../catalina/connector/TestMaxConnections.java     |   8 +-
 .../catalina/connector/TestOutputBuffer.java       |   4 +-
 .../org/apache/catalina/connector/TestRequest.java |   7 +-
 .../apache/catalina/core/TestAsyncContextImpl.java |   3 +-
 .../apache/catalina/startup/SimpleHttpClient.java  |   6 +-
 .../catalina/tribes/demos/ChannelCreator.java      |  12 +-
 .../catalina/tribes/demos/CoordinationDemo.java    |   6 +-
 .../apache/catalina/tribes/demos/EchoRpcTest.java  |   4 +-
 .../catalina/tribes/demos/IntrospectionUtils.java  |  51 +++---
 .../org/apache/catalina/tribes/demos/LoadTest.java |   6 +-
 test/org/apache/catalina/tribes/demos/MapDemo.java |   4 +-
 .../group/TestGroupChannelMemberArrival.java       |  12 +-
 .../group/TestGroupChannelSenderConnections.java   |   8 +-
 .../interceptors/TestDomainFilterInterceptor.java  |   8 +-
 .../group/interceptors/TestOrderInterceptor.java   |  16 +-
 .../tribes/test/channel/TestDataIntegrity.java     |  58 +++---
 .../tribes/test/channel/TestMulticastPackages.java |   8 +-
 .../tribes/test/channel/TestUdpPackages.java       |  16 +-
 test/org/apache/catalina/valves/Benchmarks.java    |   4 +-
 .../apache/coyote/http11/TestHttp11Processor.java  |   4 +-
 .../apache/jasper/compiler/TesterValidator.java    |  22 +--
 .../org/apache/juli/TestClassLoaderLogManager.java |   4 +-
 .../tomcat/util/http/parser/TestMediaType.java     |   6 +-
 webapps/docs/changelog.xml                         |   4 +
 .../examples/WEB-INF/classes/CookieExample.java    |   7 +-
 .../WEB-INF/classes/async/AsyncStockServlet.java   |   9 +-
 .../CompressionFilterTestServlet.java              |   3 +-
 .../CompressionResponseStream.java                 |   4 +-
 .../examples/WEB-INF/classes/util/HTMLFilter.java  |  32 ++--
 .../WEB-INF/classes/websocket/drawboard/Room.java  |   4 +-
 webapps/examples/WEB-INF/jsp/applet/Clock2.java    |   3 +-
 webapps/examples/jsp/checkbox/checkresult.jsp      |  16 +-
 webapps/examples/jsp/plugin/applet/Clock2.java     |   3 +-
 webapps/examples/jsp/sessions/carts.jsp            |   4 +-
 192 files changed, 1404 insertions(+), 1517 deletions(-)


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 01/02: Replace indexed for loops and iterator while with foreach

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 26c4c04f25c1257ad1763262f77c7fbd5ed1f47b
Author: Lars Grefer <gi...@larsgrefer.de>
AuthorDate: Wed Apr 22 23:49:33 2020 +0200

    Replace indexed for loops and iterator while with foreach
---
 java/javax/el/BeanELResolver.java                  |   6 +-
 java/javax/el/Util.java                            |  10 +-
 java/javax/servlet/ServletSecurityElement.java     |  12 +-
 .../servlet/jsp/el/ImplicitObjectELResolver.java   |  16 +-
 .../javax/servlet/jsp/tagext/TagAttributeInfo.java |   6 +-
 java/javax/servlet/jsp/tagext/TagData.java         |   4 +-
 java/javax/servlet/jsp/tagext/TagLibraryInfo.java  |  18 +-
 .../catalina/ant/jmx/JMXAccessorQueryTask.java     |   6 +-
 .../catalina/authenticator/AuthenticatorBase.java  |   6 +-
 .../catalina/authenticator/BasicAuthenticator.java |   6 +-
 .../catalina/authenticator/FormAuthenticator.java  |   4 +-
 .../catalina/authenticator/SingleSignOn.java       |   6 +-
 .../apache/catalina/connector/CoyoteAdapter.java   |   8 +-
 java/org/apache/catalina/connector/Request.java    |  12 +-
 .../catalina/core/ApplicationFilterFactory.java    |  24 +--
 .../catalina/core/ApplicationHttpRequest.java      |   4 +-
 .../apache/catalina/core/ApplicationRequest.java   |   4 +-
 java/org/apache/catalina/core/ContainerBase.java   |  14 +-
 java/org/apache/catalina/core/StandardContext.java | 128 ++++++-------
 java/org/apache/catalina/core/StandardHost.java    |   4 +-
 java/org/apache/catalina/core/StandardServer.java  |  22 +--
 .../catalina/filters/CsrfPreventionFilterBase.java |   6 +-
 .../apache/catalina/filters/RemoteIpFilter.java    |   4 +-
 .../catalina/filters/RequestDumperFilter.java      |   6 +-
 .../catalina/ha/context/ReplicatedContext.java     |   8 +-
 .../apache/catalina/ha/deploy/FarmWarDeployer.java |  10 +-
 java/org/apache/catalina/ha/deploy/WarWatcher.java |   8 +-
 .../apache/catalina/ha/session/DeltaManager.java   |  14 +-
 .../apache/catalina/ha/session/DeltaRequest.java   |  45 +++--
 .../apache/catalina/ha/session/DeltaSession.java   |  10 +-
 .../apache/catalina/ha/tcp/ReplicationValve.java   |   8 +-
 .../catalina/loader/WebappClassLoaderBase.java     |  20 +-
 java/org/apache/catalina/loader/WebappLoader.java  |  32 ++--
 .../catalina/manager/HTMLManagerServlet.java       |   5 +-
 .../apache/catalina/manager/ManagerServlet.java    |  18 +-
 .../manager/host/HTMLHostManagerServlet.java       |   5 +-
 .../catalina/manager/host/HostManagerServlet.java  |   4 +-
 .../apache/catalina/manager/util/SessionUtils.java |  16 +-
 java/org/apache/catalina/mapper/Mapper.java        |   4 +-
 .../org/apache/catalina/mbeans/ContainerMBean.java |   8 +-
 java/org/apache/catalina/mbeans/MBeanFactory.java  |  27 +--
 java/org/apache/catalina/mbeans/MBeanUtils.java    |   6 +-
 .../catalina/mbeans/NamingResourcesMBean.java      |  25 +--
 .../apache/catalina/realm/GenericPrincipal.java    |   4 +-
 .../apache/catalina/realm/JAASCallbackHandler.java |  46 +++--
 .../catalina/realm/JAASMemoryLoginModule.java      |   4 +-
 java/org/apache/catalina/realm/JAASRealm.java      |  12 +-
 java/org/apache/catalina/realm/JNDIRealm.java      |   6 +-
 java/org/apache/catalina/realm/RealmBase.java      | 103 +++++-----
 java/org/apache/catalina/session/FileStore.java    |   4 +-
 java/org/apache/catalina/session/ManagerBase.java  |   4 +-
 .../catalina/session/PersistentManagerBase.java    |  36 ++--
 .../apache/catalina/session/StandardManager.java   |   3 +-
 .../apache/catalina/session/StandardSession.java   |  72 +++----
 java/org/apache/catalina/session/StoreBase.java    |  16 +-
 .../catalina/ssi/SSIServletExternalResolver.java   |   3 +-
 java/org/apache/catalina/startup/Catalina.java     |  22 ++-
 .../catalina/startup/ClassLoaderFactory.java       |  21 +--
 .../org/apache/catalina/startup/ContextConfig.java |  29 ++-
 java/org/apache/catalina/startup/ExpandWar.java    |   4 +-
 .../apache/catalina/startup/HomesUserDatabase.java |   6 +-
 java/org/apache/catalina/startup/HostConfig.java   |  70 +++----
 .../catalina/startup/SetAllPropertiesRule.java     |   2 +-
 .../catalina/storeconfig/StandardContextSF.java    |  15 +-
 .../catalina/storeconfig/StandardEngineSF.java     |   6 +-
 .../catalina/storeconfig/StandardHostSF.java       |   6 +-
 .../apache/catalina/storeconfig/StoreAppender.java |  14 +-
 .../catalina/storeconfig/StoreFactoryBase.java     |   4 +-
 .../apache/catalina/tribes/ChannelException.java   |   3 +-
 .../apache/catalina/tribes/group/GroupChannel.java |  11 +-
 .../interceptors/FragmentationInterceptor.java     |  16 +-
 .../group/interceptors/NonBlockingCoordinator.java |  12 +-
 .../group/interceptors/OrderInterceptor.java       |  10 +-
 .../group/interceptors/TcpFailureDetector.java     |  20 +-
 .../interceptors/TwoPhaseCommitInterceptor.java    |  11 +-
 .../catalina/tribes/io/ReplicationStream.java      |   6 +-
 .../tribes/membership/McastServiceImpl.java        |  15 +-
 .../catalina/tribes/membership/Membership.java     |  10 +-
 .../tribes/tipis/AbstractReplicatedMap.java        |  42 ++---
 .../catalina/tribes/transport/PooledSender.java    |  12 +-
 .../tribes/transport/nio/NioReplicationTask.java   |  47 +++--
 .../tribes/transport/nio/ParallelNioSender.java    |  42 ++---
 .../tribes/transport/nio/PooledParallelSender.java |   4 +-
 java/org/apache/catalina/tribes/util/Arrays.java   |  17 +-
 java/org/apache/catalina/util/DOMWriter.java       |   3 +-
 .../apache/catalina/util/ExtensionValidator.java   |  12 +-
 java/org/apache/catalina/util/URLEncoder.java      |   3 +-
 .../catalina/valves/AbstractAccessLogValve.java    |  10 +-
 java/org/apache/catalina/valves/RemoteIpValve.java |   4 +-
 .../catalina/valves/rewrite/RewriteRule.java       |   8 +-
 .../catalina/valves/rewrite/RewriteValve.java      |  18 +-
 .../catalina/valves/rewrite/Substitution.java      |   4 +-
 java/org/apache/coyote/CompressionConfig.java      |   4 +-
 java/org/apache/coyote/ajp/AjpProcessor.java       |   6 +-
 .../apache/el/parser/AstCompositeExpression.java   |   4 +-
 .../org/apache/el/parser/ELParserTokenManager.java |  16 +-
 java/org/apache/el/parser/SimpleCharStream.java    |   8 +-
 java/org/apache/el/parser/SimpleNode.java          |   4 +-
 java/org/apache/el/util/ReflectionUtil.java        |  10 +-
 java/org/apache/jasper/JspC.java                   |  12 +-
 java/org/apache/jasper/compiler/Collector.java     |   4 +-
 .../jasper/compiler/DefaultErrorHandler.java       |  22 +--
 .../apache/jasper/compiler/ELFunctionMapper.java   |   3 +-
 java/org/apache/jasper/compiler/Generator.java     | 209 ++++++++++-----------
 java/org/apache/jasper/compiler/JDTCompiler.java   |  17 +-
 .../apache/jasper/compiler/JspRuntimeContext.java  |  22 +--
 java/org/apache/jasper/compiler/JspUtil.java       |  27 ++-
 java/org/apache/jasper/compiler/Node.java          |   6 +-
 java/org/apache/jasper/compiler/Parser.java        |   8 +-
 .../apache/jasper/compiler/ParserController.java   |   3 +-
 .../apache/jasper/compiler/ScriptingVariabler.java |  24 +--
 java/org/apache/jasper/compiler/SmapUtil.java      |  20 +-
 java/org/apache/jasper/compiler/Validator.java     |  42 ++---
 .../jasper/runtime/JspApplicationContextImpl.java  |   4 +-
 .../apache/jasper/runtime/JspContextWrapper.java   |   3 +-
 .../apache/jasper/runtime/JspRuntimeLibrary.java   |  43 ++---
 java/org/apache/jasper/runtime/JspWriterImpl.java  |   3 +-
 .../apache/jasper/servlet/JspCServletContext.java  |  11 +-
 .../jasper/tagplugins/jstl/core/ForEach.java       |   9 +-
 .../apache/jasper/tagplugins/jstl/core/When.java   |   3 +-
 java/org/apache/juli/ClassLoaderLogManager.java    |   8 +-
 .../org/apache/naming/factory/SendMailFactory.java |   3 +-
 java/org/apache/tomcat/buildutil/SignCode.java     |  12 +-
 java/org/apache/tomcat/buildutil/Txt2Html.java     |  26 ++-
 .../tomcat/dbcp/dbcp2/DelegatingConnection.java    |   8 +-
 .../datasources/InstanceKeyDataSourceFactory.java  |   9 +-
 java/org/apache/tomcat/dbcp/pool2/PoolUtils.java   |   5 +-
 .../dbcp/pool2/impl/GenericKeyedObjectPool.java    |  21 +--
 .../tomcat/dbcp/pool2/impl/GenericObjectPool.java  |   9 +-
 .../dbcp/pool2/impl/SoftReferenceObjectPool.java   |   9 +-
 java/org/apache/tomcat/util/Diagnostics.java       |   4 +-
 .../org/apache/tomcat/util/IntrospectionUtils.java |  77 ++++----
 java/org/apache/tomcat/util/buf/ByteChunk.java     |   4 +-
 java/org/apache/tomcat/util/buf/HexUtils.java      |   8 +-
 java/org/apache/tomcat/util/buf/UriUtil.java       |   3 +-
 .../apache/tomcat/util/codec/binary/Base64.java    |   4 +-
 .../tomcat/util/descriptor/web/FilterMap.java      |   8 +-
 .../util/descriptor/web/SecurityCollection.java    |  12 +-
 .../util/descriptor/web/SecurityConstraint.java    |  20 +-
 .../tomcat/util/descriptor/web/WebRuleSet.java     |   7 +-
 java/org/apache/tomcat/util/digester/Digester.java |  14 +-
 java/org/apache/tomcat/util/file/Matcher.java      |   4 +-
 .../tomcat/util/http/Rfc6265CookieProcessor.java   |   3 +-
 .../org/apache/tomcat/util/http/parser/Cookie.java |   4 +-
 .../apache/tomcat/util/modeler/BaseModelMBean.java |   9 +-
 .../util/modeler/BaseNotificationBroadcaster.java  |   3 +-
 java/org/apache/tomcat/util/modeler/Registry.java  |  20 +-
 .../MbeansDescriptorsIntrospectionSource.java      |  60 +++---
 .../apache/tomcat/util/net/jsse/JSSESupport.java   |   8 +-
 .../tomcat/util/net/openssl/OpenSSLConf.java       |  14 +-
 .../tomcat/websocket/AuthenticatorFactory.java     |   4 +-
 .../tomcat/websocket/WsWebSocketContainer.java     |   4 +-
 .../apache/tomcat/jdbc/test/TestValidation.java    |   9 +-
 .../authenticator/TestFormAuthenticator.java       |  15 +-
 .../TestNonLoginAndBasicAuthenticator.java         |   9 +-
 .../TestSSOnonLoginAndBasicAuthenticator.java      |  18 +-
 .../TestSSOnonLoginAndDigestAuthenticator.java     |   6 +-
 .../catalina/connector/TestMaxConnections.java     |   8 +-
 .../catalina/connector/TestOutputBuffer.java       |   4 +-
 .../org/apache/catalina/connector/TestRequest.java |   7 +-
 .../apache/catalina/core/TestAsyncContextImpl.java |   3 +-
 .../apache/catalina/startup/SimpleHttpClient.java  |   6 +-
 .../catalina/tribes/demos/ChannelCreator.java      |  12 +-
 .../catalina/tribes/demos/CoordinationDemo.java    |   6 +-
 .../apache/catalina/tribes/demos/EchoRpcTest.java  |   4 +-
 .../catalina/tribes/demos/IntrospectionUtils.java  |  51 ++---
 .../org/apache/catalina/tribes/demos/LoadTest.java |   6 +-
 test/org/apache/catalina/tribes/demos/MapDemo.java |   4 +-
 .../group/TestGroupChannelMemberArrival.java       |  12 +-
 .../group/TestGroupChannelSenderConnections.java   |   8 +-
 .../interceptors/TestDomainFilterInterceptor.java  |   8 +-
 .../group/interceptors/TestOrderInterceptor.java   |  16 +-
 .../tribes/test/channel/TestDataIntegrity.java     |  16 +-
 .../tribes/test/channel/TestMulticastPackages.java |   8 +-
 .../tribes/test/channel/TestUdpPackages.java       |  16 +-
 test/org/apache/catalina/valves/Benchmarks.java    |   4 +-
 .../apache/coyote/http11/TestHttp11Processor.java  |   4 +-
 .../apache/jasper/compiler/TesterValidator.java    |  22 +--
 .../org/apache/juli/TestClassLoaderLogManager.java |   4 +-
 .../tomcat/util/http/parser/TestMediaType.java     |   6 +-
 webapps/docs/changelog.xml                         |   4 +
 .../examples/WEB-INF/classes/CookieExample.java    |   7 +-
 .../WEB-INF/classes/async/AsyncStockServlet.java   |   9 +-
 .../CompressionFilterTestServlet.java              |   3 +-
 .../CompressionResponseStream.java                 |   4 +-
 .../examples/WEB-INF/classes/util/HTMLFilter.java  |  32 ++--
 .../WEB-INF/classes/websocket/drawboard/Room.java  |   4 +-
 webapps/examples/WEB-INF/jsp/applet/Clock2.java    |   3 +-
 webapps/examples/jsp/checkbox/checkresult.jsp      |  16 +-
 webapps/examples/jsp/plugin/applet/Clock2.java     |   3 +-
 webapps/examples/jsp/sessions/carts.jsp            |   6 +-
 191 files changed, 1367 insertions(+), 1428 deletions(-)

diff --git a/java/javax/el/BeanELResolver.java b/java/javax/el/BeanELResolver.java
index 5e93032..3f4b454 100644
--- a/java/javax/el/BeanELResolver.java
+++ b/java/javax/el/BeanELResolver.java
@@ -188,9 +188,9 @@ public class BeanELResolver extends ELResolver {
         try {
             BeanInfo info = Introspector.getBeanInfo(base.getClass());
             PropertyDescriptor[] pds = info.getPropertyDescriptors();
-            for (int i = 0; i < pds.length; i++) {
-                pds[i].setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE);
-                pds[i].setValue(TYPE, pds[i].getPropertyType());
+            for (PropertyDescriptor pd : pds) {
+                pd.setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE);
+                pd.setValue(TYPE, pd.getPropertyType());
             }
             return Arrays.asList((FeatureDescriptor[]) pds).iterator();
         } catch (IntrospectionException e) {
diff --git a/java/javax/el/Util.java b/java/javax/el/Util.java
index 67f9ebe..cb1590c 100644
--- a/java/javax/el/Util.java
+++ b/java/javax/el/Util.java
@@ -382,11 +382,11 @@ class Util {
     private static final String paramString(Class<?>[] types) {
         if (types != null) {
             StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < types.length; i++) {
-                if (types[i] == null) {
+            for (Class<?> type : types) {
+                if (type == null) {
                     sb.append("null, ");
                 } else {
-                    sb.append(types[i].getName()).append(", ");
+                    sb.append(type.getName()).append(", ");
                 }
             }
             if (sb.length() > 2) {
@@ -552,9 +552,9 @@ class Util {
         }
         Class<?>[] inf = type.getInterfaces();
         Method mp = null;
-        for (int i = 0; i < inf.length; i++) {
+        for (Class<?> aClass : inf) {
             try {
-                mp = inf[i].getMethod(m.getName(), m.getParameterTypes());
+                mp = aClass.getMethod(m.getName(), m.getParameterTypes());
                 mp = getMethod(mp.getDeclaringClass(), base, mp);
                 if (mp != null) {
                     return mp;
diff --git a/java/javax/servlet/ServletSecurityElement.java b/java/javax/servlet/ServletSecurityElement.java
index 75542c2..875d103 100644
--- a/java/javax/servlet/ServletSecurityElement.java
+++ b/java/javax/servlet/ServletSecurityElement.java
@@ -93,13 +93,13 @@ public class ServletSecurityElement extends HttpConstraintElement {
         List<HttpMethodConstraintElement> l = new ArrayList<>();
         HttpMethodConstraint[] constraints = annotation.httpMethodConstraints();
         if (constraints != null) {
-            for (int i = 0; i < constraints.length; i++) {
+            for (HttpMethodConstraint constraint : constraints) {
                 HttpMethodConstraintElement e =
-                    new HttpMethodConstraintElement(constraints[i].value(),
-                            new HttpConstraintElement(
-                                    constraints[i].emptyRoleSemantic(),
-                                    constraints[i].transportGuarantee(),
-                                    constraints[i].rolesAllowed()));
+                        new HttpMethodConstraintElement(constraint.value(),
+                                new HttpConstraintElement(
+                                        constraint.emptyRoleSemantic(),
+                                        constraint.transportGuarantee(),
+                                        constraint.rolesAllowed()));
                 l.add(e);
             }
         }
diff --git a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
index 94a9dec..819ac98 100644
--- a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
+++ b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
@@ -162,12 +162,12 @@ public class ImplicitObjectELResolver extends ELResolver {
     public Iterator<FeatureDescriptor> getFeatureDescriptors(ELContext context, Object base) {
         List<FeatureDescriptor> feats = new ArrayList<>(SCOPE_NAMES.length);
         FeatureDescriptor feat;
-        for (int i = 0; i < SCOPE_NAMES.length; i++) {
+        for (String scopeName : SCOPE_NAMES) {
             feat = new FeatureDescriptor();
-            feat.setDisplayName(SCOPE_NAMES[i]);
+            feat.setDisplayName(scopeName);
             feat.setExpert(false);
             feat.setHidden(false);
-            feat.setName(SCOPE_NAMES[i]);
+            feat.setName(scopeName);
             feat.setPreferred(true);
             feat.setValue(RESOLVABLE_AT_DESIGN_TIME, Boolean.TRUE);
             feat.setValue(TYPE, String.class);
@@ -258,8 +258,8 @@ public class ImplicitObjectELResolver extends ELResolver {
                                 .getCookies();
                         if (c != null) {
                             Vector<String> v = new Vector<>();
-                            for (int i = 0; i < c.length; i++) {
-                                v.add(c[i].getName());
+                            for (Cookie value : c) {
+                                v.add(value.getName());
                             }
                             return v.elements();
                         }
@@ -271,9 +271,9 @@ public class ImplicitObjectELResolver extends ELResolver {
                         Cookie[] c = ((HttpServletRequest) page.getRequest())
                                 .getCookies();
                         if (c != null) {
-                            for (int i = 0; i < c.length; i++) {
-                                if (name.equals(c[i].getName())) {
-                                    return c[i];
+                            for (Cookie value : c) {
+                                if (name.equals(value.getName())) {
+                                    return value;
                                 }
                             }
                         }
diff --git a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java b/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
index d2ff2f0..46f4a76 100644
--- a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
+++ b/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
@@ -172,9 +172,9 @@ public class TagAttributeInfo {
      * @return The TagAttributeInfo reference with name "id"
      */
     public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) {
-        for (int i = 0; i < a.length; i++) {
-            if (a[i].getName().equals(ID)) {
-                return a[i];
+        for (TagAttributeInfo tagAttributeInfo : a) {
+            if (tagAttributeInfo.getName().equals(ID)) {
+                return tagAttributeInfo;
             }
         }
         return null; // no such attribute
diff --git a/java/javax/servlet/jsp/tagext/TagData.java b/java/javax/servlet/jsp/tagext/TagData.java
index 3df36f0..0b7d1a0 100644
--- a/java/javax/servlet/jsp/tagext/TagData.java
+++ b/java/javax/servlet/jsp/tagext/TagData.java
@@ -62,8 +62,8 @@ public class TagData implements Cloneable {
         }
 
         if (atts != null) {
-            for (int i = 0; i < atts.length; i++) {
-                attributes.put((String) atts[i][0], atts[i][1]);
+            for (Object[] att : atts) {
+                attributes.put((String) att[0], att[1]);
             }
         }
     }
diff --git a/java/javax/servlet/jsp/tagext/TagLibraryInfo.java b/java/javax/servlet/jsp/tagext/TagLibraryInfo.java
index 79eb9c2..c1a148a 100644
--- a/java/javax/servlet/jsp/tagext/TagLibraryInfo.java
+++ b/java/javax/servlet/jsp/tagext/TagLibraryInfo.java
@@ -141,9 +141,9 @@ public abstract class TagLibraryInfo {
             return null;
         }
 
-        for (int i = 0; i < tags.length; i++) {
-            if (shortname.equals(tags[i].getTagName())) {
-                return tags[i];
+        for (TagInfo tag : tags) {
+            if (shortname.equals(tag.getTagName())) {
+                return tag;
             }
         }
         return null;
@@ -166,9 +166,9 @@ public abstract class TagLibraryInfo {
             return null;
         }
 
-        for (int i = 0; i < tagFiles.length; i++) {
-            if (tagFiles[i].getName().equals(shortname)) {
-                return tagFiles[i];
+        for (TagFileInfo tagFile : tagFiles) {
+            if (tagFile.getName().equals(shortname)) {
+                return tagFile;
             }
         }
         return null;
@@ -201,9 +201,9 @@ public abstract class TagLibraryInfo {
             return null;
         }
 
-        for (int i = 0; i < functions.length; i++) {
-            if (functions[i].getName().equals(name)) {
-                return functions[i];
+        for (FunctionInfo function : functions) {
+            if (function.getName().equals(name)) {
+                return function;
             }
         }
         return null;
diff --git a/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java b/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java
index df06f89..dbc4d80 100644
--- a/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java
+++ b/java/org/apache/catalina/ant/jmx/JMXAccessorQueryTask.java
@@ -141,10 +141,10 @@ public class JMXAccessorQueryTask extends JMXAccessorTask {
             MBeanAttributeInfo attrs[] = minfo.getAttributes();
             Object value = null;
 
-            for (int i = 0; i < attrs.length; i++) {
-                if (!attrs[i].isReadable())
+            for (MBeanAttributeInfo attr : attrs) {
+                if (!attr.isReadable())
                     continue;
-                String attName = attrs[i].getName();
+                String attName = attr.getName();
                 if (attName.indexOf('=') >= 0 || attName.indexOf(':') >= 0
                         || attName.indexOf(' ') >= 0) {
                     continue;
diff --git a/java/org/apache/catalina/authenticator/AuthenticatorBase.java b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
index b0db003..2643f75 100644
--- a/java/org/apache/catalina/authenticator/AuthenticatorBase.java
+++ b/java/org/apache/catalina/authenticator/AuthenticatorBase.java
@@ -1328,9 +1328,9 @@ public abstract class AuthenticatorBase extends ValveBase
         Container parent = context.getParent();
         while ((sso == null) && (parent != null)) {
             Valve valves[] = parent.getPipeline().getValves();
-            for (int i = 0; i < valves.length; i++) {
-                if (valves[i] instanceof SingleSignOn) {
-                    sso = (SingleSignOn) valves[i];
+            for (Valve valve : valves) {
+                if (valve instanceof SingleSignOn) {
+                    sso = (SingleSignOn) valve;
                     break;
                 }
             }
diff --git a/java/org/apache/catalina/authenticator/BasicAuthenticator.java b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
index b661e35..12c60ee 100644
--- a/java/org/apache/catalina/authenticator/BasicAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
@@ -227,8 +227,7 @@ public class BasicAuthenticator extends AuthenticatorBase {
                 // step past the auth method name
                 base64blobOffset = initialOffset + METHOD.length();
                 base64blobLength = authorization.getLength() - METHOD.length();
-            }
-            else {
+            } else {
                 // is this possible, or permitted?
                 throw new IllegalArgumentException(
                         "Authorization header method is not \"Basic\"");
@@ -271,8 +270,7 @@ public class BasicAuthenticator extends AuthenticatorBase {
             if (colon < 0) {
                 username = new String(decoded, charset);
                 // password will remain null!
-            }
-            else {
+            } else {
                 username = new String(decoded, 0, colon, charset);
                 password = new String(decoded, colon + 1, decoded.length - colon - 1, charset);
                 // tolerate surplus white space around credentials
diff --git a/java/org/apache/catalina/authenticator/FormAuthenticator.java b/java/org/apache/catalina/authenticator/FormAuthenticator.java
index 4a508f6..1d4257d 100644
--- a/java/org/apache/catalina/authenticator/FormAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/FormAuthenticator.java
@@ -650,8 +650,8 @@ public class FormAuthenticator
         SavedRequest saved = new SavedRequest();
         Cookie cookies[] = request.getCookies();
         if (cookies != null) {
-            for (int i = 0; i < cookies.length; i++) {
-                saved.addCookie(cookies[i]);
+            for (Cookie cookie : cookies) {
+                saved.addCookie(cookie);
             }
         }
         Enumeration<String> names = request.getHeaderNames();
diff --git a/java/org/apache/catalina/authenticator/SingleSignOn.java b/java/org/apache/catalina/authenticator/SingleSignOn.java
index dad95d0..31fdb1f 100644
--- a/java/org/apache/catalina/authenticator/SingleSignOn.java
+++ b/java/org/apache/catalina/authenticator/SingleSignOn.java
@@ -226,9 +226,9 @@ public class SingleSignOn extends ValveBase {
         Cookie cookie = null;
         Cookie cookies[] = request.getCookies();
         if (cookies != null) {
-            for (int i = 0; i < cookies.length; i++) {
-                if (Constants.SINGLE_SIGN_ON_COOKIE.equals(cookies[i].getName())) {
-                    cookie = cookies[i];
+            for (Cookie value : cookies) {
+                if (Constants.SINGLE_SIGN_ON_COOKIE.equals(value.getName())) {
+                    cookie = value;
                     break;
                 }
             }
diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java
index e157eb7..0f11f3d 100644
--- a/java/org/apache/catalina/connector/CoyoteAdapter.java
+++ b/java/org/apache/catalina/connector/CoyoteAdapter.java
@@ -823,14 +823,14 @@ public class CoyoteAdapter implements Adapter {
             if (wrapper != null) {
                 String[] methods = wrapper.getServletMethods();
                 if (methods != null) {
-                    for (int i=0; i < methods.length; i++) {
-                        if ("TRACE".equals(methods[i])) {
+                    for (String method : methods) {
+                        if ("TRACE".equals(method)) {
                             continue;
                         }
                         if (header == null) {
-                            header = methods[i];
+                            header = method;
                         } else {
-                            header += ", " + methods[i];
+                            header += ", " + method;
                         }
                     }
                 }
diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java
index 8180aa9..2ea39dd 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1599,12 +1599,12 @@ public class Request implements HttpServletRequest {
                     context.getServletContext(), getRequest(), name, value);
         }
 
-        for (int i = 0; i < listeners.length; i++) {
-            if (!(listeners[i] instanceof ServletRequestAttributeListener)) {
+        for (Object o : listeners) {
+            if (!(o instanceof ServletRequestAttributeListener)) {
                 continue;
             }
             ServletRequestAttributeListener listener =
-                    (ServletRequestAttributeListener) listeners[i];
+                    (ServletRequestAttributeListener) o;
             try {
                 if (replaced) {
                     listener.attributeReplaced(event);
@@ -1636,12 +1636,12 @@ public class Request implements HttpServletRequest {
         ServletRequestAttributeEvent event =
                 new ServletRequestAttributeEvent(context.getServletContext(),
                         getRequest(), name, value);
-        for (int i = 0; i < listeners.length; i++) {
-            if (!(listeners[i] instanceof ServletRequestAttributeListener)) {
+        for (Object o : listeners) {
+            if (!(o instanceof ServletRequestAttributeListener)) {
                 continue;
             }
             ServletRequestAttributeListener listener =
-                    (ServletRequestAttributeListener) listeners[i];
+                    (ServletRequestAttributeListener) o;
             try {
                 listener.attributeRemoved(event);
             } catch (Throwable t) {
diff --git a/java/org/apache/catalina/core/ApplicationFilterFactory.java b/java/org/apache/catalina/core/ApplicationFilterFactory.java
index e066f94..5b6db99 100644
--- a/java/org/apache/catalina/core/ApplicationFilterFactory.java
+++ b/java/org/apache/catalina/core/ApplicationFilterFactory.java
@@ -100,14 +100,14 @@ public final class ApplicationFilterFactory {
         String servletName = wrapper.getName();
 
         // Add the relevant path-mapped filters to this filter chain
-        for (int i = 0; i < filterMaps.length; i++) {
-            if (!matchDispatcher(filterMaps[i] ,dispatcher)) {
+        for (FilterMap map : filterMaps) {
+            if (!matchDispatcher(map, dispatcher)) {
                 continue;
             }
-            if (!matchFiltersURL(filterMaps[i], requestPath))
+            if (!matchFiltersURL(map, requestPath))
                 continue;
             ApplicationFilterConfig filterConfig = (ApplicationFilterConfig)
-                context.findFilterConfig(filterMaps[i].getFilterName());
+                    context.findFilterConfig(map.getFilterName());
             if (filterConfig == null) {
                 // FIXME - log configuration problem
                 continue;
@@ -116,14 +116,14 @@ public final class ApplicationFilterFactory {
         }
 
         // Add filters that match on servlet name second
-        for (int i = 0; i < filterMaps.length; i++) {
-            if (!matchDispatcher(filterMaps[i] ,dispatcher)) {
+        for (FilterMap filterMap : filterMaps) {
+            if (!matchDispatcher(filterMap, dispatcher)) {
                 continue;
             }
-            if (!matchFiltersServlet(filterMaps[i], servletName))
+            if (!matchFiltersServlet(filterMap, servletName))
                 continue;
             ApplicationFilterConfig filterConfig = (ApplicationFilterConfig)
-                context.findFilterConfig(filterMaps[i].getFilterName());
+                    context.findFilterConfig(filterMap.getFilterName());
             if (filterConfig == null) {
                 // FIXME - log configuration problem
                 continue;
@@ -160,8 +160,8 @@ public final class ApplicationFilterFactory {
         // Match on context relative request path
         String[] testPaths = filterMap.getURLPatterns();
 
-        for (int i = 0; i < testPaths.length; i++) {
-            if (matchFiltersURL(testPaths[i], requestPath)) {
+        for (String testPath : testPaths) {
+            if (matchFiltersURL(testPath, requestPath)) {
                 return true;
             }
         }
@@ -242,8 +242,8 @@ public final class ApplicationFilterFactory {
             return true;
         } else {
             String[] servletNames = filterMap.getServletNames();
-            for (int i = 0; i < servletNames.length; i++) {
-                if (servletName.equals(servletNames[i])) {
+            for (String name : servletNames) {
+                if (servletName.equals(name)) {
                     return true;
                 }
             }
diff --git a/java/org/apache/catalina/core/ApplicationHttpRequest.java b/java/org/apache/catalina/core/ApplicationHttpRequest.java
index 05b65c7..17a4396 100644
--- a/java/org/apache/catalina/core/ApplicationHttpRequest.java
+++ b/java/org/apache/catalina/core/ApplicationHttpRequest.java
@@ -791,8 +791,8 @@ class ApplicationHttpRequest extends HttpServletRequestWrapper {
      */
     protected boolean isSpecial(String name) {
 
-        for (int i = 0; i < specials.length; i++) {
-            if (specials[i].equals(name))
+        for (String special : specials) {
+            if (special.equals(name))
                 return true;
         }
         return false;
diff --git a/java/org/apache/catalina/core/ApplicationRequest.java b/java/org/apache/catalina/core/ApplicationRequest.java
index 919018f..ce7eb29 100644
--- a/java/org/apache/catalina/core/ApplicationRequest.java
+++ b/java/org/apache/catalina/core/ApplicationRequest.java
@@ -197,8 +197,8 @@ class ApplicationRequest extends ServletRequestWrapper {
      */
     protected boolean isSpecial(String name) {
 
-        for (int i = 0; i < specials.length; i++) {
-            if (specials[i].equals(name))
+        for (String special : specials) {
+            if (special.equals(name))
                 return true;
         }
         return false;
diff --git a/java/org/apache/catalina/core/ContainerBase.java b/java/org/apache/catalina/core/ContainerBase.java
index 4c6ab74..17c4ea9 100644
--- a/java/org/apache/catalina/core/ContainerBase.java
+++ b/java/org/apache/catalina/core/ContainerBase.java
@@ -920,8 +920,8 @@ public abstract class ContainerBase extends LifecycleMBeanBase
         // Start our child containers, if any
         Container children[] = findChildren();
         List<Future<Void>> results = new ArrayList<>();
-        for (int i = 0; i < children.length; i++) {
-            results.add(startStopExecutor.submit(new StartChild(children[i])));
+        for (Container child : children) {
+            results.add(startStopExecutor.submit(new StartChild(child)));
         }
 
         MultiThrowable multiThrowable = null;
@@ -980,8 +980,8 @@ public abstract class ContainerBase extends LifecycleMBeanBase
         // Stop our child containers, if any
         Container children[] = findChildren();
         List<Future<Void>> results = new ArrayList<>();
-        for (int i = 0; i < children.length; i++) {
-            results.add(startStopExecutor.submit(new StopChild(children[i])));
+        for (Container child : children) {
+            results.add(startStopExecutor.submit(new StopChild(child)));
         }
 
         boolean fail = false;
@@ -1380,9 +1380,9 @@ public abstract class ContainerBase extends LifecycleMBeanBase
                 }
                 container.backgroundProcess();
                 Container[] children = container.findChildren();
-                for (int i = 0; i < children.length; i++) {
-                    if (children[i].getBackgroundProcessorDelay() <= 0) {
-                        processChildren(children[i]);
+                for (Container child : children) {
+                    if (child.getBackgroundProcessorDelay() <= 0) {
+                        processChildren(child);
                     }
                 }
             } catch (Throwable t) {
diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index 32f995a..a6a9f2c 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -2872,18 +2872,18 @@ public class StandardContext extends ContainerBase
 
         // Validate the proposed constraint
         SecurityCollection collections[] = constraint.findCollections();
-        for (int i = 0; i < collections.length; i++) {
-            String patterns[] = collections[i].findPatterns();
+        for (SecurityCollection collection : collections) {
+            String patterns[] = collection.findPatterns();
             for (int j = 0; j < patterns.length; j++) {
                 patterns[j] = adjustURLPattern(patterns[j]);
                 if (!validateURLPattern(patterns[j]))
                     throw new IllegalArgumentException
-                        (sm.getString
-                         ("standardContext.securityConstraint.pattern",
-                          patterns[j]));
+                            (sm.getString
+                                    ("standardContext.securityConstraint.pattern",
+                                            patterns[j]));
             }
-            if (collections[i].findMethods().length > 0 &&
-                    collections[i].findOmittedMethods().length > 0) {
+            if (collection.findMethods().length > 0 &&
+                    collection.findOmittedMethods().length > 0) {
                 throw new IllegalArgumentException(sm.getString(
                         "standardContext.securityConstraint.mixHttpMethod"));
             }
@@ -3012,11 +3012,11 @@ public class StandardContext extends ContainerBase
             throw new IllegalArgumentException
                 (sm.getString("standardContext.filterMap.either"));
         */
-        for (int i = 0; i < urlPatterns.length; i++) {
-            if (!validateURLPattern(urlPatterns[i])) {
+        for (String urlPattern : urlPatterns) {
+            if (!validateURLPattern(urlPattern)) {
                 throw new IllegalArgumentException
-                    (sm.getString("standardContext.filterMap.pattern",
-                            urlPatterns[i]));
+                        (sm.getString("standardContext.filterMap.pattern",
+                                urlPattern));
             }
         }
     }
@@ -3308,11 +3308,11 @@ public class StandardContext extends ContainerBase
         }
 
         synchronized (wrapperLifecyclesLock) {
-            for (int i = 0; i < wrapperLifecycles.length; i++) {
+            for (String wrapperLifecycle : wrapperLifecycles) {
                 try {
-                    Class<?> clazz = Class.forName(wrapperLifecycles[i]);
+                    Class<?> clazz = Class.forName(wrapperLifecycle);
                     LifecycleListener listener =
-                        (LifecycleListener) clazz.getConstructor().newInstance();
+                            (LifecycleListener) clazz.getConstructor().newInstance();
                     wrapper.addLifecycleListener(listener);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
@@ -3323,9 +3323,9 @@ public class StandardContext extends ContainerBase
         }
 
         synchronized (wrapperListenersLock) {
-            for (int i = 0; i < wrapperListeners.length; i++) {
+            for (String wrapperListener : wrapperListeners) {
                 try {
-                    Class<?> clazz = Class.forName(wrapperListeners[i]);
+                    Class<?> clazz = Class.forName(wrapperListener);
                     ContainerListener listener =
                             (ContainerListener) clazz.getConstructor().newInstance();
                     wrapper.addContainerListener(listener);
@@ -3571,8 +3571,8 @@ public class StandardContext extends ContainerBase
     public boolean findSecurityRole(String role) {
 
         synchronized (securityRolesLock) {
-            for (int i = 0; i < securityRoles.length; i++) {
-                if (role.equals(securityRoles[i]))
+            for (String securityRole : securityRoles) {
+                if (role.equals(securityRole))
                     return true;
             }
         }
@@ -3660,8 +3660,8 @@ public class StandardContext extends ContainerBase
     public boolean findWelcomeFile(String name) {
 
         synchronized (welcomeFilesLock) {
-            for (int i = 0; i < welcomeFiles.length; i++) {
-                if (name.equals(welcomeFiles[i]))
+            for (String welcomeFile : welcomeFiles) {
+                if (name.equals(welcomeFile))
                     return true;
             }
         }
@@ -4259,8 +4259,8 @@ public class StandardContext extends ContainerBase
 
         Container[] children = findChildren();
         if (children != null) {
-            for( int i=0; i< children.length; i++ ) {
-                result += ((StandardWrapper)children[i]).getProcessingTime();
+            for (Container child : children) {
+                result += ((StandardWrapper) child).getProcessingTime();
             }
         }
 
@@ -4281,8 +4281,8 @@ public class StandardContext extends ContainerBase
 
         Container[] children = findChildren();
         if (children != null) {
-            for( int i=0; i< children.length; i++ ) {
-                time = ((StandardWrapper)children[i]).getMaxTime();
+            for (Container child : children) {
+                time = ((StandardWrapper) child).getMaxTime();
                 if (time > result)
                     result = time;
             }
@@ -4305,8 +4305,8 @@ public class StandardContext extends ContainerBase
 
         Container[] children = findChildren();
         if (children != null) {
-            for( int i=0; i< children.length; i++ ) {
-                time = ((StandardWrapper)children[i]).getMinTime();
+            for (Container child : children) {
+                time = ((StandardWrapper) child).getMinTime();
                 if (result < 0 || time < result)
                     result = time;
             }
@@ -4328,8 +4328,8 @@ public class StandardContext extends ContainerBase
 
         Container[] children = findChildren();
         if (children != null) {
-            for( int i=0; i< children.length; i++ ) {
-                result += ((StandardWrapper)children[i]).getRequestCount();
+            for (Container child : children) {
+                result += ((StandardWrapper) child).getRequestCount();
             }
         }
 
@@ -4349,8 +4349,8 @@ public class StandardContext extends ContainerBase
 
         Container[] children = findChildren();
         if (children != null) {
-            for( int i=0; i< children.length; i++ ) {
-                result += ((StandardWrapper)children[i]).getErrorCount();
+            for (Container child : children) {
+                result += ((StandardWrapper) child).getErrorCount();
             }
         }
 
@@ -4633,19 +4633,19 @@ public class StandardContext extends ContainerBase
         }
 
         // Sort listeners in two arrays
-        ArrayList<Object> eventListeners = new ArrayList<>();
-        ArrayList<Object> lifecycleListeners = new ArrayList<>();
-        for (int i = 0; i < results.length; i++) {
-            if ((results[i] instanceof ServletContextAttributeListener)
-                || (results[i] instanceof ServletRequestAttributeListener)
-                || (results[i] instanceof ServletRequestListener)
-                || (results[i] instanceof HttpSessionIdListener)
-                || (results[i] instanceof HttpSessionAttributeListener)) {
-                eventListeners.add(results[i]);
+        List<Object> eventListeners = new ArrayList<>();
+        List<Object> lifecycleListeners = new ArrayList<>();
+        for (Object result : results) {
+            if ((result instanceof ServletContextAttributeListener)
+                    || (result instanceof ServletRequestAttributeListener)
+                    || (result instanceof ServletRequestListener)
+                    || (result instanceof HttpSessionIdListener)
+                    || (result instanceof HttpSessionAttributeListener)) {
+                eventListeners.add(result);
             }
-            if ((results[i] instanceof ServletContextListener)
-                || (results[i] instanceof HttpSessionListener)) {
-                lifecycleListeners.add(results[i]);
+            if ((result instanceof ServletContextListener)
+                    || (result instanceof HttpSessionListener)) {
+                lifecycleListeners.add(result);
             }
         }
 
@@ -4684,11 +4684,11 @@ public class StandardContext extends ContainerBase
             noPluggabilityServletContext = new NoPluggabilityServletContext(getServletContext());
             tldEvent = new ServletContextEvent(noPluggabilityServletContext);
         }
-        for (int i = 0; i < instances.length; i++) {
-            if (!(instances[i] instanceof ServletContextListener))
+        for (Object instance : instances) {
+            if (!(instance instanceof ServletContextListener))
                 continue;
             ServletContextListener listener =
-                (ServletContextListener) instances[i];
+                    (ServletContextListener) instance;
             try {
                 fireContainerEvent("beforeContextInitialized", listener);
                 if (noPluggabilityListeners.contains(listener)) {
@@ -4701,8 +4701,8 @@ public class StandardContext extends ContainerBase
                 ExceptionUtils.handleThrowable(t);
                 fireContainerEvent("afterContextInitialized", listener);
                 getLogger().error
-                    (sm.getString("standardContext.listenerStart",
-                                  instances[i].getClass().getName()), t);
+                        (sm.getString("standardContext.listenerStart",
+                                instance.getClass().getName()), t);
                 ok = false;
             }
         }
@@ -4862,8 +4862,8 @@ public class StandardContext extends ContainerBase
 
         // Collect "load on startup" servlets that need to be initialized
         TreeMap<Integer, ArrayList<Wrapper>> map = new TreeMap<>();
-        for (int i = 0; i < children.length; i++) {
-            Wrapper wrapper = (Wrapper) children[i];
+        for (Container child : children) {
+            Wrapper wrapper = (Wrapper) child;
             int loadOnStartup = wrapper.getLoadOnStartup();
             if (loadOnStartup < 0)
                 continue;
@@ -5315,19 +5315,19 @@ public class StandardContext extends ContainerBase
         Map<String,String> mergedParams = new HashMap<>();
 
         String names[] = findParameters();
-        for (int i = 0; i < names.length; i++) {
-            mergedParams.put(names[i], findParameter(names[i]));
+        for (String s : names) {
+            mergedParams.put(s, findParameter(s));
         }
 
         ApplicationParameter params[] = findApplicationParameters();
-        for (int i = 0; i < params.length; i++) {
-            if (params[i].getOverride()) {
-                if (mergedParams.get(params[i].getName()) == null) {
-                    mergedParams.put(params[i].getName(),
-                            params[i].getValue());
+        for (ApplicationParameter param : params) {
+            if (param.getOverride()) {
+                if (mergedParams.get(param.getName()) == null) {
+                    mergedParams.put(param.getName(),
+                            param.getValue());
                 }
             } else {
-                mergedParams.put(params[i].getName(), params[i].getValue());
+                mergedParams.put(param.getName(), param.getValue());
             }
         }
 
@@ -5385,8 +5385,8 @@ public class StandardContext extends ContainerBase
             // Stop ContainerBackgroundProcessor thread
             threadStop();
 
-            for (int i = 0; i < children.length; i++) {
-                children[i].stop();
+            for (Container child : children) {
+                child.stop();
             }
 
             // Stop our filters
@@ -5896,13 +5896,13 @@ public class StandardContext extends ContainerBase
             ServletRequestEvent event =
                     new ServletRequestEvent(getServletContext(), request);
 
-            for (int i = 0; i < instances.length; i++) {
-                if (instances[i] == null)
+            for (Object instance : instances) {
+                if (instance == null)
                     continue;
-                if (!(instances[i] instanceof ServletRequestListener))
+                if (!(instance instanceof ServletRequestListener))
                     continue;
                 ServletRequestListener listener =
-                    (ServletRequestListener) instances[i];
+                        (ServletRequestListener) instance;
 
                 try {
                     listener.requestInitialized(event);
@@ -5910,7 +5910,7 @@ public class StandardContext extends ContainerBase
                     ExceptionUtils.handleThrowable(t);
                     getLogger().error(sm.getString(
                             "standardContext.requestListener.requestInit",
-                            instances[i].getClass().getName()), t);
+                            instance.getClass().getName()), t);
                     request.setAttribute(RequestDispatcher.ERROR_EXCEPTION, t);
                     return false;
                 }
diff --git a/java/org/apache/catalina/core/StandardHost.java b/java/org/apache/catalina/core/StandardHost.java
index 8a4a1a0..48e9dfb 100644
--- a/java/org/apache/catalina/core/StandardHost.java
+++ b/java/org/apache/catalina/core/StandardHost.java
@@ -664,8 +664,8 @@ public class StandardHost extends ContainerBase implements Host {
 
         synchronized (aliasesLock) {
             // Skip duplicate aliases
-            for (int i = 0; i < aliases.length; i++) {
-                if (aliases[i].equals(alias))
+            for (String s : aliases) {
+                if (s.equals(alias))
                     return;
             }
             // Add this alias to the list
diff --git a/java/org/apache/catalina/core/StandardServer.java b/java/org/apache/catalina/core/StandardServer.java
index c4125b5..cb58398 100644
--- a/java/org/apache/catalina/core/StandardServer.java
+++ b/java/org/apache/catalina/core/StandardServer.java
@@ -535,9 +535,9 @@ public final class StandardServer extends LifecycleMBeanBase implements Server {
             return null;
         }
         synchronized (servicesLock) {
-            for (int i = 0; i < services.length; i++) {
-                if (name.equals(services[i].getName())) {
-                    return services[i];
+            for (Service service : services) {
+                if (name.equals(service.getName())) {
+                    return service;
                 }
             }
         }
@@ -762,8 +762,8 @@ public final class StandardServer extends LifecycleMBeanBase implements Server {
 
         // Start our defined Services
         synchronized (servicesLock) {
-            for (int i = 0; i < services.length; i++) {
-                services[i].start();
+            for (Service service : services) {
+                service.start();
             }
         }
     }
@@ -783,8 +783,8 @@ public final class StandardServer extends LifecycleMBeanBase implements Server {
         fireLifecycleEvent(CONFIGURE_STOP_EVENT, null);
 
         // Stop our defined Services
-        for (int i = 0; i < services.length; i++) {
-            services[i].stop();
+        for (Service service : services) {
+            service.stop();
         }
 
         globalNamingResources.stop();
@@ -844,16 +844,16 @@ public final class StandardServer extends LifecycleMBeanBase implements Server {
             }
         }
         // Initialize our defined Services
-        for (int i = 0; i < services.length; i++) {
-            services[i].init();
+        for (Service service : services) {
+            service.init();
         }
     }
 
     @Override
     protected void destroyInternal() throws LifecycleException {
         // Destroy our defined Services
-        for (int i = 0; i < services.length; i++) {
-            services[i].destroy();
+        for (Service service : services) {
+            service.destroy();
         }
 
         globalNamingResources.destroy();
diff --git a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
index c0083f0..1f51fa6 100644
--- a/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
+++ b/java/org/apache/catalina/filters/CsrfPreventionFilterBase.java
@@ -108,9 +108,9 @@ public abstract class CsrfPreventionFilterBase extends FilterBase {
 
         randomSource.nextBytes(random);
 
-        for (int j = 0; j < random.length; j++) {
-            byte b1 = (byte) ((random[j] & 0xf0) >> 4);
-            byte b2 = (byte) (random[j] & 0x0f);
+        for (byte b : random) {
+            byte b1 = (byte) ((b & 0xf0) >> 4);
+            byte b2 = (byte) (b & 0x0f);
             if (b1 < 10) {
                 buffer.append((char) ('0' + b1));
             } else {
diff --git a/java/org/apache/catalina/filters/RemoteIpFilter.java b/java/org/apache/catalina/filters/RemoteIpFilter.java
index 50bcb5e..bb59282 100644
--- a/java/org/apache/catalina/filters/RemoteIpFilter.java
+++ b/java/org/apache/catalina/filters/RemoteIpFilter.java
@@ -926,8 +926,8 @@ public class RemoteIpFilter implements Filter {
         if (forwardedProtocols.length == 0) {
             return false;
         }
-        for (int i = 0; i < forwardedProtocols.length; i++) {
-            if (!protocolHeaderHttpsValue.equalsIgnoreCase(forwardedProtocols[i])) {
+        for (String forwardedProtocol : forwardedProtocols) {
+            if (!protocolHeaderHttpsValue.equalsIgnoreCase(forwardedProtocol)) {
                 return false;
             }
         }
diff --git a/java/org/apache/catalina/filters/RequestDumperFilter.java b/java/org/apache/catalina/filters/RequestDumperFilter.java
index e92d97d..d45d901 100644
--- a/java/org/apache/catalina/filters/RequestDumperFilter.java
+++ b/java/org/apache/catalina/filters/RequestDumperFilter.java
@@ -118,9 +118,9 @@ public class RequestDumperFilter implements Filter {
             doLog("       contextPath", hRequest.getContextPath());
             Cookie cookies[] = hRequest.getCookies();
             if (cookies != null) {
-                for (int i = 0; i < cookies.length; i++) {
-                    doLog("            cookie", cookies[i].getName() +
-                            "=" + cookies[i].getValue());
+                for (Cookie cookie : cookies) {
+                    doLog("            cookie", cookie.getName() +
+                            "=" + cookie.getValue());
                 }
             }
             Enumeration<String> hnames = hRequest.getHeaderNames();
diff --git a/java/org/apache/catalina/ha/context/ReplicatedContext.java b/java/org/apache/catalina/ha/context/ReplicatedContext.java
index 83f963c..9ed7ad0 100644
--- a/java/org/apache/catalina/ha/context/ReplicatedContext.java
+++ b/java/org/apache/catalina/ha/context/ReplicatedContext.java
@@ -201,15 +201,15 @@ public class ReplicatedContext extends StandardContext implements MapOwner {
         }
         @Override
         public boolean hasMoreElements() {
-            for ( int i=0; i<e.length; i++ ) {
-                if ( e[i].hasMoreElements() ) return true;
+            for (Enumeration<T> tEnumeration : e) {
+                if (tEnumeration.hasMoreElements()) return true;
             }
             return false;
         }
         @Override
         public T nextElement() {
-            for ( int i=0; i<e.length; i++ ) {
-                if ( e[i].hasMoreElements() ) return e[i].nextElement();
+            for (Enumeration<T> tEnumeration : e) {
+                if (tEnumeration.hasMoreElements()) return tEnumeration.nextElement();
             }
             return null;
 
diff --git a/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java b/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
index 4eca897..fd74bd2 100644
--- a/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
+++ b/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
@@ -369,11 +369,11 @@ public class FarmWarDeployer extends ClusterListener
                     webapp));
         msg = factory.readMessage(msg);
         while (msg != null) {
-            for (int i = 0; i < members.length; i++) {
+            for (Member member : members) {
                 if (log.isDebugEnabled())
                     log.debug(sm.getString("farmWarDeployer.sendFragment",
-                            contextName, webapp, members[i]));
-                getCluster().send(msg, members[i]);
+                            contextName, webapp, member));
+                getCluster().send(msg, member);
             }
             msg = factory.readMessage(msg);
         }
@@ -542,8 +542,8 @@ public class FarmWarDeployer extends ClusterListener
         if (files == null) {
             files = new String[0];
         }
-        for (int i = 0; i < files.length; i++) {
-            File file = new File(dir, files[i]);
+        for (String s : files) {
+            File file = new File(dir, s);
             if (file.isDirectory()) {
                 undeployDir(file);
             } else {
diff --git a/java/org/apache/catalina/ha/deploy/WarWatcher.java b/java/org/apache/catalina/ha/deploy/WarWatcher.java
index bbec31a..81cac16 100644
--- a/java/org/apache/catalina/ha/deploy/WarWatcher.java
+++ b/java/org/apache/catalina/ha/deploy/WarWatcher.java
@@ -78,12 +78,12 @@ public class WarWatcher {
             list = new File[0];
         }
         //first make sure all the files are listed in our current status
-        for (int i = 0; i < list.length; i++) {
-            if(!list[i].exists())
+        for (File file : list) {
+            if (!file.exists())
                 log.warn(sm.getString("warWatcher.listedFileDoesNotExist",
-                                      list[i], watchDir));
+                        file, watchDir));
 
-            addWarInfo(list[i]);
+            addWarInfo(file);
         }
 
         // Check all the status codes and update the FarmDeployer
diff --git a/java/org/apache/catalina/ha/session/DeltaManager.java b/java/org/apache/catalina/ha/session/DeltaManager.java
index 51c06f2..f446a6b 100644
--- a/java/org/apache/catalina/ha/session/DeltaManager.java
+++ b/java/org/apache/catalina/ha/session/DeltaManager.java
@@ -697,8 +697,8 @@ public class DeltaManager extends ClusterManagerBase{
         ByteArrayOutputStream fos = new ByteArrayOutputStream();
         try (ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(fos))) {
             oos.writeObject(Integer.valueOf(currentSessions.length));
-            for(int i=0 ; i < currentSessions.length;i++) {
-                ((DeltaSession)currentSessions[i]).writeObjectData(oos);
+            for (Session currentSession : currentSessions) {
+                ((DeltaSession) currentSession).writeObjectData(oos);
             }
             // Flush and close the output stream
             oos.flush();
@@ -897,8 +897,8 @@ public class DeltaManager extends ClusterManagerBase{
         // Expire all active sessions
         if (log.isInfoEnabled()) log.info(sm.getString("deltaManager.expireSessions", getName()));
         Session sessions[] = findSessions();
-        for (int i = 0; i < sessions.length; i++) {
-            DeltaSession session = (DeltaSession) sessions[i];
+        for (Session value : sessions) {
+            DeltaSession session = (DeltaSession) value;
             if (!session.isValid())
                 continue;
             try {
@@ -1126,9 +1126,9 @@ public class DeltaManager extends ClusterManagerBase{
             log.debug("Start expire all sessions " + getName() + " at " + timeNow +
                     " sessioncount " + sessions.length);
         }
-        for (int i = 0; i < sessions.length; i++) {
-            if (sessions[i] instanceof DeltaSession) {
-                DeltaSession session = (DeltaSession) sessions[i];
+        for (Session value : sessions) {
+            if (value instanceof DeltaSession) {
+                DeltaSession session = (DeltaSession) value;
                 if (session.isPrimarySession()) {
                     if (session.isValid()) {
                         session.expire();
diff --git a/java/org/apache/catalina/ha/session/DeltaRequest.java b/java/org/apache/catalina/ha/session/DeltaRequest.java
index 6491e15..c13da90 100644
--- a/java/org/apache/catalina/ha/session/DeltaRequest.java
+++ b/java/org/apache/catalina/ha/session/DeltaRequest.java
@@ -163,51 +163,51 @@ public class DeltaRequest implements Externalizable {
         if ( !this.sessionId.equals( session.getId() ) )
             throw new java.lang.IllegalArgumentException(sm.getString("deltaRequest.ssid.mismatch"));
         session.access();
-        for ( int i=0; i<actions.size(); i++ ) {
-            AttributeInfo info = actions.get(i);
-            switch ( info.getType() ) {
+        for (AttributeInfo info : actions) {
+            switch (info.getType()) {
                 case TYPE_ATTRIBUTE:
-                    if ( info.getAction() == ACTION_SET ) {
-                        if ( log.isTraceEnabled() ) log.trace("Session.setAttribute('"+info.getName()+"', '"+info.getValue()+"')");
-                        session.setAttribute(info.getName(), info.getValue(),notifyListeners,false);
-                    }  else {
-                        if ( log.isTraceEnabled() ) log.trace("Session.removeAttribute('"+info.getName()+"')");
-                        session.removeAttribute(info.getName(),notifyListeners,false);
+                    if (info.getAction() == ACTION_SET) {
+                        if (log.isTraceEnabled())
+                            log.trace("Session.setAttribute('" + info.getName() + "', '" + info.getValue() + "')");
+                        session.setAttribute(info.getName(), info.getValue(), notifyListeners, false);
+                    } else {
+                        if (log.isTraceEnabled()) log.trace("Session.removeAttribute('" + info.getName() + "')");
+                        session.removeAttribute(info.getName(), notifyListeners, false);
                     }
 
                     break;
                 case TYPE_ISNEW:
-                    if ( log.isTraceEnabled() ) log.trace("Session.setNew('"+info.getValue()+"')");
-                    session.setNew(((Boolean)info.getValue()).booleanValue(),false);
+                    if (log.isTraceEnabled()) log.trace("Session.setNew('" + info.getValue() + "')");
+                    session.setNew(((Boolean) info.getValue()).booleanValue(), false);
                     break;
                 case TYPE_MAXINTERVAL:
-                    if ( log.isTraceEnabled() ) log.trace("Session.setMaxInactiveInterval('"+info.getValue()+"')");
-                    session.setMaxInactiveInterval(((Integer)info.getValue()).intValue(),false);
+                    if (log.isTraceEnabled()) log.trace("Session.setMaxInactiveInterval('" + info.getValue() + "')");
+                    session.setMaxInactiveInterval(((Integer) info.getValue()).intValue(), false);
                     break;
                 case TYPE_PRINCIPAL:
                     Principal p = null;
                     if (info.getAction() == ACTION_SET) {
                         p = (Principal) info.getValue();
                     }
-                    session.setPrincipal(p,false);
+                    session.setPrincipal(p, false);
                     break;
                 case TYPE_AUTHTYPE:
                     String authType = null;
-                    if ( info.getAction() == ACTION_SET ) {
-                        authType = (String)info.getValue();
+                    if (info.getAction() == ACTION_SET) {
+                        authType = (String) info.getValue();
                     }
-                    session.setAuthType(authType,false);
+                    session.setAuthType(authType, false);
                     break;
                 case TYPE_LISTENER:
                     SessionListener listener = (SessionListener) info.getValue();
                     if (info.getAction() == ACTION_SET) {
-                        session.addSessionListener(listener,false);
+                        session.addSessionListener(listener, false);
                     } else {
-                        session.removeSessionListener(listener,false);
+                        session.removeSessionListener(listener, false);
                     }
                     break;
-                default :
-                    throw new java.lang.IllegalArgumentException(sm.getString("deltaRequest.invalidAttributeInfoType", info));
+                default:
+                    throw new IllegalArgumentException(sm.getString("deltaRequest.invalidAttributeInfoType", info));
             }//switch
         }//for
         session.endAccess();
@@ -268,8 +268,7 @@ public class DeltaRequest implements Externalizable {
                     log.error(sm.getString("deltaRequest.removeUnable"),x);
                     info = new AttributeInfo();
                 }
-            }
-            else {
+            } else {
                 info = new AttributeInfo();
             }
             info.readExternal(in);
diff --git a/java/org/apache/catalina/ha/session/DeltaSession.java b/java/org/apache/catalina/ha/session/DeltaSession.java
index 201cce8..ae52301 100644
--- a/java/org/apache/catalina/ha/session/DeltaSession.java
+++ b/java/org/apache/catalina/ha/session/DeltaSession.java
@@ -939,12 +939,12 @@ public class DeltaSession extends StandardSession implements Externalizable,Clus
         String keys[] = keys();
         List<String> saveNames = new ArrayList<>();
         List<Object> saveValues = new ArrayList<>();
-        for (int i = 0; i < keys.length; i++) {
+        for (String key : keys) {
             Object value = null;
-            value = attributes.get(keys[i]);
-            if (value != null && !exclude(keys[i], value) &&
-                    isAttributeDistributable(keys[i], value)) {
-                saveNames.add(keys[i]);
+            value = attributes.get(key);
+            if (value != null && !exclude(key, value) &&
+                    isAttributeDistributable(key, value)) {
+                saveNames.add(key);
                 saveValues.add(value);
             }
         }
diff --git a/java/org/apache/catalina/ha/tcp/ReplicationValve.java b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
index 30308b5..9e91cfb 100644
--- a/java/org/apache/catalina/ha/tcp/ReplicationValve.java
+++ b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
@@ -543,11 +543,11 @@ public class ReplicationValve
     protected void sendInvalidSessions(ClusterManager manager) {
         String[] invalidIds=manager.getInvalidatedSessions();
         if ( invalidIds.length > 0 ) {
-            for ( int i=0;i<invalidIds.length; i++ ) {
+            for (String invalidId : invalidIds) {
                 try {
-                    send(manager,invalidIds[i]);
-                } catch ( Exception x ) {
-                    log.error(sm.getString("ReplicationValve.send.invalid.failure",invalidIds[i]),x);
+                    send(manager, invalidId);
+                } catch (Exception x) {
+                    log.error(sm.getString("ReplicationValve.send.invalid.failure", invalidId), x);
                 }
             }
         }
diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index 5d8506e..248ab61 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -1930,20 +1930,20 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
             Method expungeStaleEntriesMethod = tlmClass.getDeclaredMethod("expungeStaleEntries");
             expungeStaleEntriesMethod.setAccessible(true);
 
-            for (int i = 0; i < threads.length; i++) {
+            for (Thread thread : threads) {
                 Object threadLocalMap;
-                if (threads[i] != null) {
+                if (thread != null) {
 
                     // Clear the first map
-                    threadLocalMap = threadLocalsField.get(threads[i]);
-                    if (null != threadLocalMap){
+                    threadLocalMap = threadLocalsField.get(thread);
+                    if (null != threadLocalMap) {
                         expungeStaleEntriesMethod.invoke(threadLocalMap);
                         checkThreadLocalMapForLeaks(threadLocalMap, tableField);
                     }
 
                     // Clear the second map
-                    threadLocalMap =inheritableThreadLocalsField.get(threads[i]);
-                    if (null != threadLocalMap){
+                    threadLocalMap = inheritableThreadLocalsField.get(thread);
+                    if (null != threadLocalMap) {
                         expungeStaleEntriesMethod.invoke(threadLocalMap);
                         checkThreadLocalMapForLeaks(threadLocalMap, tableField);
                     }
@@ -1976,8 +1976,7 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
         if (map != null) {
             Object[] table = (Object[]) internalTableField.get(map);
             if (table != null) {
-                for (int j =0; j < table.length; j++) {
-                    Object obj = table[j];
+                for (Object obj : table) {
                     if (obj != null) {
                         boolean keyLoadedByWebapp = false;
                         boolean valueLoadedByWebapp = false;
@@ -2018,14 +2017,15 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
                                             "webappClassLoader.checkThreadLocalsForLeaks.badValue",
                                             args[3]), e);
                                     args[4] = sm.getString(
-                                    "webappClassLoader.checkThreadLocalsForLeaks.unknown");
+                                            "webappClassLoader.checkThreadLocalsForLeaks.unknown");
                                 }
                             }
                             if (valueLoadedByWebapp) {
                                 log.error(sm.getString(
                                         "webappClassLoader.checkThreadLocalsForLeaks",
                                         args));
-                            } else if (value == null) {
+                            }
+                            else if (value == null) {
                                 if (log.isDebugEnabled()) {
                                     log.debug(sm.getString(
                                             "webappClassLoader.checkThreadLocalsForLeaksNull",
diff --git a/java/org/apache/catalina/loader/WebappLoader.java b/java/org/apache/catalina/loader/WebappLoader.java
index 8d93226..4c0670d 100644
--- a/java/org/apache/catalina/loader/WebappLoader.java
+++ b/java/org/apache/catalina/loader/WebappLoader.java
@@ -321,8 +321,8 @@ public class WebappLoader extends LifecycleMBeanBase
     public String getLoaderRepositoriesString() {
         String repositories[]=getLoaderRepositories();
         StringBuilder sb=new StringBuilder();
-        for( int i=0; i<repositories.length ; i++ ) {
-            sb.append( repositories[i]).append(":");
+        for (String repository : repositories) {
+            sb.append(repository).append(":");
         }
         return sb.toString();
     }
@@ -610,20 +610,20 @@ public class WebappLoader extends LifecycleMBeanBase
     private boolean buildClassPath(StringBuilder classpath, ClassLoader loader) {
         if (loader instanceof URLClassLoader) {
             URL repositories[] = ((URLClassLoader) loader).getURLs();
-                for (int i = 0; i < repositories.length; i++) {
-                    String repository = repositories[i].toString();
-                    if (repository.startsWith("file://"))
-                        repository = UDecoder.URLDecode(repository.substring(7), StandardCharsets.ISO_8859_1);
-                    else if (repository.startsWith("file:"))
-                        repository = UDecoder.URLDecode(repository.substring(5), StandardCharsets.ISO_8859_1);
-                    else
-                        continue;
-                    if (repository == null)
-                        continue;
-                    if (classpath.length() > 0)
-                        classpath.append(File.pathSeparator);
-                    classpath.append(repository);
-                }
+            for (URL url : repositories) {
+                String repository = url.toString();
+                if (repository.startsWith("file://"))
+                    repository = UDecoder.URLDecode(repository.substring(7), StandardCharsets.ISO_8859_1);
+                else if (repository.startsWith("file:"))
+                    repository = UDecoder.URLDecode(repository.substring(5), StandardCharsets.ISO_8859_1);
+                else
+                    continue;
+                if (repository == null)
+                    continue;
+                if (classpath.length() > 0)
+                    classpath.append(File.pathSeparator);
+                classpath.append(repository);
+            }
         } else if (loader == ClassLoader.getSystemClassLoader()){
             // Java 9 onwards. The internal class loaders no longer extend
             // URLCLassLoader
diff --git a/java/org/apache/catalina/manager/HTMLManagerServlet.java b/java/org/apache/catalina/manager/HTMLManagerServlet.java
index 1f247d6..5f40134 100644
--- a/java/org/apache/catalina/manager/HTMLManagerServlet.java
+++ b/java/org/apache/catalina/manager/HTMLManagerServlet.java
@@ -1009,10 +1009,9 @@ public final class HTMLManagerServlet extends ManagerServlet {
             return 0;
         }
         int nbAffectedSessions = 0;
-        for (int i = 0; i < sessionIds.length; ++i) {
-            String sessionId = sessionIds[i];
+        for (String sessionId : sessionIds) {
             HttpSession session =
-                getSessionForNameAndId(cn, sessionId, smClient).getSession();
+                    getSessionForNameAndId(cn, sessionId, smClient).getSession();
             if (null == session) {
                 // Shouldn't happen, but let's play nice...
                 if (debug >= 1) {
diff --git a/java/org/apache/catalina/manager/ManagerServlet.java b/java/org/apache/catalina/manager/ManagerServlet.java
index 41ca512..be6ce2d 100644
--- a/java/org/apache/catalina/manager/ManagerServlet.java
+++ b/java/org/apache/catalina/manager/ManagerServlet.java
@@ -1036,11 +1036,11 @@ public class ManagerServlet extends HttpServlet implements ContainerServlet {
         writer.println(smClient.getString("managerServlet.listed",
                                     host.getName()));
         Container[] contexts = host.findChildren();
-        for (int i = 0; i < contexts.length; i++) {
-            Context context = (Context) contexts[i];
-            if (context != null ) {
+        for (Container container : contexts) {
+            Context context = (Context) container;
+            if (context != null) {
                 String displayPath = context.getPath();
-                if( displayPath.equals("") )
+                if (displayPath.equals(""))
                     displayPath = "/";
                 if (context.getState().isAvailable()) {
                     writer.println(smClient.getString("managerServlet.listitem",
@@ -1286,13 +1286,13 @@ public class ManagerServlet extends HttpServlet implements ContainerServlet {
             int[] timeout = new int[maxCount + 1];
             int notimeout = 0;
             int expired = 0;
-            for (int i = 0; i < sessions.length; i++) {
-                int time = (int) (sessions[i].getIdleTimeInternal() / 1000L);
-                if (idle >= 0 && time >= idle*60) {
-                    sessions[i].expire();
+            for (Session session : sessions) {
+                int time = (int) (session.getIdleTimeInternal() / 1000L);
+                if (idle >= 0 && time >= idle * 60) {
+                    session.expire();
                     expired++;
                 }
-                time=time/60/histoInterval;
+                time = time / 60 / histoInterval;
                 if (time < 0)
                     notimeout++;
                 else if (time >= maxCount)
diff --git a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
index bba3159..3dd2c36 100644
--- a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
+++ b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
@@ -319,9 +319,8 @@ public final class HTMLHostManagerServlet extends HostManagerServlet {
 
         TreeMap<String,String> sortedHostNamesMap = new TreeMap<>();
 
-        for (int i = 0; i < hostNames.length; i++) {
-            String displayPath = hostNames[i];
-            sortedHostNamesMap.put(displayPath, hostNames[i]);
+        for (String displayPath : hostNames) {
+            sortedHostNamesMap.put(displayPath, displayPath);
         }
 
         String hostsStart =
diff --git a/java/org/apache/catalina/manager/host/HostManagerServlet.java b/java/org/apache/catalina/manager/host/HostManagerServlet.java
index f88b931..5f05f8e 100644
--- a/java/org/apache/catalina/manager/host/HostManagerServlet.java
+++ b/java/org/apache/catalina/manager/host/HostManagerServlet.java
@@ -518,8 +518,8 @@ public class HostManagerServlet
         writer.println(smClient.getString("hostManagerServlet.listed",
                 engine.getName()));
         Container[] hosts = engine.findChildren();
-        for (int i = 0; i < hosts.length; i++) {
-            Host host = (Host) hosts[i];
+        for (Container container : hosts) {
+            Host host = (Host) container;
             String name = host.getName();
             String[] aliases = host.findAliases();
             writer.println(smClient.getString("hostManagerServlet.listitem",
diff --git a/java/org/apache/catalina/manager/util/SessionUtils.java b/java/org/apache/catalina/manager/util/SessionUtils.java
index a28c06e..56ccfa4 100644
--- a/java/org/apache/catalina/manager/util/SessionUtils.java
+++ b/java/org/apache/catalina/manager/util/SessionUtils.java
@@ -85,18 +85,18 @@ public class SessionUtils {
             Locale locale = null;
 
             // First search "known locations"
-            for (int i = 0; i < LOCALE_TEST_ATTRIBUTES.length; ++i) {
-                Object obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i]);
+            for (String localeTestAttribute : LOCALE_TEST_ATTRIBUTES) {
+                Object obj = in_session.getAttribute(localeTestAttribute);
                 if (obj instanceof Locale) {
                     locale = (Locale) obj;
                     break;
                 }
-                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toLowerCase(Locale.ENGLISH));
+                obj = in_session.getAttribute(localeTestAttribute.toLowerCase(Locale.ENGLISH));
                 if (obj instanceof Locale) {
                     locale = (Locale) obj;
                     break;
                 }
-                obj = in_session.getAttribute(LOCALE_TEST_ATTRIBUTES[i].toUpperCase(Locale.ENGLISH));
+                obj = in_session.getAttribute(localeTestAttribute.toUpperCase(Locale.ENGLISH));
                 if (obj instanceof Locale) {
                     locale = (Locale) obj;
                     break;
@@ -180,18 +180,18 @@ public class SessionUtils {
         try {
             Object user = null;
             // First search "known locations"
-            for (int i = 0; i < USER_TEST_ATTRIBUTES.length; ++i) {
-                Object obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i]);
+            for (String userTestAttribute : USER_TEST_ATTRIBUTES) {
+                Object obj = httpSession.getAttribute(userTestAttribute);
                 if (null != obj) {
                     user = obj;
                     break;
                 }
-                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toLowerCase(Locale.ENGLISH));
+                obj = httpSession.getAttribute(userTestAttribute.toLowerCase(Locale.ENGLISH));
                 if (null != obj) {
                     user = obj;
                     break;
                 }
-                obj = httpSession.getAttribute(USER_TEST_ATTRIBUTES[i].toUpperCase(Locale.ENGLISH));
+                obj = httpSession.getAttribute(userTestAttribute.toUpperCase(Locale.ENGLISH));
                 if (null != obj) {
                     user = obj;
                     break;
diff --git a/java/org/apache/catalina/mapper/Mapper.java b/java/org/apache/catalina/mapper/Mapper.java
index 02dd2d1..d8f45df 100644
--- a/java/org/apache/catalina/mapper/Mapper.java
+++ b/java/org/apache/catalina/mapper/Mapper.java
@@ -554,8 +554,8 @@ public final class Mapper {
                 if (removeMap(oldWrappers, newWrappers, name)) {
                     // Recalculate nesting
                     context.nesting = 0;
-                    for (int i = 0; i < newWrappers.length; i++) {
-                        int slashCount = slashCount(newWrappers[i].name);
+                    for (MappedWrapper newWrapper : newWrappers) {
+                        int slashCount = slashCount(newWrapper.name);
                         if (slashCount > context.nesting) {
                             context.nesting = slashCount;
                         }
diff --git a/java/org/apache/catalina/mbeans/ContainerMBean.java b/java/org/apache/catalina/mbeans/ContainerMBean.java
index d696782..e8bc8c1 100644
--- a/java/org/apache/catalina/mbeans/ContainerMBean.java
+++ b/java/org/apache/catalina/mbeans/ContainerMBean.java
@@ -136,11 +136,11 @@ public class ContainerMBean extends BaseCatalinaMBean<ContainerBase> {
 
         if (container != null) {
             Valve[] valves = container.getPipeline().getValves();
-            for (int i = 0; i < valves.length; i++) {
-                if (valves[i] instanceof JmxEnabled) {
-                    ObjectName voname = ((JmxEnabled) valves[i]).getObjectName();
+            for (Valve valve : valves) {
+                if (valve instanceof JmxEnabled) {
+                    ObjectName voname = ((JmxEnabled) valve).getObjectName();
                     if (voname.equals(oname)) {
-                        container.getPipeline().removeValve(valves[i]);
+                        container.getPipeline().removeValve(valve);
                     }
                 }
             }
diff --git a/java/org/apache/catalina/mbeans/MBeanFactory.java b/java/org/apache/catalina/mbeans/MBeanFactory.java
index e3d781d..6e411d0 100644
--- a/java/org/apache/catalina/mbeans/MBeanFactory.java
+++ b/java/org/apache/catalina/mbeans/MBeanFactory.java
@@ -171,8 +171,8 @@ public class MBeanFactory {
         String domain = oname.getDomain();
         if (container instanceof Server) {
             Service[] services = ((Server)container).findServices();
-            for (int i = 0; i < services.length; i++) {
-                service = (StandardService) services[i];
+            for (Service value : services) {
+                service = (StandardService) value;
                 if (domain.equals(service.getObjectName().getDomain())) {
                     break;
                 }
@@ -729,25 +729,26 @@ public class MBeanFactory {
 
         Connector conns[] = service.findConnectors();
 
-        for (int i = 0; i < conns.length; i++) {
+        for (Connector conn : conns) {
             String connAddress = null;
-            Object objConnAddress = conns[i].getProperty("address");
+            Object objConnAddress = conn.getProperty("address");
             if (objConnAddress != null) {
                 connAddress = ((InetAddress) objConnAddress).getHostAddress();
             }
-            String connPort = ""+conns[i].getPort();
+            String connPort = "" + conn.getPort();
 
             if (address == null) {
                 // Don't combine this with outer if or we could get an NPE in
                 // 'else if' below
                 if (connAddress == null && port.equals(connPort)) {
-                    service.removeConnector(conns[i]);
-                    conns[i].destroy();
+                    service.removeConnector(conn);
+                    conn.destroy();
                     break;
                 }
-            } else if (address.equals(connAddress) && port.equals(connPort)) {
-                service.removeConnector(conns[i]);
-                conns[i].destroy();
+            }
+            else if (address.equals(connAddress) && port.equals(connPort)) {
+                service.removeConnector(conn);
+                conn.destroy();
                 break;
             }
         }
@@ -913,10 +914,10 @@ public class MBeanFactory {
         ObjectName oname = new ObjectName(name);
         Container container = getParentContainerFromChild(oname);
         Valve[] valves = container.getPipeline().getValves();
-        for (int i = 0; i < valves.length; i++) {
-            ObjectName voname = ((JmxEnabled) valves[i]).getObjectName();
+        for (Valve valve : valves) {
+            ObjectName voname = ((JmxEnabled) valve).getObjectName();
             if (voname.equals(oname)) {
-                container.getPipeline().removeValve(valves[i]);
+                container.getPipeline().removeValve(valve);
             }
         }
     }
diff --git a/java/org/apache/catalina/mbeans/MBeanUtils.java b/java/org/apache/catalina/mbeans/MBeanUtils.java
index 0992662..00f97d2 100644
--- a/java/org/apache/catalina/mbeans/MBeanUtils.java
+++ b/java/org/apache/catalina/mbeans/MBeanUtils.java
@@ -89,9 +89,9 @@ public class MBeanUtils {
 
         // Deal with exceptions to the standard rule
         String className = component.getClass().getName();
-        for (int i = 0; i < exceptions.length; i++) {
-            if (className.equals(exceptions[i][0])) {
-                return exceptions[i][1];
+        for (String[] exception : exceptions) {
+            if (className.equals(exception[0])) {
+                return exception[1];
             }
         }
 
diff --git a/java/org/apache/catalina/mbeans/NamingResourcesMBean.java b/java/org/apache/catalina/mbeans/NamingResourcesMBean.java
index 20696e2..79b4022 100644
--- a/java/org/apache/catalina/mbeans/NamingResourcesMBean.java
+++ b/java/org/apache/catalina/mbeans/NamingResourcesMBean.java
@@ -17,6 +17,7 @@
 package org.apache.catalina.mbeans;
 
 import java.util.ArrayList;
+import java.util.List;
 
 import javax.management.MalformedObjectNameException;
 import javax.management.ObjectName;
@@ -60,14 +61,14 @@ public class NamingResourcesMBean extends BaseModelMBean {
      */
     public String[] getEnvironments() {
         ContextEnvironment[] envs = ((NamingResourcesImpl)this.resource).findEnvironments();
-        ArrayList<String> results = new ArrayList<>();
-        for (int i = 0; i < envs.length; i++) {
+        List<String> results = new ArrayList<>();
+        for (ContextEnvironment env : envs) {
             try {
-                ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), envs[i]);
+                ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), env);
                 results.add(oname.toString());
             } catch (MalformedObjectNameException e) {
                 IllegalArgumentException iae = new IllegalArgumentException (
-                        "Cannot create object name for environment " + envs[i]);
+                        "Cannot create object name for environment " + env);
                 iae.initCause(e);
                 throw iae;
             }
@@ -83,14 +84,14 @@ public class NamingResourcesMBean extends BaseModelMBean {
      */
     public String[] getResources() {
         ContextResource[] resources = ((NamingResourcesImpl)this.resource).findResources();
-        ArrayList<String> results = new ArrayList<>();
-        for (int i = 0; i < resources.length; i++) {
+        List<String> results = new ArrayList<>();
+        for (ContextResource contextResource : resources) {
             try {
-                ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), resources[i]);
+                ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), contextResource);
                 results.add(oname.toString());
             } catch (MalformedObjectNameException e) {
                 IllegalArgumentException iae = new IllegalArgumentException(
-                        "Cannot create object name for resource " + resources[i]);
+                        "Cannot create object name for resource " + contextResource);
                 iae.initCause(e);
                 throw iae;
             }
@@ -107,15 +108,15 @@ public class NamingResourcesMBean extends BaseModelMBean {
     public String[] getResourceLinks() {
         ContextResourceLink[] resourceLinks =
                 ((NamingResourcesImpl)this.resource).findResourceLinks();
-        ArrayList<String> results = new ArrayList<>();
-        for (int i = 0; i < resourceLinks.length; i++) {
+        List<String> results = new ArrayList<>();
+        for (ContextResourceLink resourceLink : resourceLinks) {
             try {
                 ObjectName oname =
-                        MBeanUtils.createObjectName(managed.getDomain(), resourceLinks[i]);
+                        MBeanUtils.createObjectName(managed.getDomain(), resourceLink);
                 results.add(oname.toString());
             } catch (MalformedObjectNameException e) {
                 IllegalArgumentException iae = new IllegalArgumentException(
-                        "Cannot create object name for resource " + resourceLinks[i]);
+                        "Cannot create object name for resource " + resourceLink);
                 iae.initCause(e);
                 throw iae;
             }
diff --git a/java/org/apache/catalina/realm/GenericPrincipal.java b/java/org/apache/catalina/realm/GenericPrincipal.java
index 70e124e..db68955 100644
--- a/java/org/apache/catalina/realm/GenericPrincipal.java
+++ b/java/org/apache/catalina/realm/GenericPrincipal.java
@@ -220,8 +220,8 @@ public class GenericPrincipal implements TomcatPrincipal, Serializable {
         StringBuilder sb = new StringBuilder("GenericPrincipal[");
         sb.append(this.name);
         sb.append("(");
-        for (int i = 0; i < roles.length; i++ ) {
-            sb.append( roles[i]).append(",");
+        for (String role : roles) {
+            sb.append(role).append(",");
         }
         sb.append(")]");
         return sb.toString();
diff --git a/java/org/apache/catalina/realm/JAASCallbackHandler.java b/java/org/apache/catalina/realm/JAASCallbackHandler.java
index 3b439ce..9c4a3a3 100644
--- a/java/org/apache/catalina/realm/JAASCallbackHandler.java
+++ b/java/org/apache/catalina/realm/JAASCallbackHandler.java
@@ -92,8 +92,7 @@ public class JAASCallbackHandler implements CallbackHandler {
 
         if (realm.hasMessageDigest()) {
             this.password = realm.getCredentialHandler().mutate(password);
-        }
-        else {
+        } else {
             this.password = password;
         }
         this.nonce = nonce;
@@ -183,44 +182,53 @@ public class JAASCallbackHandler implements CallbackHandler {
     public void handle(Callback callbacks[])
         throws IOException, UnsupportedCallbackException {
 
-        for (int i = 0; i < callbacks.length; i++) {
+        for (Callback callback : callbacks) {
 
-            if (callbacks[i] instanceof NameCallback) {
+            if (callback instanceof NameCallback) {
                 if (realm.getContainer().getLogger().isTraceEnabled())
                     realm.getContainer().getLogger().trace(sm.getString("jaasCallback.username", username));
-                ((NameCallback) callbacks[i]).setName(username);
-            } else if (callbacks[i] instanceof PasswordCallback) {
+                ((NameCallback) callback).setName(username);
+            }
+            else if (callback instanceof PasswordCallback) {
                 final char[] passwordcontents;
                 if (password != null) {
                     passwordcontents = password.toCharArray();
                 } else {
                     passwordcontents = new char[0];
                 }
-                ((PasswordCallback) callbacks[i]).setPassword
-                    (passwordcontents);
-            } else if (callbacks[i] instanceof TextInputCallback) {
-                TextInputCallback cb = ((TextInputCallback) callbacks[i]);
+                ((PasswordCallback) callback).setPassword
+                        (passwordcontents);
+            }
+            else if (callback instanceof TextInputCallback) {
+                TextInputCallback cb = ((TextInputCallback) callback);
                 if (cb.getPrompt().equals("nonce")) {
                     cb.setText(nonce);
-                } else if (cb.getPrompt().equals("nc")) {
+                }
+                else if (cb.getPrompt().equals("nc")) {
                     cb.setText(nc);
-                } else if (cb.getPrompt().equals("cnonce")) {
+                }
+                else if (cb.getPrompt().equals("cnonce")) {
                     cb.setText(cnonce);
-                } else if (cb.getPrompt().equals("qop")) {
+                }
+                else if (cb.getPrompt().equals("qop")) {
                     cb.setText(qop);
-                } else if (cb.getPrompt().equals("realmName")) {
+                }
+                else if (cb.getPrompt().equals("realmName")) {
                     cb.setText(realmName);
-                } else if (cb.getPrompt().equals("md5a2")) {
+                }
+                else if (cb.getPrompt().equals("md5a2")) {
                     cb.setText(md5a2);
-                } else if (cb.getPrompt().equals("authMethod")) {
+                }
+                else if (cb.getPrompt().equals("authMethod")) {
                     cb.setText(authMethod);
-                } else if (cb.getPrompt().equals("catalinaBase")) {
+                }
+                else if (cb.getPrompt().equals("catalinaBase")) {
                     cb.setText(realm.getContainer().getCatalinaBase().getAbsolutePath());
                 } else {
-                    throw new UnsupportedCallbackException(callbacks[i]);
+                    throw new UnsupportedCallbackException(callback);
                 }
             } else {
-                throw new UnsupportedCallbackException(callbacks[i]);
+                throw new UnsupportedCallbackException(callback);
             }
         }
     }
diff --git a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
index fa3735a..8dc4fa4 100644
--- a/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
+++ b/java/org/apache/catalina/realm/JAASMemoryLoginModule.java
@@ -195,8 +195,8 @@ public class JAASMemoryLoginModule extends MemoryRealm implements LoginModule {
             // JAASRealm
             if (principal instanceof GenericPrincipal) {
                 String roles[] = ((GenericPrincipal) principal).getRoles();
-                for (int i = 0; i < roles.length; i++) {
-                    subject.getPrincipals().add(new GenericPrincipal(roles[i], null, null));
+                for (String role : roles) {
+                    subject.getPrincipals().add(new GenericPrincipal(role, null, null));
                 }
 
             }
diff --git a/java/org/apache/catalina/realm/JAASRealm.java b/java/org/apache/catalina/realm/JAASRealm.java
index a62fd9a..77d3d58 100644
--- a/java/org/apache/catalina/realm/JAASRealm.java
+++ b/java/org/apache/catalina/realm/JAASRealm.java
@@ -287,19 +287,19 @@ public class JAASRealm extends RealmBase {
             loader = Thread.currentThread().getContextClassLoader();
 
         String[] classNames = classNamesString.split("[ ]*,[ ]*");
-        for (int i=0; i<classNames.length; i++) {
-            if (classNames[i].length()==0) continue;
+        for (String className : classNames) {
+            if (className.length() == 0) continue;
             try {
-                Class<?> principalClass = Class.forName(classNames[i], false,
+                Class<?> principalClass = Class.forName(className, false,
                         loader);
                 if (Principal.class.isAssignableFrom(principalClass)) {
-                    classNamesList.add(classNames[i]);
+                    classNamesList.add(className);
                 } else {
-                    log.error("Class "+classNames[i]+" is not implementing "+
+                    log.error("Class " + className + " is not implementing "+
                             "java.security.Principal! Class not added.");
                 }
             } catch (ClassNotFoundException e) {
-                log.error("Class "+classNames[i]+" not found! Class not added.");
+                log.error("Class " + className + " not found! Class not added.");
             }
         }
     }
diff --git a/java/org/apache/catalina/realm/JNDIRealm.java b/java/org/apache/catalina/realm/JNDIRealm.java
index 387198b..a9565dc 100644
--- a/java/org/apache/catalina/realm/JNDIRealm.java
+++ b/java/org/apache/catalina/realm/JNDIRealm.java
@@ -1676,8 +1676,7 @@ public class JNDIRealm extends RealmBase {
 
         if (userSubtree) {
             constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
-        }
-        else {
+        } else {
             constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
         }
 
@@ -1908,8 +1907,7 @@ public class JNDIRealm extends RealmBase {
         if (connectionPassword != null) {
             context.addToEnvironment(Context.SECURITY_CREDENTIALS,
                                      connectionPassword);
-        }
-        else {
+        } else {
             context.removeFromEnvironment(Context.SECURITY_CREDENTIALS);
         }
     }
diff --git a/java/org/apache/catalina/realm/RealmBase.java b/java/org/apache/catalina/realm/RealmBase.java
index aa42f3a..615928b 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -448,12 +448,12 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
         if (log.isDebugEnabled())
             log.debug("Authenticating client certificate chain");
         if (validate) {
-            for (int i = 0; i < certs.length; i++) {
+            for (X509Certificate cert : certs) {
                 if (log.isDebugEnabled())
                     log.debug(" Checking validity for '" +
-                        certs[i].getSubjectDN().getName() + "'");
+                            cert.getSubjectDN().getName() + "'");
                 try {
-                    certs[i].checkValidity();
+                    cert.checkValidity();
                 } catch (Exception e) {
                     if (log.isDebugEnabled())
                         log.debug("  Validity exception", e);
@@ -579,21 +579,21 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                     constraints[i].included(uri, method));
             }
 
-            for(int j=0; j < collection.length; j++){
-                String [] patterns = collection[j].findPatterns();
+            for (SecurityCollection securityCollection : collection) {
+                String[] patterns = securityCollection.findPatterns();
 
                 // If patterns is null, continue to avoid an NPE
                 // See Bugzilla 30624
-                if ( patterns == null) {
+                if (patterns == null) {
                     continue;
                 }
 
-                for(int k=0; k < patterns.length; k++) {
+                for (String pattern : patterns) {
                     // Exact match including special case for the context root.
-                    if(uri.equals(patterns[k]) || patterns[k].length() == 0 && uri.equals("/")) {
+                    if (uri.equals(pattern) || pattern.length() == 0 && uri.equals("/")) {
                         found = true;
-                        if(collection[j].findMethod(method)) {
-                            if(results == null) {
+                        if (securityCollection.findMethod(method)) {
+                            if (results == null) {
                                 results = new ArrayList<>();
                             }
                             results.add(constraints[i]);
@@ -624,46 +624,46 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                     constraints[i].included(uri, method));
             }
 
-            for(int j=0; j < collection.length; j++){
-                String [] patterns = collection[j].findPatterns();
+            for (SecurityCollection securityCollection : collection) {
+                String[] patterns = securityCollection.findPatterns();
 
                 // If patterns is null, continue to avoid an NPE
                 // See Bugzilla 30624
-                if ( patterns == null) {
+                if (patterns == null) {
                     continue;
                 }
 
                 boolean matched = false;
                 int length = -1;
-                for(int k=0; k < patterns.length; k++) {
-                    String pattern = patterns[k];
-                    if(pattern.startsWith("/") && pattern.endsWith("/*") &&
-                       pattern.length() >= longest) {
+                for (String pattern : patterns) {
+                    if (pattern.startsWith("/") && pattern.endsWith("/*") &&
+                            pattern.length() >= longest) {
 
-                        if(pattern.length() == 2) {
+                        if (pattern.length() == 2) {
                             matched = true;
                             length = pattern.length();
-                        } else if(pattern.regionMatches(0,uri,0,
-                                                        pattern.length()-1) ||
-                                  (pattern.length()-2 == uri.length() &&
-                                   pattern.regionMatches(0,uri,0,
-                                                        pattern.length()-2))) {
+                        }
+                        else if (pattern.regionMatches(0, uri, 0,
+                                pattern.length() - 1) ||
+                                (pattern.length() - 2 == uri.length() &&
+                                        pattern.regionMatches(0, uri, 0,
+                                                pattern.length() - 2))) {
                             matched = true;
                             length = pattern.length();
                         }
                     }
                 }
-                if(matched) {
-                    if(length > longest) {
+                if (matched) {
+                    if (length > longest) {
                         found = false;
-                        if(results != null) {
+                        if (results != null) {
                             results.clear();
                         }
                         longest = length;
                     }
-                    if(collection[j].findMethod(method)) {
+                    if (securityCollection.findMethod(method)) {
                         found = true;
-                        if(results == null) {
+                        if (results == null) {
                             results = new ArrayList<>();
                         }
                         results.add(constraints[i]);
@@ -748,25 +748,24 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                     constraints[i].included(uri, method));
             }
 
-            for(int j=0; j < collection.length; j++){
-                String [] patterns = collection[j].findPatterns();
+            for (SecurityCollection securityCollection : collection) {
+                String[] patterns = securityCollection.findPatterns();
 
                 // If patterns is null, continue to avoid an NPE
                 // See Bugzilla 30624
-                if ( patterns == null) {
+                if (patterns == null) {
                     continue;
                 }
 
                 boolean matched = false;
-                for(int k = 0; k < patterns.length; k++) {
-                    String pattern = patterns[k];
+                for (String pattern : patterns) {
                     if (pattern.equals("/")) {
                         matched = true;
                         break;
                     }
                 }
-                if(matched) {
-                    if(results == null) {
+                if (matched) {
+                    if (results == null) {
                         results = new ArrayList<>();
                     }
                     results.add(constraints[i]);
@@ -822,9 +821,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
         Principal principal = request.getPrincipal();
         boolean status = false;
         boolean denyfromall = false;
-        for(int i=0; i < constraints.length; i++) {
-            SecurityConstraint constraint = constraints[i];
-
+        for (SecurityConstraint constraint : constraints) {
             String roles[];
             if (constraint.getAllRoles()) {
                 // * means all roles defined in web.xml
@@ -844,31 +841,33 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                     log.debug("Passing all authenticated users");
                 }
                 status = true;
-            } else if (roles.length == 0 && !constraint.getAllRoles() &&
+            }
+            else if (roles.length == 0 && !constraint.getAllRoles() &&
                     !constraint.getAuthenticatedUsers()) {
-                if(constraint.getAuthConstraint()) {
-                    if( log.isDebugEnabled() )
+                if (constraint.getAuthConstraint()) {
+                    if (log.isDebugEnabled())
                         log.debug("No roles");
                     status = false; // No listed roles means no access at all
                     denyfromall = true;
                     break;
                 }
 
-                if(log.isDebugEnabled())
+                if (log.isDebugEnabled())
                     log.debug("Passing all access");
                 status = true;
-            } else if (principal == null) {
+            }
+            else if (principal == null) {
                 if (log.isDebugEnabled())
                     log.debug("  No user authenticated, cannot grant access");
             } else {
-                for (int j = 0; j < roles.length; j++) {
-                    if (hasRole(request.getWrapper(), principal, roles[j])) {
+                for (String role : roles) {
+                    if (hasRole(request.getWrapper(), principal, role)) {
                         status = true;
-                        if( log.isDebugEnabled() )
-                            log.debug( "Role found:  " + roles[j]);
+                        if (log.isDebugEnabled())
+                            log.debug("Role found:  " + role);
                     }
-                    else if( log.isDebugEnabled() )
-                        log.debug( "No role found:  " + roles[j]);
+                    else if (log.isDebugEnabled())
+                        log.debug("No role found:  " + role);
                 }
             }
         }
@@ -879,8 +878,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                 log.debug("Checking for all roles mode: " + allRolesMode);
             }
             // Check for an all roles(role-name="*")
-            for (int i = 0; i < constraints.length; i++) {
-                SecurityConstraint constraint = constraints[i];
+            for (SecurityConstraint constraint : constraints) {
                 String roles[];
                 // If the all roles mode exists, sets
                 if (constraint.getAllRoles()) {
@@ -1004,8 +1002,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                 log.debug("  No applicable security constraint defined");
             return true;
         }
-        for(int i=0; i < constraints.length; i++) {
-            SecurityConstraint constraint = constraints[i];
+        for (SecurityConstraint constraint : constraints) {
             String userConstraint = constraint.getUserConstraint();
             if (userConstraint == null) {
                 if (log.isDebugEnabled())
diff --git a/java/org/apache/catalina/session/FileStore.java b/java/org/apache/catalina/session/FileStore.java
index ee5d298..066d603 100644
--- a/java/org/apache/catalina/session/FileStore.java
+++ b/java/org/apache/catalina/session/FileStore.java
@@ -156,8 +156,8 @@ public final class FileStore extends StoreBase {
     @Override
     public void clear() throws IOException {
         String[] keys = keys();
-        for (int i = 0; i < keys.length; i++) {
-            remove(keys[i]);
+        for (String key : keys) {
+            remove(key);
         }
     }
 
diff --git a/java/org/apache/catalina/session/ManagerBase.java b/java/org/apache/catalina/session/ManagerBase.java
index ebee3f7..b1aa95a 100644
--- a/java/org/apache/catalina/session/ManagerBase.java
+++ b/java/org/apache/catalina/session/ManagerBase.java
@@ -572,8 +572,8 @@ public abstract class ManagerBase extends LifecycleMBeanBase implements Manager
 
         if(log.isDebugEnabled())
             log.debug("Start expire sessions " + getName() + " at " + timeNow + " sessioncount " + sessions.length);
-        for (int i = 0; i < sessions.length; i++) {
-            if (sessions[i]!=null && !sessions[i].isValid()) {
+        for (Session session : sessions) {
+            if (session != null && !session.isValid()) {
                 expireHere++;
             }
         }
diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java b/java/org/apache/catalina/session/PersistentManagerBase.java
index e83fcf2..2b9b92d 100644
--- a/java/org/apache/catalina/session/PersistentManagerBase.java
+++ b/java/org/apache/catalina/session/PersistentManagerBase.java
@@ -429,8 +429,8 @@ public abstract class PersistentManagerBase extends ManagerBase
         int expireHere = 0 ;
         if(log.isDebugEnabled())
              log.debug("Start expire sessions " + getName() + " at " + timeNow + " sessioncount " + sessions.length);
-        for (int i = 0; i < sessions.length; i++) {
-            if (!sessions[i].isValid()) {
+        for (Session session : sessions) {
+            if (!session.isValid()) {
                 expiredSessions.incrementAndGet();
                 expireHere++;
             }
@@ -553,9 +553,9 @@ public abstract class PersistentManagerBase extends ManagerBase
         if (log.isDebugEnabled())
             log.debug(sm.getString("persistentManager.loading", String.valueOf(n)));
 
-        for (int i = 0; i < n; i++)
+        for (String id : ids)
             try {
-                swapIn(ids[i]);
+                swapIn(id);
             } catch (IOException e) {
                 log.error("Failed load session from store, " + e.getMessage(), e);
             }
@@ -627,9 +627,9 @@ public abstract class PersistentManagerBase extends ManagerBase
             log.debug(sm.getString("persistentManager.unloading",
                              String.valueOf(n)));
 
-        for (int i = 0; i < n; i++)
+        for (Session session : sessions)
             try {
-                swapOut(sessions[i]);
+                swapOut(session);
             } catch (IOException e) {
                 // This is logged in writeSession()
             }
@@ -893,8 +893,8 @@ public abstract class PersistentManagerBase extends ManagerBase
         } else {
             // Expire all active sessions
             Session sessions[] = findSessions();
-            for (int i = 0; i < sessions.length; i++) {
-                StandardSession session = (StandardSession) sessions[i];
+            for (Session value : sessions) {
+                StandardSession session = (StandardSession) value;
                 if (!session.isValid())
                     continue;
                 session.expire();
@@ -925,8 +925,8 @@ public abstract class PersistentManagerBase extends ManagerBase
 
         // Swap out all sessions idle longer than maxIdleSwap
         if (maxIdleSwap >= 0) {
-            for (int i = 0; i < sessions.length; i++) {
-                StandardSession session = (StandardSession) sessions[i];
+            for (Session value : sessions) {
+                StandardSession session = (StandardSession) value;
                 synchronized (session) {
                     if (!session.isValid())
                         continue;
@@ -939,9 +939,9 @@ public abstract class PersistentManagerBase extends ManagerBase
                         }
                         if (log.isDebugEnabled())
                             log.debug(sm.getString
-                                ("persistentManager.swapMaxIdle",
-                                 session.getIdInternal(),
-                                 Integer.valueOf(timeIdle)));
+                                    ("persistentManager.swapMaxIdle",
+                                            session.getIdInternal(),
+                                            Integer.valueOf(timeIdle)));
                         try {
                             swapOut(session);
                         } catch (IOException e) {
@@ -1019,8 +1019,8 @@ public abstract class PersistentManagerBase extends ManagerBase
 
         // Back up all sessions idle longer than maxIdleBackup
         if (maxIdleBackup >= 0) {
-            for (int i = 0; i < sessions.length; i++) {
-                StandardSession session = (StandardSession) sessions[i];
+            for (Session value : sessions) {
+                StandardSession session = (StandardSession) value;
                 synchronized (session) {
                     if (!session.isValid())
                         continue;
@@ -1034,9 +1034,9 @@ public abstract class PersistentManagerBase extends ManagerBase
                     if (timeIdle >= maxIdleBackup) {
                         if (log.isDebugEnabled())
                             log.debug(sm.getString
-                                ("persistentManager.backupMaxIdle",
-                                session.getIdInternal(),
-                                Integer.valueOf(timeIdle)));
+                                    ("persistentManager.backupMaxIdle",
+                                            session.getIdInternal(),
+                                            Integer.valueOf(timeIdle)));
 
                         try {
                             writeSession(session);
diff --git a/java/org/apache/catalina/session/StandardManager.java b/java/org/apache/catalina/session/StandardManager.java
index caef4f5..de732cc 100644
--- a/java/org/apache/catalina/session/StandardManager.java
+++ b/java/org/apache/catalina/session/StandardManager.java
@@ -387,8 +387,7 @@ public class StandardManager extends ManagerBase {
 
         // Expire all active sessions
         Session sessions[] = findSessions();
-        for (int i = 0; i < sessions.length; i++) {
-            Session session = sessions[i];
+        for (Session session : sessions) {
             try {
                 if (session.isValid()) {
                     session.expire();
diff --git a/java/org/apache/catalina/session/StandardSession.java b/java/org/apache/catalina/session/StandardSession.java
index 34012d9..a64d42a 100644
--- a/java/org/apache/catalina/session/StandardSession.java
+++ b/java/org/apache/catalina/session/StandardSession.java
@@ -378,11 +378,11 @@ public class StandardSession implements HttpSession, Session, Serializable {
         if (listeners != null && listeners.length > 0) {
             HttpSessionEvent event =
                 new HttpSessionEvent(getSession());
-            for (int i = 0; i < listeners.length; i++) {
-                if (!(listeners[i] instanceof HttpSessionListener))
+            for (Object o : listeners) {
+                if (!(o instanceof HttpSessionListener))
                     continue;
                 HttpSessionListener listener =
-                    (HttpSessionListener) listeners[i];
+                        (HttpSessionListener) o;
                 try {
                     context.fireContainerEvent("beforeSessionCreated",
                             listener);
@@ -397,7 +397,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
                         // Ignore
                     }
                     manager.getContext().getLogger().error
-                        (sm.getString("standardSession.sessionEvent"), t);
+                            (sm.getString("standardSession.sessionEvent"), t);
                 }
             }
         }
@@ -862,8 +862,8 @@ public class StandardSession implements HttpSession, Session, Serializable {
             ClassLoader oldContextClassLoader = null;
             try {
                 oldContextClassLoader = context.bind(Globals.IS_SECURITY_ENABLED, null);
-                for (int i = 0; i < keys.length; i++) {
-                    removeAttributeInternal(keys[i], notify);
+                for (String key : keys) {
+                    removeAttributeInternal(key, notify);
                 }
             } finally {
                 context.unbind(Globals.IS_SECURITY_ENABLED, oldContextClassLoader);
@@ -885,18 +885,18 @@ public class StandardSession implements HttpSession, Session, Serializable {
         // Notify ActivationListeners
         HttpSessionEvent event = null;
         String keys[] = keys();
-        for (int i = 0; i < keys.length; i++) {
-            Object attribute = attributes.get(keys[i]);
+        for (String key : keys) {
+            Object attribute = attributes.get(key);
             if (attribute instanceof HttpSessionActivationListener) {
                 if (event == null)
                     event = new HttpSessionEvent(getSession());
                 try {
-                    ((HttpSessionActivationListener)attribute)
-                        .sessionWillPassivate(event);
+                    ((HttpSessionActivationListener) attribute)
+                            .sessionWillPassivate(event);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
                     manager.getContext().getLogger().error
-                        (sm.getString("standardSession.attributeEvent"), t);
+                            (sm.getString("standardSession.attributeEvent"), t);
                 }
             }
         }
@@ -921,18 +921,18 @@ public class StandardSession implements HttpSession, Session, Serializable {
         // Notify ActivationListeners
         HttpSessionEvent event = null;
         String keys[] = keys();
-        for (int i = 0; i < keys.length; i++) {
-            Object attribute = attributes.get(keys[i]);
+        for (String key : keys) {
+            Object attribute = attributes.get(key);
             if (attribute instanceof HttpSessionActivationListener) {
                 if (event == null)
                     event = new HttpSessionEvent(getSession());
                 try {
-                    ((HttpSessionActivationListener)attribute)
-                        .sessionDidActivate(event);
+                    ((HttpSessionActivationListener) attribute)
+                            .sessionDidActivate(event);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
                     manager.getContext().getLogger().error
-                        (sm.getString("standardSession.attributeEvent"), t);
+                            (sm.getString("standardSession.attributeEvent"), t);
                 }
             }
         }
@@ -1464,13 +1464,14 @@ public class StandardSession implements HttpSession, Session, Serializable {
         // Notify interested application event listeners
         Context context = manager.getContext();
         Object listeners[] = context.getApplicationEventListeners();
-        if (listeners == null)
+        if (listeners == null) {
             return;
-        for (int i = 0; i < listeners.length; i++) {
-            if (!(listeners[i] instanceof HttpSessionAttributeListener))
+        }
+        for (Object o : listeners) {
+            if (!(o instanceof HttpSessionAttributeListener)) {
                 continue;
-            HttpSessionAttributeListener listener =
-                (HttpSessionAttributeListener) listeners[i];
+            }
+            HttpSessionAttributeListener listener = (HttpSessionAttributeListener) o;
             try {
                 if (unbound != null) {
                     context.fireContainerEvent("beforeSessionAttributeReplaced",
@@ -1693,17 +1694,18 @@ public class StandardSession implements HttpSession, Session, Serializable {
 
         // Accumulate the names of serializable and non-serializable attributes
         String keys[] = keys();
-        ArrayList<String> saveNames = new ArrayList<>();
-        ArrayList<Object> saveValues = new ArrayList<>();
-        for (int i = 0; i < keys.length; i++) {
-            Object value = attributes.get(keys[i]);
+        List<String> saveNames = new ArrayList<>();
+        List<Object> saveValues = new ArrayList<>();
+        for (String key : keys) {
+            Object value = attributes.get(key);
             if (value == null) {
                 continue;
-            } else if (isAttributeDistributable(keys[i], value) && !exclude(keys[i], value)) {
-                saveNames.add(keys[i]);
+            }
+            else if (isAttributeDistributable(key, value) && !exclude(key, value)) {
+                saveNames.add(key);
                 saveValues.add(value);
             } else {
-                removeAttributeInternal(keys[i], true);
+                removeAttributeInternal(key, true);
             }
         }
 
@@ -1793,8 +1795,8 @@ public class StandardSession implements HttpSession, Session, Serializable {
             list = listeners.toArray(list);
         }
 
-        for (int i = 0; i < list.length; i++){
-            (list[i]).sessionEvent(event);
+        for (SessionListener sessionListener : list) {
+            sessionListener.sessionEvent(event);
         }
 
     }
@@ -1850,17 +1852,17 @@ public class StandardSession implements HttpSession, Session, Serializable {
         Object listeners[] = context.getApplicationEventListeners();
         if (listeners == null)
             return;
-        for (int i = 0; i < listeners.length; i++) {
-            if (!(listeners[i] instanceof HttpSessionAttributeListener))
+        for (Object o : listeners) {
+            if (!(o instanceof HttpSessionAttributeListener))
                 continue;
             HttpSessionAttributeListener listener =
-                (HttpSessionAttributeListener) listeners[i];
+                    (HttpSessionAttributeListener) o;
             try {
                 context.fireContainerEvent("beforeSessionAttributeRemoved",
                         listener);
                 if (event == null) {
                     event = new HttpSessionBindingEvent
-                        (getSession(), name, value);
+                            (getSession(), name, value);
                 }
                 listener.attributeRemoved(event);
                 context.fireContainerEvent("afterSessionAttributeRemoved",
@@ -1874,7 +1876,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
                     // Ignore
                 }
                 manager.getContext().getLogger().error
-                    (sm.getString("standardSession.attributeEvent"), t);
+                        (sm.getString("standardSession.attributeEvent"), t);
             }
         }
 
diff --git a/java/org/apache/catalina/session/StoreBase.java b/java/org/apache/catalina/session/StoreBase.java
index 09c88e0..1bc0bad 100644
--- a/java/org/apache/catalina/session/StoreBase.java
+++ b/java/org/apache/catalina/session/StoreBase.java
@@ -153,9 +153,9 @@ public abstract class StoreBase extends LifecycleBase implements Store {
 
         long timeNow = System.currentTimeMillis();
 
-        for (int i = 0; i < keys.length; i++) {
+        for (String key : keys) {
             try {
-                StandardSession session = (StandardSession) load(keys[i]);
+                StandardSession session = (StandardSession) load(key);
                 if (session == null) {
                     continue;
                 }
@@ -164,14 +164,14 @@ public abstract class StoreBase extends LifecycleBase implements Store {
                     continue;
                 }
                 if (manager.getContext().getLogger().isDebugEnabled()) {
-                    manager.getContext().getLogger().debug(getStoreName()+ ": processExpires expire store session " + keys[i] );
+                    manager.getContext().getLogger().debug(getStoreName() + ": processExpires expire store session " + key);
                 }
                 boolean isLoaded = false;
                 if (manager instanceof PersistentManagerBase) {
-                    isLoaded = ((PersistentManagerBase) manager).isLoaded(keys[i]);
+                    isLoaded = ((PersistentManagerBase) manager).isLoaded(key);
                 } else {
                     try {
-                        if (manager.findSession(keys[i]) != null) {
+                        if (manager.findSession(key) != null) {
                             isLoaded = true;
                         }
                     } catch (IOException ioe) {
@@ -185,11 +185,11 @@ public abstract class StoreBase extends LifecycleBase implements Store {
                     // expire swapped out session
                     session.expire();
                 }
-                remove(keys[i]);
+                remove(key);
             } catch (Exception e) {
-                manager.getContext().getLogger().error("Session: "+keys[i]+"; ", e);
+                manager.getContext().getLogger().error("Session: " + key + "; ", e);
                 try {
-                    remove(keys[i]);
+                    remove(key);
                 } catch (IOException e2) {
                     manager.getContext().getLogger().error("Error removing key", e2);
                 }
diff --git a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
index 8997ebb..863a9d2 100644
--- a/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
+++ b/java/org/apache/catalina/ssi/SSIServletExternalResolver.java
@@ -91,8 +91,7 @@ public class SSIServletExternalResolver implements SSIExternalResolver {
 
     @Override
     public void addVariableNames(Collection<String> variableNames) {
-        for (int i = 0; i < VARIABLE_NAMES.length; i++) {
-            String variableName = VARIABLE_NAMES[i];
+        for (String variableName : VARIABLE_NAMES) {
             String variableValue = getVariableValue(variableName);
             if (variableValue != null) {
                 variableNames.add(variableName);
diff --git a/java/org/apache/catalina/startup/Catalina.java b/java/org/apache/catalina/startup/Catalina.java
index e295a6e..099d305 100644
--- a/java/org/apache/catalina/startup/Catalina.java
+++ b/java/org/apache/catalina/startup/Catalina.java
@@ -228,22 +228,28 @@ public class Catalina {
             return false;
         }
 
-        for (int i = 0; i < args.length; i++) {
+        for (String arg : args) {
             if (isConfig) {
-                configFile = args[i];
+                configFile = arg;
                 isConfig = false;
-            } else if (args[i].equals("-config")) {
+            }
+            else if (arg.equals("-config")) {
                 isConfig = true;
-            } else if (args[i].equals("-nonaming")) {
+            }
+            else if (arg.equals("-nonaming")) {
                 setUseNaming(false);
-            } else if (args[i].equals("-help")) {
+            }
+            else if (arg.equals("-help")) {
                 usage();
                 return false;
-            } else if (args[i].equals("start")) {
+            }
+            else if (arg.equals("start")) {
                 // NOOP
-            } else if (args[i].equals("configtest")) {
+            }
+            else if (arg.equals("configtest")) {
                 // NOOP
-            } else if (args[i].equals("stop")) {
+            }
+            else if (arg.equals("stop")) {
                 // NOOP
             } else {
                 usage();
diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java b/java/org/apache/catalina/startup/ClassLoaderFactory.java
index aacc9f3..7a35dd6 100644
--- a/java/org/apache/catalina/startup/ClassLoaderFactory.java
+++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java
@@ -85,8 +85,8 @@ public final class ClassLoaderFactory {
 
         // Add unpacked directories
         if (unpacked != null) {
-            for (int i = 0; i < unpacked.length; i++)  {
-                File file = unpacked[i];
+            for (File value : unpacked) {
+                File file = value;
                 if (!file.canRead())
                     continue;
                 file = new File(file.getCanonicalPath() + File.separator);
@@ -99,19 +99,18 @@ public final class ClassLoaderFactory {
 
         // Add packed directory JAR files
         if (packed != null) {
-            for (int i = 0; i < packed.length; i++) {
-                File directory = packed[i];
+            for (File directory : packed) {
                 if (!directory.isDirectory() || !directory.canRead())
                     continue;
                 String filenames[] = directory.list();
                 if (filenames == null) {
                     continue;
                 }
-                for (int j = 0; j < filenames.length; j++) {
-                    String filename = filenames[j].toLowerCase(Locale.ENGLISH);
+                for (String s : filenames) {
+                    String filename = s.toLowerCase(Locale.ENGLISH);
                     if (!filename.endsWith(".jar"))
                         continue;
-                    File file = new File(directory, filenames[j]);
+                    File file = new File(directory, s);
                     if (log.isDebugEnabled())
                         log.debug("  Including jar file " + file.getAbsolutePath());
                     URL url = file.toURI().toURL();
@@ -198,18 +197,18 @@ public final class ClassLoaderFactory {
                     if (filenames == null) {
                         continue;
                     }
-                    for (int j = 0; j < filenames.length; j++) {
-                        String filename = filenames[j].toLowerCase(Locale.ENGLISH);
+                    for (String s : filenames) {
+                        String filename = s.toLowerCase(Locale.ENGLISH);
                         if (!filename.endsWith(".jar"))
                             continue;
-                        File file = new File(directory, filenames[j]);
+                        File file = new File(directory, s);
                         file = file.getCanonicalFile();
                         if (!validateFile(file, RepositoryType.JAR)) {
                             continue;
                         }
                         if (log.isDebugEnabled())
                             log.debug("    Including glob jar file "
-                                + file.getAbsolutePath());
+                                    + file.getAbsolutePath());
                         URL url = buildClassLoaderUrl(file);
                         set.add(url);
                     }
diff --git a/java/org/apache/catalina/startup/ContextConfig.java b/java/org/apache/catalina/startup/ContextConfig.java
index 0f29773..ff890a5 100644
--- a/java/org/apache/catalina/startup/ContextConfig.java
+++ b/java/org/apache/catalina/startup/ContextConfig.java
@@ -796,8 +796,8 @@ public class ContextConfig implements LifecycleListener {
                 valves = pipeline.getValves();
             }
             if (valves != null) {
-                for (int i = 0; i < valves.length; i++) {
-                    log.debug("  " + valves[i].getClass().getName());
+                for (Valve valve : valves) {
+                    log.debug("  " + valve.getClass().getName());
                 }
             }
             log.debug("======================");
@@ -1028,29 +1028,29 @@ public class ContextConfig implements LifecycleListener {
 
         // Check role names used in <security-constraint> elements
         SecurityConstraint constraints[] = context.findConstraints();
-        for (int i = 0; i < constraints.length; i++) {
-            String roles[] = constraints[i].findAuthRoles();
-            for (int j = 0; j < roles.length; j++) {
-                if (!"*".equals(roles[j]) &&
-                    !context.findSecurityRole(roles[j])) {
-                    log.warn(sm.getString("contextConfig.role.auth", roles[j]));
-                    context.addSecurityRole(roles[j]);
+        for (SecurityConstraint constraint : constraints) {
+            String roles[] = constraint.findAuthRoles();
+            for (String role : roles) {
+                if (!"*".equals(role) &&
+                        !context.findSecurityRole(role)) {
+                    log.warn(sm.getString("contextConfig.role.auth", role));
+                    context.addSecurityRole(role);
                 }
             }
         }
 
         // Check role names used in <servlet> elements
         Container wrappers[] = context.findChildren();
-        for (int i = 0; i < wrappers.length; i++) {
-            Wrapper wrapper = (Wrapper) wrappers[i];
+        for (Container container : wrappers) {
+            Wrapper wrapper = (Wrapper) container;
             String runAs = wrapper.getRunAs();
             if ((runAs != null) && !context.findSecurityRole(runAs)) {
                 log.warn(sm.getString("contextConfig.role.runas", runAs));
                 context.addSecurityRole(runAs);
             }
             String names[] = wrapper.findSecurityReferences();
-            for (int j = 0; j < names.length; j++) {
-                String link = wrapper.findSecurityReference(names[j]);
+            for (String name : names) {
+                String link = wrapper.findSecurityReference(name);
                 if ((link != null) && !context.findSecurityRole(link)) {
                     log.warn(sm.getString("contextConfig.role.link", link));
                     context.addSecurityRole(link);
@@ -1796,8 +1796,7 @@ public class ContextConfig implements LifecycleListener {
                     } catch (MalformedURLException e) {
                         log.error(sm.getString("contextConfig.applicationUrl"));
                     }
-                }
-                else {
+                } else {
                     stream = servletContext.getResourceAsStream
                         (Constants.ApplicationWebXml);
                     try {
diff --git a/java/org/apache/catalina/startup/ExpandWar.java b/java/org/apache/catalina/startup/ExpandWar.java
index 7fd7144..4e4a95c 100644
--- a/java/org/apache/catalina/startup/ExpandWar.java
+++ b/java/org/apache/catalina/startup/ExpandWar.java
@@ -354,8 +354,8 @@ public class ExpandWar {
         if (files == null) {
             files = new String[0];
         }
-        for (int i = 0; i < files.length; i++) {
-            File file = new File(dir, files[i]);
+        for (String s : files) {
+            File file = new File(dir, s);
             if (file.isDirectory()) {
                 deleteDir(file, logFailure);
             } else {
diff --git a/java/org/apache/catalina/startup/HomesUserDatabase.java b/java/org/apache/catalina/startup/HomesUserDatabase.java
index 35a5f9f..c1d15db 100644
--- a/java/org/apache/catalina/startup/HomesUserDatabase.java
+++ b/java/org/apache/catalina/startup/HomesUserDatabase.java
@@ -127,11 +127,11 @@ public final class HomesUserDatabase
             return;
         }
 
-        for (int i = 0; i < homeBaseFiles.length; i++) {
-            File homeDir = new File(homeBaseDir, homeBaseFiles[i]);
+        for (String homeBaseFile : homeBaseFiles) {
+            File homeDir = new File(homeBaseDir, homeBaseFile);
             if (!homeDir.isDirectory() || !homeDir.canRead())
                 continue;
-            homes.put(homeBaseFiles[i], homeDir.toString());
+            homes.put(homeBaseFile, homeDir.toString());
         }
     }
 }
diff --git a/java/org/apache/catalina/startup/HostConfig.java b/java/org/apache/catalina/startup/HostConfig.java
index 1159127..ee14f2d 100644
--- a/java/org/apache/catalina/startup/HostConfig.java
+++ b/java/org/apache/catalina/startup/HostConfig.java
@@ -512,11 +512,11 @@ public class HostConfig implements LifecycleListener {
         ExecutorService es = host.getStartStopExecutor();
         List<Future<?>> results = new ArrayList<>();
 
-        for (int i = 0; i < files.length; i++) {
-            File contextXml = new File(configBase, files[i]);
+        for (String file : files) {
+            File contextXml = new File(configBase, file);
 
-            if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
-                ContextName cn = new ContextName(files[i], true);
+            if (file.toLowerCase(Locale.ENGLISH).endsWith(".xml")) {
+                ContextName cn = new ContextName(file, true);
 
                 if (isServiced(cn.getName()) || deploymentExists(cn.getName()))
                     continue;
@@ -705,17 +705,17 @@ public class HostConfig implements LifecycleListener {
         ExecutorService es = host.getStartStopExecutor();
         List<Future<?>> results = new ArrayList<>();
 
-        for (int i = 0; i < files.length; i++) {
+        for (String file : files) {
 
-            if (files[i].equalsIgnoreCase("META-INF"))
+            if (file.equalsIgnoreCase("META-INF"))
                 continue;
-            if (files[i].equalsIgnoreCase("WEB-INF"))
+            if (file.equalsIgnoreCase("WEB-INF"))
                 continue;
-            File war = new File(appBase, files[i]);
-            if (files[i].toLowerCase(Locale.ENGLISH).endsWith(".war") &&
-                    war.isFile() && !invalidWars.contains(files[i]) ) {
+            File war = new File(appBase, file);
+            if (file.toLowerCase(Locale.ENGLISH).endsWith(".war") &&
+                    war.isFile() && !invalidWars.contains(file)) {
 
-                ContextName cn = new ContextName(files[i], true);
+                ContextName cn = new ContextName(file, true);
 
                 if (isServiced(cn.getName())) {
                     continue;
@@ -748,8 +748,8 @@ public class HostConfig implements LifecycleListener {
                 // Check for WARs with /../ /./ or similar sequences in the name
                 if (!validateContextPath(appBase, cn.getBaseName())) {
                     log.error(sm.getString(
-                            "hostConfig.illegalWarName", files[i]));
-                    invalidWars.add(files[i]);
+                            "hostConfig.illegalWarName", file));
+                    invalidWars.add(file);
                     continue;
                 }
 
@@ -1021,15 +1021,15 @@ public class HostConfig implements LifecycleListener {
         ExecutorService es = host.getStartStopExecutor();
         List<Future<?>> results = new ArrayList<>();
 
-        for (int i = 0; i < files.length; i++) {
+        for (String file : files) {
 
-            if (files[i].equalsIgnoreCase("META-INF"))
+            if (file.equalsIgnoreCase("META-INF"))
                 continue;
-            if (files[i].equalsIgnoreCase("WEB-INF"))
+            if (file.equalsIgnoreCase("WEB-INF"))
                 continue;
-            File dir = new File(appBase, files[i]);
+            File dir = new File(appBase, file);
             if (dir.isDirectory()) {
-                ContextName cn = new ContextName(files[i], false);
+                ContextName cn = new ContextName(file, false);
 
                 if (isServiced(cn.getName()) || deploymentExists(cn.getName()))
                     continue;
@@ -1210,19 +1210,19 @@ public class HostConfig implements LifecycleListener {
             }
         }
         String[] watchedResources = context.findWatchedResources();
-        for (int i = 0; i < watchedResources.length; i++) {
-            File resource = new File(watchedResources[i]);
+        for (String watchedResource : watchedResources) {
+            File resource = new File(watchedResource);
             if (!resource.isAbsolute()) {
                 if (docBase != null) {
-                    resource = new File(docBaseFile, watchedResources[i]);
+                    resource = new File(docBaseFile, watchedResource);
                 } else {
-                    if(log.isDebugEnabled())
+                    if (log.isDebugEnabled())
                         log.debug("Ignoring non-existent WatchedResource '" +
                                 resource.getAbsolutePath() + "'");
                     continue;
                 }
             }
-            if(log.isDebugEnabled())
+            if (log.isDebugEnabled())
                 log.debug("Watching WatchedResource '" +
                         resource.getAbsolutePath() + "'");
             app.reloadResources.put(resource.getAbsolutePath(),
@@ -1348,12 +1348,12 @@ public class HostConfig implements LifecycleListener {
         }
         resources = app.reloadResources.keySet().toArray(new String[0]);
         boolean update = false;
-        for (int i = 0; i < resources.length; i++) {
-            File resource = new File(resources[i]);
+        for (String s : resources) {
+            File resource = new File(s);
             if (log.isDebugEnabled()) {
                 log.debug("Checking context[" + app.name + "] reload resource " + resource);
             }
-            long lastModified = app.reloadResources.get(resources[i]).longValue();
+            long lastModified = app.reloadResources.get(s).longValue();
             // File.lastModified() has a resolution of 1s (1000ms). The last
             // modified time has to be more than 1000ms ago to ensure that
             // modifications that take place in the same second are not
@@ -1370,7 +1370,7 @@ public class HostConfig implements LifecycleListener {
                 }
                 // Update times. More than one file may have been updated. We
                 // don't want to trigger a series of reloads.
-                app.reloadResources.put(resources[i],
+                app.reloadResources.put(s,
                         Long.valueOf(resource.lastModified()));
             }
             app.timestamp = System.currentTimeMillis();
@@ -1447,8 +1447,8 @@ public class HostConfig implements LifecycleListener {
         // Delete reload resources (to remove any remaining .xml descriptor)
         if (deleteReloadResources) {
             String[] resources2 = app.reloadResources.keySet().toArray(new String[0]);
-            for (int j = 0; j < resources2.length; j++) {
-                File current = new File(resources2[j]);
+            for (String s : resources2) {
+                File current = new File(s);
                 // Never delete per host context.xml defaults
                 if (Constants.HostContextXml.equals(current.getName())) {
                     continue;
@@ -1530,9 +1530,9 @@ public class HostConfig implements LifecycleListener {
     public void beforeStart() {
         if (host.getCreateDirs()) {
             File[] dirs = new File[] {host.getAppBaseFile(),host.getConfigBaseFile()};
-            for (int i=0; i<dirs.length; i++) {
-                if (!dirs[i].mkdirs() && !dirs[i].isDirectory()) {
-                    log.error(sm.getString("hostConfig.createDirs",dirs[i]));
+            for (File dir : dirs) {
+                if (!dir.mkdirs() && !dir.isDirectory()) {
+                    log.error(sm.getString("hostConfig.createDirs", dir));
                 }
             }
         }
@@ -1598,9 +1598,9 @@ public class HostConfig implements LifecycleListener {
             // Check for resources modification to trigger redeployment
             DeployedApplication[] apps =
                 deployed.values().toArray(new DeployedApplication[0]);
-            for (int i = 0; i < apps.length; i++) {
-                if (!isServiced(apps[i].name))
-                    checkResources(apps[i], false);
+            for (DeployedApplication app : apps) {
+                if (!isServiced(app.name))
+                    checkResources(app, false);
             }
 
             // Check for old versions of applications that can now be undeployed
diff --git a/java/org/apache/catalina/startup/SetAllPropertiesRule.java b/java/org/apache/catalina/startup/SetAllPropertiesRule.java
index d32f268..5115e32 100644
--- a/java/org/apache/catalina/startup/SetAllPropertiesRule.java
+++ b/java/org/apache/catalina/startup/SetAllPropertiesRule.java
@@ -36,7 +36,7 @@ public class SetAllPropertiesRule extends Rule {
     public SetAllPropertiesRule() {}
 
     public SetAllPropertiesRule(String[] exclude) {
-        for (int i=0; i<exclude.length; i++ ) if (exclude[i]!=null) this.excludes.put(exclude[i],exclude[i]);
+        for (String s : exclude) if (s != null) this.excludes.put(s, s);
     }
 
     // ----------------------------------------------------- Instance Variables
diff --git a/java/org/apache/catalina/storeconfig/StandardContextSF.java b/java/org/apache/catalina/storeconfig/StandardContextSF.java
index b9a3b4b..cc02212 100644
--- a/java/org/apache/catalina/storeconfig/StandardContextSF.java
+++ b/java/org/apache/catalina/storeconfig/StandardContextSF.java
@@ -349,19 +349,18 @@ public class StandardContextSF extends StoreFactoryBase {
         String webxml = "WEB-INF/web.xml" ;
 
         List<String> resource = new ArrayList<>();
-        for (int i = 0; i < wresources.length; i++) {
-
-            if (wresources[i].equals(confContext))
+        for (String wresource : wresources) {
+            if (wresource.equals(confContext))
                 continue;
-            if (wresources[i].equals(confWeb))
+            if (wresource.equals(confWeb))
                 continue;
-            if (wresources[i].equals(confHostDefault))
+            if (wresource.equals(confHostDefault))
                 continue;
-            if (wresources[i].equals(configFile))
+            if (wresource.equals(configFile))
                 continue;
-            if (wresources[i].equals(webxml))
+            if (wresource.equals(webxml))
                 continue;
-            resource.add(wresources[i]);
+            resource.add(wresource);
         }
         return resource.toArray(new String[0]);
     }
diff --git a/java/org/apache/catalina/storeconfig/StandardEngineSF.java b/java/org/apache/catalina/storeconfig/StandardEngineSF.java
index 2316ffa..d9866b2 100644
--- a/java/org/apache/catalina/storeconfig/StandardEngineSF.java
+++ b/java/org/apache/catalina/storeconfig/StandardEngineSF.java
@@ -74,9 +74,9 @@ public class StandardEngineSF extends StoreFactoryBase {
             Valve valves[] = engine.getPipeline().getValves();
             if(valves != null && valves.length > 0 ) {
                 List<Valve> engineValves = new ArrayList<>() ;
-                for(int i = 0 ; i < valves.length ; i++ ) {
-                    if(!( valves[i] instanceof ClusterValve))
-                        engineValves.add(valves[i]);
+                for (Valve valve : valves) {
+                    if (!(valve instanceof ClusterValve))
+                        engineValves.add(valve);
                 }
                 storeElementArray(aWriter, indent, engineValves.toArray());
             }
diff --git a/java/org/apache/catalina/storeconfig/StandardHostSF.java b/java/org/apache/catalina/storeconfig/StandardHostSF.java
index 19d3e10..4317e49 100644
--- a/java/org/apache/catalina/storeconfig/StandardHostSF.java
+++ b/java/org/apache/catalina/storeconfig/StandardHostSF.java
@@ -80,9 +80,9 @@ public class StandardHostSF extends StoreFactoryBase {
             Valve valves[] = host.getPipeline().getValves();
             if(valves != null && valves.length > 0 ) {
                 List<Valve> hostValves = new ArrayList<>() ;
-                for(int i = 0 ; i < valves.length ; i++ ) {
-                    if(!( valves[i] instanceof ClusterValve))
-                        hostValves.add(valves[i]);
+                for (Valve valve : valves) {
+                    if (!(valve instanceof ClusterValve))
+                        hostValves.add(valve);
                 }
                 storeElementArray(aWriter, indent, hostValves.toArray());
             }
diff --git a/java/org/apache/catalina/storeconfig/StoreAppender.java b/java/org/apache/catalina/storeconfig/StoreAppender.java
index c8b3eb2..2c1ce56 100644
--- a/java/org/apache/catalina/storeconfig/StoreAppender.java
+++ b/java/org/apache/catalina/storeconfig/StoreAppender.java
@@ -153,9 +153,9 @@ public class StoreAppender {
     public void printTagArray(PrintWriter aWriter, String tag, int indent,
             String[] elements) throws Exception {
         if (elements != null) {
-            for (int i = 0; i < elements.length; i++) {
+            for (String element : elements) {
                 printIndent(aWriter, indent);
-                printTagContent(aWriter, tag, elements[i]);
+                printTagContent(aWriter, tag, element);
             }
         }
     }
@@ -229,10 +229,10 @@ public class StoreAppender {
 
         // Create blank instance
         Object bean2 = defaultInstance(bean);
-        for (int i = 0; i < descriptors.length; i++) {
-            Object value = checkAttribute(desc, descriptors[i], descriptors[i].getName(), bean, bean2);
+        for (PropertyDescriptor descriptor : descriptors) {
+            Object value = checkAttribute(desc, descriptor, descriptor.getName(), bean, bean2);
             if (value != null) {
-                printAttribute(writer, indent, bean, desc, descriptors[i].getName(), bean2, value);
+                printAttribute(writer, indent, bean, desc, descriptor.getName(), bean2, value);
             }
         }
 
@@ -403,8 +403,8 @@ public class StoreAppender {
      */
     protected boolean isPersistable(Class<?> clazz) {
 
-        for (int i = 0; i < persistables.length; i++) {
-            if (persistables[i] == clazz || persistables[i].isAssignableFrom(clazz)) {
+        for (Class<?> persistable : persistables) {
+            if (persistable == clazz || persistable.isAssignableFrom(clazz)) {
                 return true;
             }
         }
diff --git a/java/org/apache/catalina/storeconfig/StoreFactoryBase.java b/java/org/apache/catalina/storeconfig/StoreFactoryBase.java
index ada8528..ded0772 100644
--- a/java/org/apache/catalina/storeconfig/StoreFactoryBase.java
+++ b/java/org/apache/catalina/storeconfig/StoreFactoryBase.java
@@ -185,9 +185,9 @@ public class StoreFactoryBase implements IStoreFactory {
     protected void storeElementArray(PrintWriter aWriter, int indent,
             Object[] elements) throws Exception {
         if (elements != null) {
-            for (int i = 0; i < elements.length; i++) {
+            for (Object element : elements) {
                 try {
-                    storeElement(aWriter, indent, elements[i]);
+                    storeElement(aWriter, indent, element);
                 } catch (IOException ioe) {
                     // ignore children report error them self!
                     // see StandardContext.storeWithBackup()
diff --git a/java/org/apache/catalina/tribes/ChannelException.java b/java/org/apache/catalina/tribes/ChannelException.java
index 6711385..9ec2924 100644
--- a/java/org/apache/catalina/tribes/ChannelException.java
+++ b/java/org/apache/catalina/tribes/ChannelException.java
@@ -86,8 +86,7 @@ public class ChannelException extends Exception {
             buf.append("; No faulty members identified.");
         } else {
             buf.append("; Faulty members:");
-            for ( int i=0; i<faultyMembers.size(); i++ ) {
-                FaultyMember mbr = faultyMembers.get(i);
+            for (FaultyMember mbr : faultyMembers) {
                 buf.append(mbr.getMember().getName());
                 buf.append("; ");
             }
diff --git a/java/org/apache/catalina/tribes/group/GroupChannel.java b/java/org/apache/catalina/tribes/group/GroupChannel.java
index 7b72b43..95731d6 100644
--- a/java/org/apache/catalina/tribes/group/GroupChannel.java
+++ b/java/org/apache/catalina/tribes/group/GroupChannel.java
@@ -319,14 +319,13 @@ public class GroupChannel extends ChannelInterceptorBase
             Member source = msg.getAddress();
             boolean rx = false;
             boolean delivered = false;
-            for ( int i=0; i<channelListeners.size(); i++ ) {
-                ChannelListener channelListener = channelListeners.get(i);
+            for (ChannelListener channelListener : channelListeners) {
                 if (channelListener != null && channelListener.accept(fwd, source)) {
                     channelListener.messageReceived(fwd, source);
                     delivered = true;
                     //if the message was accepted by an RPC channel, that channel
                     //is responsible for returning the reply, otherwise we send an absence reply
-                    if ( channelListener instanceof RpcChannel ) rx = true;
+                    if (channelListener instanceof RpcChannel) rx = true;
                 }
             }//for
             if ((!rx) && (fwd instanceof RpcMessage)) {
@@ -374,8 +373,7 @@ public class GroupChannel extends ChannelInterceptorBase
     @Override
     public void memberAdded(Member member) {
         //notify upwards
-        for (int i=0; i<membershipListeners.size(); i++ ) {
-            MembershipListener membershipListener = membershipListeners.get(i);
+        for (MembershipListener membershipListener : membershipListeners) {
             if (membershipListener != null) membershipListener.memberAdded(member);
         }
     }
@@ -388,8 +386,7 @@ public class GroupChannel extends ChannelInterceptorBase
     @Override
     public void memberDisappeared(Member member) {
         //notify upwards
-        for (int i=0; i<membershipListeners.size(); i++ ) {
-            MembershipListener membershipListener = membershipListeners.get(i);
+        for (MembershipListener membershipListener : membershipListeners) {
             if (membershipListener != null) membershipListener.memberDisappeared(member);
         }
     }
diff --git a/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
index 653dfb1..f243514 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
@@ -134,8 +134,8 @@ public class FragmentationInterceptor extends ChannelInterceptorBase implements
             remaining -= length;
 
         }
-        for ( int i=0; i<messages.length; i++ ) {
-            super.sendMessage(destination,messages[i],payload);
+        for (ChannelMessage message : messages) {
+            super.sendMessage(destination, message, payload);
         }
     }
 
@@ -144,9 +144,9 @@ public class FragmentationInterceptor extends ChannelInterceptorBase implements
         try {
             Set<FragKey> set = fragpieces.keySet();
             Object[] keys = set.toArray();
-            for ( int i=0; i<keys.length; i++ ) {
-                FragKey key = (FragKey)keys[i];
-                if ( key != null && key.expired(getExpire()) )
+            for (Object o : keys) {
+                FragKey key = (FragKey) o;
+                if (key != null && key.expired(getExpire()))
                     removeFragCollection(key);
             }
         }catch ( Exception x ) {
@@ -208,11 +208,11 @@ public class FragmentationInterceptor extends ChannelInterceptorBase implements
         public ChannelMessage assemble() {
             if ( !complete() ) throw new IllegalStateException(sm.getString("fragmentationInterceptor.fragments.missing"));
             int buffersize = 0;
-            for (int i=0; i<frags.length; i++ ) buffersize += frags[i].getLength();
+            for (XByteBuffer xByteBuffer : frags) buffersize += xByteBuffer.getLength();
             XByteBuffer buf = new XByteBuffer(buffersize,false);
             msg.setMessage(buf);
-            for ( int i=0; i<frags.length; i++ ) {
-                msg.getMessage().append(frags[i].getBytesDirect(),0,frags[i].getLength());
+            for (XByteBuffer frag : frags) {
+                msg.getMessage().append(frag.getBytesDirect(), 0, frag.getLength());
             }
             return msg;
         }
diff --git a/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java b/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java
index 90d4b3a..5c2c534 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/NonBlockingCoordinator.java
@@ -321,9 +321,9 @@ public class NonBlockingCoordinator extends ChannelInterceptorBase {
         Arrays.fill(merged,msg.getMembers());
         Arrays.fill(merged,getMembers());
         Member[] diff = Arrays.diff(merged,membership,local);
-        for ( int i=0; i<diff.length; i++ ) {
-            if (!alive(diff[i])) merged.removeMember(diff[i]);
-            else memberAdded(diff[i],false);
+        for (Member member : diff) {
+            if (!alive(member)) merged.removeMember(member);
+            else memberAdded(member, false);
         }
         fireInterceptorEvent(new CoordinationEvent(CoordinationEvent.EVT_POST_MERGE,this,"Post merge"));
         return merged;
@@ -749,10 +749,10 @@ public class NonBlockingCoordinator extends ChannelInterceptorBase {
             src = null;
             //view
             buf.append(view.length);
-            for (int i=0; i<view.length; i++ ) {
-                byte[] mbr = view[i].getData(false,false);
+            for (Member member : view) {
+                byte[] mbr = member.getData(false, false);
                 buf.append(mbr.length);
-                buf.append(mbr,0,mbr.length);
+                buf.append(mbr, 0, mbr.length);
             }
             //id
             buf.append(id.getBytes(),0,id.getBytes().length);
diff --git a/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java
index a91ee24..18d31e3 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/OrderInterceptor.java
@@ -72,24 +72,24 @@ public class OrderInterceptor extends ChannelInterceptorBase {
             return;
         }
         ChannelException cx = null;
-        for (int i=0; i<destination.length; i++ ) {
+        for (Member member : destination) {
             try {
                 int nr = 0;
                 outLock.writeLock().lock();
                 try {
-                    nr = incCounter(destination[i]);
+                    nr = incCounter(member);
                 } finally {
                     outLock.writeLock().unlock();
                 }
                 //reduce byte copy
                 msg.getMessage().append(nr);
                 try {
-                    getNext().sendMessage(new Member[] {destination[i]}, msg, payload);
+                    getNext().sendMessage(new Member[]{member}, msg, payload);
                 } finally {
                     msg.getMessage().trim(4);
                 }
-            }catch ( ChannelException x ) {
-                if ( cx == null ) cx = x;
+            } catch (ChannelException x) {
+                if (cx == null) cx = x;
                 cx.addFaultyMember(x.getFaultyMembers());
             }
         }//for
diff --git a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
index f09c4dc..04a5974 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/TcpFailureDetector.java
@@ -93,10 +93,10 @@ public class TcpFailureDetector extends ChannelInterceptorBase implements TcpFai
             super.sendMessage(destination, msg, payload);
         }catch ( ChannelException cx ) {
             FaultyMember[] mbrs = cx.getFaultyMembers();
-            for ( int i=0; i<mbrs.length; i++ ) {
-                if ( mbrs[i].getCause()!=null &&
-                     (!(mbrs[i].getCause() instanceof RemoteProcessException)) ) {//RemoteProcessException's are ok
-                    this.memberDisappeared(mbrs[i].getMember());
+            for (FaultyMember mbr : mbrs) {
+                if (mbr.getCause() != null &&
+                        (!(mbr.getCause() instanceof RemoteProcessException))) {//RemoteProcessException's are ok
+                    this.memberDisappeared(mbr.getMember());
                 }//end if
             }//for
             throw cx;
@@ -277,8 +277,7 @@ public class TcpFailureDetector extends ChannelInterceptorBase implements TcpFai
         //check suspect members if they are still alive,
         //if not, simply issue the memberDisappeared message
         Member[] keys = removeSuspects.keySet().toArray(new Member[0]);
-        for (int i = 0; i < keys.length; i++) {
-            Member m = keys[i];
+        for (Member m : keys) {
             if (membership.getMember(m) != null && (!memberAlive(m))) {
                 membership.removeMember(m);
                 if (m instanceof StaticMember) {
@@ -286,7 +285,7 @@ public class TcpFailureDetector extends ChannelInterceptorBase implements TcpFai
                 }
                 super.memberDisappeared(m);
                 removeSuspects.remove(m);
-                if(log.isInfoEnabled())
+                if (log.isInfoEnabled())
                     log.info(sm.getString("tcpFailureDetector.suspectMember.dead", m));
             } else {
                 if (removeSuspectsTimeout > 0) {
@@ -302,13 +301,12 @@ public class TcpFailureDetector extends ChannelInterceptorBase implements TcpFai
         //check add suspects members if they are alive now,
         //if they are, simply issue the memberAdded message
         keys = addSuspects.keySet().toArray(new Member[0]);
-        for (int i = 0; i < keys.length; i++) {
-            Member m = keys[i];
-            if ( membership.getMember(m) == null && (memberAlive(m))) {
+        for (Member m : keys) {
+            if (membership.getMember(m) == null && (memberAlive(m))) {
                 membership.memberAlive(m);
                 super.memberAdded(m);
                 addSuspects.remove(m);
-                if(log.isInfoEnabled())
+                if (log.isInfoEnabled())
                     log.info(sm.getString("tcpFailureDetector.suspectMember.alive", m));
             } //end if
         }
diff --git a/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java
index ef70f1a..91db287 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/TwoPhaseCommitInterceptor.java
@@ -112,11 +112,12 @@ public class TwoPhaseCommitInterceptor extends ChannelInterceptorBase {
             long now = System.currentTimeMillis();
             @SuppressWarnings("unchecked")
             Map.Entry<UniqueId,MapEntry>[] entries = messages.entrySet().toArray(new Map.Entry[0]);
-            for (int i=0; i<entries.length; i++ ) {
-                MapEntry entry = entries[i].getValue();
-                if ( entry.expired(now,expire) ) {
-                    if(log.isInfoEnabled())
-                        log.info("Message ["+entry.id+"] has expired. Removing.");
+            for (Map.Entry<UniqueId, MapEntry> uniqueIdMapEntryEntry : entries) {
+                MapEntry entry = uniqueIdMapEntryEntry.getValue();
+                if (entry.expired(now,expire)) {
+                    if (log.isInfoEnabled()) {
+                        log.info("Message [" + entry.id + "] has expired. Removing.");
+                    }
                     messages.remove(entry.id);
                 }//end if
             }
diff --git a/java/org/apache/catalina/tribes/io/ReplicationStream.java b/java/org/apache/catalina/tribes/io/ReplicationStream.java
index acf80ff..cd403b3 100644
--- a/java/org/apache/catalina/tribes/io/ReplicationStream.java
+++ b/java/org/apache/catalina/tribes/io/ReplicationStream.java
@@ -148,11 +148,11 @@ public final class ReplicationStream extends ObjectInputStream {
 
     public Class<?> findExternalClass(String name) throws ClassNotFoundException  {
         ClassNotFoundException cnfe = null;
-        for (int i=0; i<classLoaders.length; i++ ) {
+        for (ClassLoader classLoader : classLoaders) {
             try {
-                Class<?> clazz = Class.forName(name, false, classLoaders[i]);
+                Class<?> clazz = Class.forName(name, false, classLoader);
                 return clazz;
-            } catch ( ClassNotFoundException x ) {
+            } catch (ClassNotFoundException x) {
                 cnfe = x;
             }
         }
diff --git a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
index ff8360e..4680ea9 100644
--- a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
+++ b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
@@ -429,10 +429,10 @@ public class McastServiceImpl {
                     String name = Thread.currentThread().getName();
                     try {
                         Thread.currentThread().setName("Membership-MemberAdded.");
-                        for (int i=0; i<data.length; i++ ) {
+                        for (ChannelData datum : data) {
                             try {
-                                if (data[i]!=null && !member.equals(data[i].getAddress())) {
-                                    msgservice.messageReceived(data[i]);
+                                if (datum != null && !member.equals(datum.getAddress())) {
+                                    msgservice.messageReceived(datum);
                                 }
                             } catch (Throwable t) {
                                 if (t instanceof ThreadDeath) {
@@ -441,7 +441,7 @@ public class McastServiceImpl {
                                 if (t instanceof VirtualMachineError) {
                                     throw (VirtualMachineError) t;
                                 }
-                                log.error(sm.getString("mcastServiceImpl.unableReceive.broadcastMessage"),t);
+                                log.error(sm.getString("mcastServiceImpl.unableReceive.broadcastMessage"), t);
                             }
                         }
                     }finally {
@@ -457,10 +457,9 @@ public class McastServiceImpl {
     protected void checkExpired() {
         synchronized (expiredMutex) {
             Member[] expired = membership.expire(timeToExpiration);
-            for (int i = 0; i < expired.length; i++) {
-                final Member member = expired[i];
+            for (final Member member : expired) {
                 if (log.isDebugEnabled())
-                    log.debug("Mcast expire  member " + expired[i]);
+                    log.debug("Mcast expire  member " + member);
                 try {
                     Runnable t = new Runnable() {
                         @Override
@@ -469,7 +468,7 @@ public class McastServiceImpl {
                             try {
                                 Thread.currentThread().setName("Membership-MemberExpired.");
                                 service.memberDisappeared(member);
-                            }finally {
+                            } finally {
                                 Thread.currentThread().setName(name);
                             }
 
diff --git a/java/org/apache/catalina/tribes/membership/Membership.java b/java/org/apache/catalina/tribes/membership/Membership.java
index 1a5cce5..a6478c2 100644
--- a/java/org/apache/catalina/tribes/membership/Membership.java
+++ b/java/org/apache/catalina/tribes/membership/Membership.java
@@ -238,8 +238,8 @@ public class Membership implements Cloneable {
             if (list != null) {
                 Member[] result = new Member[list.size()];
                 list.toArray(result);
-                for (int j=0; j<result.length; j++) {
-                    removeMember(result[j]);
+                for (Member member : result) {
+                    removeMember(member);
                 }
                 return result;
             } else {
@@ -262,9 +262,9 @@ public class Membership implements Cloneable {
     public Member getMember(Member mbr) {
         Member[] members = this.members;
         if (members.length > 0) {
-            for (int i = 0; i < members.length; i++) {
-                if (members[i].equals(mbr)) {
-                    return members[i];
+            for (Member member : members) {
+                if (member.equals(mbr)) {
+                    return member;
                 }
             }
         }
diff --git a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
index 57a1418..67cac26 100644
--- a/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
+++ b/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
@@ -275,11 +276,11 @@ public abstract class AbstractReplicatedMap<K,V>
                                                   msg, RpcChannel.ALL_REPLY,
                                                   (channelSendOptions),
                                                   (int) accessTimeout);
-                for (int i = 0; i < resp.length; i++) {
-                    MapMessage mapMsg = (MapMessage)resp[i].getMessage();
+                for (Response response : resp) {
+                    MapMessage mapMsg = (MapMessage) response.getMessage();
                     try {
                         mapMsg.deserialize(getExternalLoaders());
-                        Member member = resp[i].getSource();
+                        Member member = response.getSource();
                         State state = (State) mapMsg.getValue();
                         if (state.isAvailable()) {
                             memberAlive(member);
@@ -288,7 +289,7 @@ public abstract class AbstractReplicatedMap<K,V>
                                 if (log.isInfoEnabled())
                                     log.info(sm.getString("abstractReplicatedMap.ping.stateTransferredMember",
                                             member));
-                                if (mapMembers.containsKey(member) ) {
+                                if (mapMembers.containsKey(member)) {
                                     mapMembers.put(member, Long.valueOf(System.currentTimeMillis()));
                                 }
                             }
@@ -352,9 +353,9 @@ public abstract class AbstractReplicatedMap<K,V>
             Response[] resp = rpcChannel.send(members, msg,
                     RpcChannel.FIRST_REPLY, (channelSendOptions), rpcTimeout);
             if (resp.length > 0) {
-                for (int i = 0; i < resp.length; i++) {
-                    mapMemberAdded(resp[i].getSource());
-                    messageReceived(resp[i].getMessage(), resp[i].getSource());
+                for (Response response : resp) {
+                    mapMemberAdded(response.getSource());
+                    messageReceived(response.getMessage(), response.getSource());
                 }
             } else {
                 log.warn(sm.getString("abstractReplicatedMap.broadcast.noReplies"));
@@ -427,7 +428,7 @@ public abstract class AbstractReplicatedMap<K,V>
         synchronized (mapMembers) {
             @SuppressWarnings("unchecked") // mapMembers has the correct type
             HashMap<Member, Long> list = (HashMap<Member, Long>)mapMembers.clone();
-            for (int i=0; i<exclude.length;i++) list.remove(exclude[i]);
+            for (Member member : exclude) list.remove(member);
             return getMapMembers(list);
         }
     }
@@ -529,8 +530,8 @@ public abstract class AbstractReplicatedMap<K,V>
                         msg = (MapMessage) resp[0].getMessage();
                         msg.deserialize(getExternalLoaders());
                         ArrayList<?> list = (ArrayList<?>) msg.getValue();
-                        for (int i = 0; i < list.size(); i++) {
-                            messageReceived( (Serializable) list.get(i), resp[0].getSource());
+                        for (Object o : list) {
+                            messageReceived((Serializable) o, resp[0].getSource());
                         } //for
                     }
                     stateTransferred = true;
@@ -823,8 +824,8 @@ public abstract class AbstractReplicatedMap<K,V>
     public boolean inSet(Member m, Member[] set) {
         if ( set == null ) return false;
         boolean result = false;
-        for (int i = 0; i < set.length; i++ )
-            if (m.equals(set[i])) {
+        for (Member member : set)
+            if (m.equals(member)) {
                 result = true;
                 break;
             }
@@ -832,15 +833,15 @@ public abstract class AbstractReplicatedMap<K,V>
     }
 
     public Member[] excludeFromSet(Member[] mbrs, Member[] set) {
-        ArrayList<Member> result = new ArrayList<>();
-        for (int i=0; i<set.length; i++ ) {
+        List<Member> result = new ArrayList<>();
+        for (Member member : set) {
             boolean include = true;
-            for (int j = 0; j < mbrs.length; j++ )
-                if (mbrs[j].equals(set[i])) {
+            for (Member mbr : mbrs)
+                if (mbr.equals(member)) {
                     include = false;
                     break;
                 }
-            if ( include ) result.add(set[i]);
+            if (include) result.add(member);
         }
         return result.toArray(new Member[0]);
     }
@@ -1118,11 +1119,10 @@ public abstract class AbstractReplicatedMap<K,V>
      */
     @Override
     public void putAll(Map<? extends K, ? extends V> m) {
-        Iterator<?> i = m.entrySet().iterator();
-        while ( i.hasNext() ) {
+        for (Entry<? extends K, ? extends V> value : m.entrySet()) {
             @SuppressWarnings("unchecked")
-            Map.Entry<K,V> entry = (Map.Entry<K,V>) i.next();
-            put(entry.getKey(),entry.getValue());
+            Entry<K, V> entry = (Entry<K, V>) value;
+            put(entry.getKey(), entry.getValue());
         }
     }
 
diff --git a/java/org/apache/catalina/tribes/transport/PooledSender.java b/java/org/apache/catalina/tribes/transport/PooledSender.java
index 6428bfd..db8079e 100644
--- a/java/org/apache/catalina/tribes/transport/PooledSender.java
+++ b/java/org/apache/catalina/tribes/transport/PooledSender.java
@@ -151,8 +151,8 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS
             DataSender[] list = new DataSender[notinuse.size()];
             notinuse.toArray(list);
             boolean result = false;
-            for (int i=0; i<list.length; i++) {
-                result = result | list[i].keepalive();
+            for (DataSender dataSender : list) {
+                result = result | dataSender.keepalive();
             }
             return result;
         }
@@ -206,12 +206,12 @@ public abstract class PooledSender extends AbstractSender implements MultiPointS
             isOpen = false;
             Object[] unused = notinuse.toArray();
             Object[] used = inuse.toArray();
-            for (int i = 0; i < unused.length; i++) {
-                DataSender sender = (DataSender) unused[i];
+            for (Object value : unused) {
+                DataSender sender = (DataSender) value;
                 sender.disconnect();
             }//for
-            for (int i = 0; i < used.length; i++) {
-                DataSender sender = (DataSender) used[i];
+            for (Object o : used) {
+                DataSender sender = (DataSender) o;
                 sender.disconnect();
             }//for
             notinuse.clear();
diff --git a/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java b/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
index a6ad6a2..b8846f3 100644
--- a/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
+++ b/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
@@ -196,37 +196,52 @@ public class NioReplicationTask extends AbstractRxTask {
 
         registerForRead(key,reader);//register to read new data, before we send it off to avoid dead locks
 
-        for ( int i=0; i<msgs.length; i++ ) {
+        /**
+         * Use send ack here if you want to ack the request to the remote
+         * server before completing the request
+         * This is considered an asynchronous request
+         */
+        /**
+         * Use send ack here if you want the request to complete on this
+         * server before sending the ack to the remote server
+         * This is considered a synchronized request
+         */
+        for (ChannelMessage msg : msgs) {
             /**
              * Use send ack here if you want to ack the request to the remote
              * server before completing the request
              * This is considered an asynchronous request
              */
-            if (ChannelData.sendAckAsync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.ACK_COMMAND,saddr);
+            if (ChannelData.sendAckAsync(msg.getOptions()))
+                sendAck(key, (WritableByteChannel) channel, Constants.ACK_COMMAND, saddr);
             try {
-                if ( Logs.MESSAGES.isTraceEnabled() ) {
+                if (Logs.MESSAGES.isTraceEnabled()) {
                     try {
-                        Logs.MESSAGES.trace("NioReplicationThread - Received msg:" + new UniqueId(msgs[i].getUniqueId()) + " at " + new java.sql.Timestamp(System.currentTimeMillis()));
-                    }catch ( Throwable t ) {}
+                        Logs.MESSAGES.trace("NioReplicationThread - Received msg:" + new UniqueId(msg.getUniqueId()) + " at " + new java.sql.Timestamp(System.currentTimeMillis()));
+                    } catch (Throwable t) {
+                    }
                 }
                 //process the message
-                getCallback().messageDataReceived(msgs[i]);
+                getCallback().messageDataReceived(msg);
                 /**
                  * Use send ack here if you want the request to complete on this
                  * server before sending the ack to the remote server
                  * This is considered a synchronized request
                  */
-                if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.ACK_COMMAND,saddr);
-            }catch ( RemoteProcessException e ) {
-                if ( log.isDebugEnabled() ) log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e);
-                if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr);
-            }catch ( Exception e ) {
-                log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"),e);
-                if (ChannelData.sendAckSync(msgs[i].getOptions())) sendAck(key,(WritableByteChannel)channel,Constants.FAIL_ACK_COMMAND,saddr);
+                if (ChannelData.sendAckSync(msg.getOptions()))
+                    sendAck(key, (WritableByteChannel) channel, Constants.ACK_COMMAND, saddr);
+            } catch (RemoteProcessException e) {
+                if (log.isDebugEnabled()) log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"), e);
+                if (ChannelData.sendAckSync(msg.getOptions()))
+                    sendAck(key, (WritableByteChannel) channel, Constants.FAIL_ACK_COMMAND, saddr);
+            } catch (Exception e) {
+                log.error(sm.getString("nioReplicationTask.process.clusterMsg.failed"), e);
+                if (ChannelData.sendAckSync(msg.getOptions()))
+                    sendAck(key, (WritableByteChannel) channel, Constants.FAIL_ACK_COMMAND, saddr);
             }
-            if ( getUseBufferPool() ) {
-                BufferPool.getBufferPool().returnBuffer(msgs[i].getMessage());
-                msgs[i].setMessage(null);
+            if (getUseBufferPool()) {
+                BufferPool.getBufferPool().returnBuffer(msg.getMessage());
+                msg.setMessage(null);
             }
         }
 
diff --git a/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java b/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
index 67328f6..c41119f 100644
--- a/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
+++ b/java/org/apache/catalina/tribes/transport/nio/ParallelNioSender.java
@@ -88,9 +88,9 @@ public class ParallelNioSender extends AbstractSender implements MultiPointSende
                         if ( x instanceof ChannelException ) cx = (ChannelException)x;
                         else cx = new ChannelException(sm.getString("parallelNioSender.send.failed"), x);
                     }
-                    for (int i=0; i<senders.length; i++ ) {
-                        if (!senders[i].isComplete()) {
-                            cx.addFaultyMember(senders[i].getDestination(),x);
+                    for (NioSender sender : senders) {
+                        if (!sender.isComplete()) {
+                            cx.addFaultyMember(sender.getDestination(), x);
                         }
                     }
                     throw cx;
@@ -105,9 +105,9 @@ public class ParallelNioSender extends AbstractSender implements MultiPointSende
                     cx = new ChannelException(sm.getString("parallelNioSender.operation.timedout",
                             Long.toString(getTimeout())));
                 }
-                for (int i=0; i<senders.length; i++ ) {
-                    if (!senders[i].isComplete()) {
-                        cx.addFaultyMember(senders[i].getDestination(),cxtimeout);
+                for (NioSender sender : senders) {
+                    if (!sender.isComplete()) {
+                        cx.addFaultyMember(sender.getDestination(), cxtimeout);
                     }
                 }
                 throw cx;
@@ -232,12 +232,12 @@ public class ParallelNioSender extends AbstractSender implements MultiPointSende
 
     private void connect(NioSender[] senders) throws ChannelException {
         ChannelException x = null;
-        for (int i=0; i<senders.length; i++ ) {
+        for (NioSender sender : senders) {
             try {
-                senders[i].connect();
-            }catch ( IOException io ) {
-                if ( x==null ) x = new ChannelException(io);
-                x.addFaultyMember(senders[i].getDestination(),io);
+                sender.connect();
+            } catch (IOException io) {
+                if (x == null) x = new ChannelException(io);
+                x.addFaultyMember(sender.getDestination(), io);
             }
         }
         if ( x != null ) throw x;
@@ -245,12 +245,12 @@ public class ParallelNioSender extends AbstractSender implements MultiPointSende
 
     private void setData(NioSender[] senders, byte[] data) throws ChannelException {
         ChannelException x = null;
-        for (int i=0; i<senders.length; i++ ) {
+        for (NioSender sender : senders) {
             try {
-                senders[i].setMessage(data);
-            }catch ( IOException io ) {
-                if ( x==null ) x = new ChannelException(io);
-                x.addFaultyMember(senders[i].getDestination(),io);
+                sender.setMessage(data);
+            } catch (IOException io) {
+                if (x == null) x = new ChannelException(io);
+                x.addFaultyMember(sender.getDestination(), io);
             }
         }
         if ( x != null ) throw x;
@@ -293,14 +293,14 @@ public class ParallelNioSender extends AbstractSender implements MultiPointSende
     private synchronized void close() throws ChannelException  {
         ChannelException x = null;
         Object[] members = nioSenders.keySet().toArray();
-        for (int i=0; i<members.length; i++ ) {
-            Member mbr = (Member)members[i];
+        for (Object member : members) {
+            Member mbr = (Member) member;
             try {
                 NioSender sender = nioSenders.get(mbr);
                 sender.disconnect();
-            }catch ( Exception e ) {
-                if ( x == null ) x = new ChannelException(e);
-                x.addFaultyMember(mbr,e);
+            } catch (Exception e) {
+                if (x == null) x = new ChannelException(e);
+                x.addFaultyMember(mbr, e);
             }
             nioSenders.remove(mbr);
         }
diff --git a/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java b/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
index 8741504..4abc3dd 100644
--- a/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
+++ b/java/org/apache/catalina/tribes/transport/nio/PooledParallelSender.java
@@ -39,8 +39,8 @@ public class PooledParallelSender extends PooledSender implements PooledParallel
             ChannelException cx = new ChannelException(sm.getString(
                     "pooledParallelSender.unable.retrieveSender.timeout",
                     Long.toString(getMaxWait())));
-            for (int i = 0; i < destination.length; i++)
-                cx.addFaultyMember(destination[i], new NullPointerException(sm.getString("pooledParallelSender.unable.retrieveSender")));
+            for (Member member : destination)
+                cx.addFaultyMember(member, new NullPointerException(sm.getString("pooledParallelSender.unable.retrieveSender")));
             throw cx;
         } else {
             try {
diff --git a/java/org/apache/catalina/tribes/util/Arrays.java b/java/org/apache/catalina/tribes/util/Arrays.java
index 2aaeea6..0da41df 100644
--- a/java/org/apache/catalina/tribes/util/Arrays.java
+++ b/java/org/apache/catalina/tribes/util/Arrays.java
@@ -109,7 +109,7 @@ public class Arrays {
 
     public static int add(int[] data) {
         int result = 0;
-        for (int i=0;i<data.length; i++ ) result += data[i];
+        for (int datum : data) result += datum;
         return result;
     }
 
@@ -141,7 +141,7 @@ public class Arrays {
         AbsoluteOrder.absoluteOrder(m1);
         AbsoluteOrder.absoluteOrder(m2);
         ArrayList<Member> list = new ArrayList<>(java.util.Arrays.asList(m1));
-        for (int i=0; i<m2.length; i++) if ( !list.contains(m2[i]) ) list.add(m2[i]);
+        for (Member member : m2) if (!list.contains(member)) list.add(member);
         Member[] result = new Member[list.size()];
         list.toArray(result);
         AbsoluteOrder.absoluteOrder(result);
@@ -149,15 +149,15 @@ public class Arrays {
     }
 
     public static void fill(Membership mbrship, Member[] m) {
-        for (int i=0; i<m.length; i++ ) mbrship.addMember(m[i]);
+        for (Member member : m) mbrship.addMember(member);
     }
 
     public static Member[] diff(Membership complete, Membership local, Member ignore) {
         ArrayList<Member> result = new ArrayList<>();
         Member[] comp = complete.getMembers();
-        for ( int i=0; i<comp.length; i++ ) {
-            if ( ignore!=null && ignore.equals(comp[i]) ) continue;
-            if ( local.getMember(comp[i]) == null ) result.add(comp[i]);
+        for (Member member : comp) {
+            if (ignore != null && ignore.equals(member)) continue;
+            if (local.getMember(member) == null) result.add(member);
         }
         return result.toArray(new Member[0]);
     }
@@ -169,7 +169,7 @@ public class Arrays {
     public static Member[] extract(Member[] all, Member[] remove) {
         List<Member> alist = java.util.Arrays.asList(all);
         ArrayList<Member> list = new ArrayList<>(alist);
-        for (int i=0; i<remove.length; i++ ) list.remove(remove[i]);
+        for (Member member : remove) list.remove(member);
         return list.toArray(new Member[0]);
     }
 
@@ -192,8 +192,7 @@ public class Arrays {
             return 0;
 
         int result = 1;
-        for (int i=0; i<a.length; i++) {
-            byte element = a[i];
+        for (byte element : a) {
             result = 31 * result + element;
         }
         return result;
diff --git a/java/org/apache/catalina/util/DOMWriter.java b/java/org/apache/catalina/util/DOMWriter.java
index 7db4ba9..da6f053 100644
--- a/java/org/apache/catalina/util/DOMWriter.java
+++ b/java/org/apache/catalina/util/DOMWriter.java
@@ -99,8 +99,7 @@ public class DOMWriter {
                 out.print('<');
                 out.print(node.getLocalName());
                 Attr attrs[] = sortAttributes(node.getAttributes());
-                for (int i = 0; i < attrs.length; i++) {
-                    Attr attr = attrs[i];
+                for (Attr attr : attrs) {
                     out.print(' ');
                     out.print(attr.getLocalName());
 
diff --git a/java/org/apache/catalina/util/ExtensionValidator.java b/java/org/apache/catalina/util/ExtensionValidator.java
index 13a8ea4..0c7fc13 100644
--- a/java/org/apache/catalina/util/ExtensionValidator.java
+++ b/java/org/apache/catalina/util/ExtensionValidator.java
@@ -344,15 +344,15 @@ public final class ExtensionValidator {
                 if (files == null) {
                     continue;
                 }
-                for (int i = 0; i < files.length; i++) {
-                    if (files[i].getName().toLowerCase(Locale.ENGLISH).endsWith(".jar") &&
-                            files[i].isFile()) {
+                for (File file : files) {
+                    if (file.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar") &&
+                            file.isFile()) {
                         try {
-                            addSystemResource(files[i]);
+                            addSystemResource(file);
                         } catch (IOException e) {
                             log.error
-                                (sm.getString
-                                 ("extensionValidator.failload", files[i]), e);
+                                    (sm.getString
+                                            ("extensionValidator.failload", file), e);
                         }
                     }
                 }
diff --git a/java/org/apache/catalina/util/URLEncoder.java b/java/org/apache/catalina/util/URLEncoder.java
index 5f630e0..8cba2ce 100644
--- a/java/org/apache/catalina/util/URLEncoder.java
+++ b/java/org/apache/catalina/util/URLEncoder.java
@@ -210,9 +210,8 @@ public final class URLEncoder implements Cloneable {
                     continue;
                 }
                 byte[] ba = buf.toByteArray();
-                for (int j = 0; j < ba.length; j++) {
+                for (byte toEncode : ba) {
                     // Converting each byte in the buffer
-                    byte toEncode = ba[j];
                     rewrittenPath.append('%');
                     int low = toEncode & 0x0f;
                     int high = (toEncode & 0xf0) >> 4;
diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
index 51a771f..2580524 100644
--- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java
+++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
@@ -715,8 +715,8 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access
             result = new CharArrayWriter(128);
         }
 
-        for (int i = 0; i < logElements.length; i++) {
-            logElements[i].addElement(result, date, request, response, time);
+        for (AccessLogElement logElement : logElements) {
+            logElement.addElement(result, date, request, response, time);
         }
 
         log(result);
@@ -1519,9 +1519,9 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access
             String value = "-";
             Cookie[] c = request.getCookies();
             if (c != null) {
-                for (int i = 0; i < c.length; i++) {
-                    if (header.equals(c[i].getName())) {
-                        value = c[i].getValue();
+                for (Cookie cookie : c) {
+                    if (header.equals(cookie.getName())) {
+                        value = cookie.getValue();
                         break;
                     }
                 }
diff --git a/java/org/apache/catalina/valves/RemoteIpValve.java b/java/org/apache/catalina/valves/RemoteIpValve.java
index ae5bacc..4c388c3 100644
--- a/java/org/apache/catalina/valves/RemoteIpValve.java
+++ b/java/org/apache/catalina/valves/RemoteIpValve.java
@@ -782,8 +782,8 @@ public class RemoteIpValve extends ValveBase {
         if (forwardedProtocols.length == 0) {
             return false;
         }
-        for (int i = 0; i < forwardedProtocols.length; i++) {
-            if (!protocolHeaderHttpsValue.equalsIgnoreCase(forwardedProtocols[i])) {
+        for (String forwardedProtocol : forwardedProtocols) {
+            if (!protocolHeaderHttpsValue.equalsIgnoreCase(forwardedProtocol)) {
                 return false;
             }
         }
diff --git a/java/org/apache/catalina/valves/rewrite/RewriteRule.java b/java/org/apache/catalina/valves/rewrite/RewriteRule.java
index 29f23d9..40f903c 100644
--- a/java/org/apache/catalina/valves/rewrite/RewriteRule.java
+++ b/java/org/apache/catalina/valves/rewrite/RewriteRule.java
@@ -53,14 +53,14 @@ public class RewriteRule {
         }
         Pattern.compile(patternString, flags);
         // Parse conditions
-        for (int i = 0; i < conditions.length; i++) {
-            conditions[i].parse(maps);
+        for (RewriteCond condition : conditions) {
+            condition.parse(maps);
         }
         // Parse flag which have substitution values
         if (isEnv()) {
-            for (int i = 0; i < envValue.size(); i++) {
+            for (String s : envValue) {
                 Substitution newEnvSubstitution = new Substitution();
-                newEnvSubstitution.setSub(envValue.get(i));
+                newEnvSubstitution.setSub(s);
                 newEnvSubstitution.parse(maps);
                 envSubstitution.add(newEnvSubstitution);
                 envResult.add(new ThreadLocal<String>());
diff --git a/java/org/apache/catalina/valves/rewrite/RewriteValve.java b/java/org/apache/catalina/valves/rewrite/RewriteValve.java
index 5b719ba..ffbc961 100644
--- a/java/org/apache/catalina/valves/rewrite/RewriteValve.java
+++ b/java/org/apache/catalina/valves/rewrite/RewriteValve.java
@@ -216,11 +216,11 @@ public class RewriteValve extends ValveBase {
         if (mapsConfiguration.size() > 0) {
             buffer.append("\r\n");
         }
-        for (int i = 0; i < rules.length; i++) {
-            for (int j = 0; j < rules[i].getConditions().length; j++) {
-                buffer.append(rules[i].getConditions()[j].toString()).append("\r\n");
+        for (RewriteRule rule : rules) {
+            for (int j = 0; j < rule.getConditions().length; j++) {
+                buffer.append(rule.getConditions()[j].toString()).append("\r\n");
             }
-            buffer.append(rules[i].toString()).append("\r\n").append("\r\n");
+            buffer.append(rule.toString()).append("\r\n").append("\r\n");
         }
         return buffer.toString();
     }
@@ -246,16 +246,16 @@ public class RewriteValve extends ValveBase {
                             conditions.get(i).setOrnext(true);
                         }
                     }
-                    for (int i = 0; i < conditions.size(); i++) {
+                    for (RewriteCond condition : conditions) {
                         if (containerLog.isDebugEnabled()) {
-                            RewriteCond cond = conditions.get(i);
+                            RewriteCond cond = condition;
                             containerLog.debug("Add condition " + cond.getCondPattern()
                                     + " test " + cond.getTestString() + " to rule with pattern "
                                     + rule.getPatternString() + " and substitution "
                                     + rule.getSubstitutionString() + (cond.isOrnext() ? " [OR]" : "")
                                     + (cond.isNocase() ? " [NC]" : ""));
                         }
-                        rule.addCondition(conditions.get(i));
+                        rule.addCondition(condition);
                     }
                     conditions.clear();
                     rules.add(rule);
@@ -279,8 +279,8 @@ public class RewriteValve extends ValveBase {
         this.rules = rules.toArray(new RewriteRule[0]);
 
         // Finish parsing the rules
-        for (int i = 0; i < this.rules.length; i++) {
-            this.rules[i].parse(maps);
+        for (RewriteRule rule : this.rules) {
+            rule.parse(maps);
         }
     }
 
diff --git a/java/org/apache/catalina/valves/rewrite/Substitution.java b/java/org/apache/catalina/valves/rewrite/Substitution.java
index 58ad20e..121fc1e 100644
--- a/java/org/apache/catalina/valves/rewrite/Substitution.java
+++ b/java/org/apache/catalina/valves/rewrite/Substitution.java
@@ -315,8 +315,8 @@ public class Substitution {
 
     private String evaluateSubstitution(SubstitutionElement[] elements, Matcher rule, Matcher cond, Resolver resolver) {
         StringBuffer buf = new StringBuffer();
-        for (int i = 0; i < elements.length; i++) {
-            buf.append(elements[i].evaluate(rule, cond, resolver));
+        for (SubstitutionElement element : elements) {
+            buf.append(element.evaluate(rule, cond, resolver));
         }
         return buf.toString();
     }
diff --git a/java/org/apache/coyote/CompressionConfig.java b/java/org/apache/coyote/CompressionConfig.java
index 5dffcf5..b14cb8f 100644
--- a/java/org/apache/coyote/CompressionConfig.java
+++ b/java/org/apache/coyote/CompressionConfig.java
@@ -341,8 +341,8 @@ public class CompressionConfig {
         if (value == null) {
             return false;
         }
-        for (int i = 0; i < sArray.length; i++) {
-            if (value.startsWith(sArray[i])) {
+        for (String s : sArray) {
+            if (value.startsWith(s)) {
                 return true;
             }
         }
diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java b/java/org/apache/coyote/ajp/AjpProcessor.java
index d76fdcc..fa71116 100644
--- a/java/org/apache/coyote/ajp/AjpProcessor.java
+++ b/java/org/apache/coyote/ajp/AjpProcessor.java
@@ -674,8 +674,7 @@ public class AjpProcessor extends AbstractProcessor {
         else if (messageLength == 0) {
             // Zero length message.
             return true;
-        }
-        else {
+        } else {
             if (messageLength > message.getBuffer().length) {
                 // Message too long for the buffer
                 // Need to trigger a 400 response
@@ -1114,8 +1113,7 @@ public class AjpProcessor extends AbstractProcessor {
             int hC = Constants.getResponseAjpIndex(hN.toString());
             if (hC > 0) {
                 responseMessage.appendInt(hC);
-            }
-            else {
+            } else {
                 responseMessage.appendBytes(hN);
             }
             MessageBytes hV=headers.getValue(i);
diff --git a/java/org/apache/el/parser/AstCompositeExpression.java b/java/org/apache/el/parser/AstCompositeExpression.java
index 06ae01d..9d9f80a 100644
--- a/java/org/apache/el/parser/AstCompositeExpression.java
+++ b/java/org/apache/el/parser/AstCompositeExpression.java
@@ -45,8 +45,8 @@ public final class AstCompositeExpression extends SimpleNode {
         StringBuilder sb = new StringBuilder(16);
         Object obj = null;
         if (this.children != null) {
-            for (int i = 0; i < this.children.length; i++) {
-                obj = this.children[i].getValue(ctx);
+            for (Node child : this.children) {
+                obj = child.getValue(ctx);
                 if (obj != null) {
                     sb.append(ELSupport.coerceToString(ctx, obj));
                 }
diff --git a/java/org/apache/el/parser/ELParserTokenManager.java b/java/org/apache/el/parser/ELParserTokenManager.java
index d621765..1a7522a 100644
--- a/java/org/apache/el/parser/ELParserTokenManager.java
+++ b/java/org/apache/el/parser/ELParserTokenManager.java
@@ -194,9 +194,7 @@ private int jjMoveNfa_0(int startState, int curPos)
                default : break;
             }
          } while(i != startsAt);
-      }
-      else
-      {
+      } else {
          int hiByte = (int)(curChar >> 8);
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
@@ -976,9 +974,7 @@ private int jjMoveNfa_2(int startState, int curPos)
                default : break;
             }
          } while(i != startsAt);
-      }
-      else
-      {
+      } else {
          int hiByte = (int)(curChar >> 8);
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
@@ -1751,9 +1747,7 @@ private int jjMoveNfa_1(int startState, int curPos)
                default : break;
             }
          } while(i != startsAt);
-      }
-      else
-      {
+      } else {
          int hiByte = (int)(curChar >> 8);
          int i1 = hiByte >> 6;
          long l1 = 1L << (hiByte & 077);
@@ -2045,9 +2039,7 @@ public Token getNextToken()
        if (jjnewLexState[jjmatchedKind] != -1)
          curLexState = jjnewLexState[jjmatchedKind];
            return matchedToken;
-        }
-        else
-        {
+        } else {
          if (jjnewLexState[jjmatchedKind] != -1)
            curLexState = jjnewLexState[jjmatchedKind];
            continue EOFLoop;
diff --git a/java/org/apache/el/parser/SimpleCharStream.java b/java/org/apache/el/parser/SimpleCharStream.java
index 0984071..5f1f39e 100644
--- a/java/org/apache/el/parser/SimpleCharStream.java
+++ b/java/org/apache/el/parser/SimpleCharStream.java
@@ -60,9 +60,7 @@ public class SimpleCharStream
         bufcolumn = newbufcolumn;
 
         maxNextCharInd = (bufpos += (bufsize - tokenBegin));
-      }
-      else
-      {
+      } else {
         System.arraycopy(buffer, tokenBegin, newbuffer, 0, bufsize - tokenBegin);
         buffer = newbuffer;
 
@@ -432,9 +430,7 @@ public class SimpleCharStream
     if (bufpos >= tokenBegin)
     {
       len = bufpos - tokenBegin + inBuf + 1;
-    }
-    else
-    {
+    } else {
       len = bufsize - tokenBegin + bufpos + 1 + inBuf;
     }
 
diff --git a/java/org/apache/el/parser/SimpleNode.java b/java/org/apache/el/parser/SimpleNode.java
index 2d3e6a6..17b8414 100644
--- a/java/org/apache/el/parser/SimpleNode.java
+++ b/java/org/apache/el/parser/SimpleNode.java
@@ -141,8 +141,8 @@ public abstract class SimpleNode extends ELSupport implements Node {
     public void accept(NodeVisitor visitor) throws Exception {
         visitor.visit(this);
         if (this.children != null && this.children.length > 0) {
-            for (int i = 0; i < this.children.length; i++) {
-                this.children[i].accept(visitor);
+            for (Node child : this.children) {
+                child.accept(visitor);
             }
         }
     }
diff --git a/java/org/apache/el/util/ReflectionUtil.java b/java/org/apache/el/util/ReflectionUtil.java
index acf2271..60f1dcb 100644
--- a/java/org/apache/el/util/ReflectionUtil.java
+++ b/java/org/apache/el/util/ReflectionUtil.java
@@ -438,9 +438,9 @@ public class ReflectionUtil {
         }
         Class<?>[] inf = type.getInterfaces();
         Method mp = null;
-        for (int i = 0; i < inf.length; i++) {
+        for (Class<?> aClass : inf) {
             try {
-                mp = inf[i].getMethod(m.getName(), m.getParameterTypes());
+                mp = aClass.getMethod(m.getName(), m.getParameterTypes());
                 mp = getMethod(mp.getDeclaringClass(), base, mp);
                 if (mp != null) {
                     return mp;
@@ -468,11 +468,11 @@ public class ReflectionUtil {
     private static final String paramString(Class<?>[] types) {
         if (types != null) {
             StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < types.length; i++) {
-                if (types[i] == null) {
+            for (Class<?> type : types) {
+                if (type == null) {
                     sb.append("null, ");
                 } else {
-                    sb.append(types[i].getName()).append(", ");
+                    sb.append(type.getName()).append(", ");
                 }
             }
             if (sb.length() > 2) {
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index 747da71..b5acd0b 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -1730,10 +1730,10 @@ public class JspC extends Task implements Options {
             if (lib.exists() && lib.isDirectory()) {
                 String[] libs = lib.list();
                 if (libs != null) {
-                    for (int i = 0; i < libs.length; i++) {
-                        if( libs[i].length() <5 ) continue;
-                        String ext=libs[i].substring( libs[i].length() - 4 );
-                        if (! ".jar".equalsIgnoreCase(ext)) {
+                    for (String s : libs) {
+                        if (s.length() < 5) continue;
+                        String ext = s.substring(s.length() - 4);
+                        if (!".jar".equalsIgnoreCase(ext)) {
                             if (".tld".equalsIgnoreCase(ext)) {
                                 log.warn("TLD files should not be placed in "
                                          + "/WEB-INF/lib");
@@ -1741,9 +1741,9 @@ public class JspC extends Task implements Options {
                             continue;
                         }
                         try {
-                            File libFile = new File(lib, libs[i]);
+                            File libFile = new File(lib, s);
                             classPath = classPath + File.pathSeparator
-                                + libFile.getAbsolutePath();
+                                    + libFile.getAbsolutePath();
                             urls.add(libFile.getAbsoluteFile().toURI().toURL());
                         } catch (IOException ioe) {
                             // failing a toCanonicalPath on a file that
diff --git a/java/org/apache/jasper/compiler/Collector.java b/java/org/apache/jasper/compiler/Collector.java
index 48f6d0f..cd0f38d 100644
--- a/java/org/apache/jasper/compiler/Collector.java
+++ b/java/org/apache/jasper/compiler/Collector.java
@@ -165,8 +165,8 @@ class Collector {
                 scriptingElementSeen = true;
 
             Node.JspAttribute[] attrs = n.getJspAttributes();
-            for (int i = 0; i < attrs.length; i++) {
-                if (attrs[i].isExpression()) {
+            for (Node.JspAttribute attr : attrs) {
+                if (attr.isExpression()) {
                     scriptingElementSeen = true;
                     break;
                 }
diff --git a/java/org/apache/jasper/compiler/DefaultErrorHandler.java b/java/org/apache/jasper/compiler/DefaultErrorHandler.java
index d3e2eec..3b6cb9c 100644
--- a/java/org/apache/jasper/compiler/DefaultErrorHandler.java
+++ b/java/org/apache/jasper/compiler/DefaultErrorHandler.java
@@ -71,29 +71,29 @@ class DefaultErrorHandler implements ErrorHandler {
         Object[] args = null;
         StringBuilder buf = new StringBuilder();
 
-        for (int i=0; i < details.length; i++) {
-            if (details[i].getJspBeginLineNumber() >= 0) {
-                args = new Object[] {
-                        Integer.valueOf(details[i].getJspBeginLineNumber()),
-                        details[i].getJspFileName() };
+        for (JavacErrorDetail detail : details) {
+            if (detail.getJspBeginLineNumber() >= 0) {
+                args = new Object[]{
+                        Integer.valueOf(detail.getJspBeginLineNumber()),
+                        detail.getJspFileName()};
                 buf.append(System.lineSeparator());
                 buf.append(System.lineSeparator());
                 buf.append(Localizer.getMessage("jsp.error.single.line.number",
                         args));
                 buf.append(System.lineSeparator());
-                buf.append(details[i].getErrorMessage());
+                buf.append(detail.getErrorMessage());
                 buf.append(System.lineSeparator());
-                buf.append(details[i].getJspExtract());
+                buf.append(detail.getJspExtract());
             } else {
-                args = new Object[] {
-                        Integer.valueOf(details[i].getJavaLineNumber()),
-                        details[i].getJavaFileName() };
+                args = new Object[]{
+                        Integer.valueOf(detail.getJavaLineNumber()),
+                        detail.getJavaFileName()};
                 buf.append(System.lineSeparator());
                 buf.append(System.lineSeparator());
                 buf.append(Localizer.getMessage("jsp.error.java.line.number",
                         args));
                 buf.append(System.lineSeparator());
-                buf.append(details[i].getErrorMessage());
+                buf.append(detail.getErrorMessage());
             }
         }
         buf.append(System.lineSeparator());
diff --git a/java/org/apache/jasper/compiler/ELFunctionMapper.java b/java/org/apache/jasper/compiler/ELFunctionMapper.java
index ed004d9..58af9f8 100644
--- a/java/org/apache/jasper/compiler/ELFunctionMapper.java
+++ b/java/org/apache/jasper/compiler/ELFunctionMapper.java
@@ -238,8 +238,7 @@ public class ELFunctionMapper {
                         int iArray = params[k].indexOf('[');
                         if (iArray < 0) {
                             ds.append(params[k] + ".class");
-                        }
-                        else {
+                        } else {
                             String baseType = params[k].substring(0, iArray);
                             ds.append("java.lang.reflect.Array.newInstance(");
                             ds.append(baseType);
diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java
index 17bc381..ea58146 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -338,9 +338,9 @@ class Generator {
                     if (attrNames.length > 0) {
                         poolName.append('&');
                     }
-                    for (int i = 0; i < attrNames.length; i++) {
+                    for (String attrName : attrNames) {
                         poolName.append('_');
-                        poolName.append(attrNames[i]);
+                        poolName.append(attrName);
                     }
                 }
                 if (hasEmptyBody) {
@@ -375,13 +375,13 @@ class Generator {
                     VariableInfo[] varInfos = n.getVariableInfos();
 
                     if (varInfos.length > 0) {
-                        for (int i = 0; i < varInfos.length; i++) {
-                            String varName = varInfos[i].getVarName();
+                        for (VariableInfo varInfo : varInfos) {
+                            String varName = varInfo.getVarName();
                             String tmpVarName = "_jspx_" + varName + "_"
                                     + n.getCustomNestingLevel();
                             if (!vars.contains(tmpVarName)) {
                                 vars.add(tmpVarName);
-                                out.printin(varInfos[i].getClassName());
+                                out.printin(varInfo.getClassName());
                                 out.print(" ");
                                 out.print(tmpVarName);
                                 out.print(" = ");
@@ -390,12 +390,13 @@ class Generator {
                             }
                         }
                     } else {
-                        for (int i = 0; i < tagVarInfos.length; i++) {
-                            String varName = tagVarInfos[i].getNameGiven();
+                        for (TagVariableInfo tagVarInfo : tagVarInfos) {
+                            String varName = tagVarInfo.getNameGiven();
                             if (varName == null) {
                                 varName = n.getTagData().getAttributeString(
-                                        tagVarInfos[i].getNameFromAttribute());
-                            } else if (tagVarInfos[i].getNameFromAttribute() != null) {
+                                        tagVarInfo.getNameFromAttribute());
+                            }
+                            else if (tagVarInfo.getNameFromAttribute() != null) {
                                 // alias
                                 continue;
                             }
@@ -403,7 +404,7 @@ class Generator {
                                     + n.getCustomNestingLevel();
                             if (!vars.contains(tmpVarName)) {
                                 vars.add(tmpVarName);
-                                out.printin(tagVarInfos[i].getClassName());
+                                out.printin(tagVarInfo.getClassName());
                                 out.print(" ");
                                 out.print(tmpVarName);
                                 out.print(" = ");
@@ -1870,21 +1871,19 @@ class Generator {
             // a later test as per JSP.5.3
             VariableInfo[] infos = n.getVariableInfos();
             if (infos != null && infos.length > 0) {
-                for (int i = 0; i < infos.length; i++) {
-                    VariableInfo info = infos[i];
+                for (VariableInfo info : infos) {
                     if (info != null && info.getVarName() != null)
                         pageInfo.getVarInfoNames().add(info.getVarName());
                 }
             }
             TagVariableInfo[] tagInfos = n.getTagVariableInfos();
             if (tagInfos != null && tagInfos.length > 0) {
-                for (int i = 0; i < tagInfos.length; i++) {
-                    TagVariableInfo tagInfo = tagInfos[i];
+                for (TagVariableInfo tagInfo : tagInfos) {
                     if (tagInfo != null) {
                         String name = tagInfo.getNameGiven();
                         if (name == null) {
                             String nameFromAttribute =
-                                tagInfo.getNameFromAttribute();
+                                    tagInfo.getNameFromAttribute();
                             name = n.getAttributeValue(nameFromAttribute);
                         }
                         pageInfo.getVarInfoNames().add(name);
@@ -2716,8 +2715,7 @@ class Generator {
 
             List<Object> vec = n.getScriptingVars(scope);
             if (vec != null) {
-                for (int i = 0; i < vec.size(); i++) {
-                    Object elem = vec.get(i);
+                for (Object elem : vec) {
                     if (elem instanceof VariableInfo) {
                         VariableInfo varInfo = (VariableInfo) elem;
                         if (varInfo.getDeclare()) {
@@ -2733,7 +2731,8 @@ class Generator {
                             if (varName == null) {
                                 varName = n.getTagData().getAttributeString(
                                         tagVarInfo.getNameFromAttribute());
-                            } else if (tagVarInfo.getNameFromAttribute() != null) {
+                            }
+                            else if (tagVarInfo.getNameFromAttribute() != null) {
                                 // alias
                                 continue;
                             }
@@ -2778,14 +2777,14 @@ class Generator {
             List<Object> declaredVariables = n.getScriptingVars(scope);
 
             if (varInfos.length > 0) {
-                for (int i = 0; i < varInfos.length; i++) {
-                    if (varInfos[i].getScope() != scope)
+                for (VariableInfo varInfo : varInfos) {
+                    if (varInfo.getScope() != scope)
                         continue;
                     // If the scripting variable has been declared, skip codes
                     // for saving and restoring it.
-                    if (declaredVariables.contains(varInfos[i]))
+                    if (declaredVariables.contains(varInfo))
                         continue;
-                    String varName = varInfos[i].getVarName();
+                    String varName = varInfo.getVarName();
                     String tmpVarName = "_jspx_" + varName + "_"
                             + n.getCustomNestingLevel();
                     out.printin(tmpVarName);
@@ -2794,18 +2793,19 @@ class Generator {
                     out.println(";");
                 }
             } else {
-                for (int i = 0; i < tagVarInfos.length; i++) {
-                    if (tagVarInfos[i].getScope() != scope)
+                for (TagVariableInfo tagVarInfo : tagVarInfos) {
+                    if (tagVarInfo.getScope() != scope)
                         continue;
                     // If the scripting variable has been declared, skip codes
                     // for saving and restoring it.
-                    if (declaredVariables.contains(tagVarInfos[i]))
+                    if (declaredVariables.contains(tagVarInfo))
                         continue;
-                    String varName = tagVarInfos[i].getNameGiven();
+                    String varName = tagVarInfo.getNameGiven();
                     if (varName == null) {
                         varName = n.getTagData().getAttributeString(
-                                tagVarInfos[i].getNameFromAttribute());
-                    } else if (tagVarInfos[i].getNameFromAttribute() != null) {
+                                tagVarInfo.getNameFromAttribute());
+                    }
+                    else if (tagVarInfo.getNameFromAttribute() != null) {
                         // alias
                         continue;
                     }
@@ -2848,14 +2848,14 @@ class Generator {
             List<Object> declaredVariables = n.getScriptingVars(scope);
 
             if (varInfos.length > 0) {
-                for (int i = 0; i < varInfos.length; i++) {
-                    if (varInfos[i].getScope() != scope)
+                for (VariableInfo varInfo : varInfos) {
+                    if (varInfo.getScope() != scope)
                         continue;
                     // If the scripting variable has been declared, skip codes
                     // for saving and restoring it.
-                    if (declaredVariables.contains(varInfos[i]))
+                    if (declaredVariables.contains(varInfo))
                         continue;
-                    String varName = varInfos[i].getVarName();
+                    String varName = varInfo.getVarName();
                     String tmpVarName = "_jspx_" + varName + "_"
                             + n.getCustomNestingLevel();
                     out.printin(varName);
@@ -2864,18 +2864,19 @@ class Generator {
                     out.println(";");
                 }
             } else {
-                for (int i = 0; i < tagVarInfos.length; i++) {
-                    if (tagVarInfos[i].getScope() != scope)
+                for (TagVariableInfo tagVarInfo : tagVarInfos) {
+                    if (tagVarInfo.getScope() != scope)
                         continue;
                     // If the scripting variable has been declared, skip codes
                     // for saving and restoring it.
-                    if (declaredVariables.contains(tagVarInfos[i]))
+                    if (declaredVariables.contains(tagVarInfo))
                         continue;
-                    String varName = tagVarInfos[i].getNameGiven();
+                    String varName = tagVarInfo.getNameGiven();
                     if (varName == null) {
                         varName = n.getTagData().getAttributeString(
-                                tagVarInfos[i].getNameFromAttribute());
-                    } else if (tagVarInfos[i].getNameFromAttribute() != null) {
+                                tagVarInfo.getNameFromAttribute());
+                    }
+                    else if (tagVarInfo.getNameFromAttribute() != null) {
                         // alias
                         continue;
                     }
@@ -2911,30 +2912,31 @@ class Generator {
             }
 
             if (varInfos.length > 0) {
-                for (int i = 0; i < varInfos.length; i++) {
-                    if (varInfos[i].getScope() == scope) {
-                        out.printin(varInfos[i].getVarName());
+                for (VariableInfo varInfo : varInfos) {
+                    if (varInfo.getScope() == scope) {
+                        out.printin(varInfo.getVarName());
                         out.print(" = (");
-                        out.print(varInfos[i].getClassName());
+                        out.print(varInfo.getClassName());
                         out.print(") _jspx_page_context.findAttribute(");
-                        out.print(quote(varInfos[i].getVarName()));
+                        out.print(quote(varInfo.getVarName()));
                         out.println(");");
                     }
                 }
             } else {
-                for (int i = 0; i < tagVarInfos.length; i++) {
-                    if (tagVarInfos[i].getScope() == scope) {
-                        String name = tagVarInfos[i].getNameGiven();
+                for (TagVariableInfo tagVarInfo : tagVarInfos) {
+                    if (tagVarInfo.getScope() == scope) {
+                        String name = tagVarInfo.getNameGiven();
                         if (name == null) {
                             name = n.getTagData().getAttributeString(
-                                    tagVarInfos[i].getNameFromAttribute());
-                        } else if (tagVarInfos[i].getNameFromAttribute() != null) {
+                                    tagVarInfo.getNameFromAttribute());
+                        }
+                        else if (tagVarInfo.getNameFromAttribute() != null) {
                             // alias
                             continue;
                         }
                         out.printin(name);
                         out.print(" = (");
-                        out.print(tagVarInfos[i].getClassName());
+                        out.print(tagVarInfo.getClassName());
                         out.print(") _jspx_page_context.findAttribute(");
                         out.print(quote(name));
                         out.println(");");
@@ -3101,8 +3103,8 @@ class Generator {
                     sb.append("new java.lang.Class[] {");
 
                     String[] p = attr.getParameterTypeNames();
-                    for (int i = 0; i < p.length; i++) {
-                        sb.append(JspUtil.toJavaSourceTypeFromTld(p[i]));
+                    for (String s : p) {
+                        sb.append(JspUtil.toJavaSourceTypeFromTld(s));
                         sb.append(',');
                     }
                     if (p.length > 0) {
@@ -3137,9 +3139,9 @@ class Generator {
             String aliasMapVar = null;
 
             boolean aliasSeen = false;
-            for (int i = 0; i < tagVars.length; i++) {
+            for (TagVariableInfo tagVar : tagVars) {
 
-                String nameFrom = tagVars[i].getNameFromAttribute();
+                String nameFrom = tagVar.getNameFromAttribute();
                 if (nameFrom != null) {
                     String aliasedName = n.getAttributeValue(nameFrom);
                     if (aliasedName == null)
@@ -3154,7 +3156,7 @@ class Generator {
                     }
                     out.printin(aliasMapVar);
                     out.print(".put(");
-                    out.print(quote(tagVars[i].getNameGiven()));
+                    out.print(quote(tagVar.getNameGiven()));
                     out.print(", ");
                     out.print(quote(aliasedName));
                     out.println(");");
@@ -3510,8 +3512,7 @@ class Generator {
      */
     private void genCommonPostamble() {
         // Append any methods that were generated in the buffer.
-        for (int i = 0; i < methodsBuffered.size(); i++) {
-            GenBuffer methodBuffer = methodsBuffered.get(i);
+        for (GenBuffer methodBuffer : methodsBuffered) {
             methodBuffer.adjustJavaLines(out.getJavaLine() - 1);
             out.printMultiLn(methodBuffer.toString());
         }
@@ -3845,34 +3846,34 @@ class Generator {
 
         // Declare attributes
         TagAttributeInfo[] attrInfos = tagInfo.getAttributes();
-        for (int i = 0; i < attrInfos.length; i++) {
+        for (TagAttributeInfo info : attrInfos) {
             out.printin("private ");
-            if (attrInfos[i].isFragment()) {
+            if (info.isFragment()) {
                 out.print("javax.servlet.jsp.tagext.JspFragment ");
             } else {
-                out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
+                out.print(JspUtil.toJavaSourceType(info.getTypeName()));
                 out.print(" ");
             }
             out.print(JspUtil.makeJavaIdentifierForAttribute(
-                    attrInfos[i].getName()));
+                    info.getName()));
             out.println(";");
         }
         out.println();
 
         // Define attribute getter and setter methods
-        for (int i = 0; i < attrInfos.length; i++) {
+        for (TagAttributeInfo attrInfo : attrInfos) {
             String javaName =
-                JspUtil.makeJavaIdentifierForAttribute(attrInfos[i].getName());
+                    JspUtil.makeJavaIdentifierForAttribute(attrInfo.getName());
 
             // getter method
             out.printin("public ");
-            if (attrInfos[i].isFragment()) {
+            if (attrInfo.isFragment()) {
                 out.print("javax.servlet.jsp.tagext.JspFragment ");
             } else {
-                out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
+                out.print(JspUtil.toJavaSourceType(attrInfo.getTypeName()));
                 out.print(" ");
             }
-            out.print(toGetterMethod(attrInfos[i].getName()));
+            out.print(toGetterMethod(attrInfo.getName()));
             out.println(" {");
             out.pushIndent();
             out.printin("return this.");
@@ -3884,12 +3885,12 @@ class Generator {
 
             // setter method
             out.printin("public void ");
-            out.print(toSetterMethodName(attrInfos[i].getName()));
-            if (attrInfos[i].isFragment()) {
+            out.print(toSetterMethodName(attrInfo.getName()));
+            if (attrInfo.isFragment()) {
                 out.print("(javax.servlet.jsp.tagext.JspFragment ");
             } else {
                 out.print("(");
-                out.print(JspUtil.toJavaSourceType(attrInfos[i].getTypeName()));
+                out.print(JspUtil.toJavaSourceType(attrInfo.getTypeName()));
                 out.print(" ");
             }
             out.print(javaName);
@@ -3903,7 +3904,7 @@ class Generator {
             if (ctxt.isTagFile()) {
                 // Tag files should also set jspContext attributes
                 out.printin("jspContext.setAttribute(\"");
-                out.print(attrInfos[i].getName());
+                out.print(attrInfo.getName());
                 out.print("\", ");
                 out.print(javaName);
                 out.println(");");
@@ -3929,9 +3930,9 @@ class Generator {
         // Determine if there are any aliases
         boolean aliasSeen = false;
         TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos();
-        for (int i = 0; i < tagVars.length; i++) {
-            if (tagVars[i].getNameFromAttribute() != null
-                    && tagVars[i].getNameGiven() != null) {
+        for (TagVariableInfo var : tagVars) {
+            if (var.getNameFromAttribute() != null
+                    && var.getNameGiven() != null) {
                 aliasSeen = true;
                 break;
             }
@@ -3948,35 +3949,35 @@ class Generator {
         out.printil("java.util.ArrayList _jspx_at_begin = null;");
         out.printil("java.util.ArrayList _jspx_at_end = null;");
 
-        for (int i = 0; i < tagVars.length; i++) {
+        for (TagVariableInfo tagVar : tagVars) {
 
-            switch (tagVars[i].getScope()) {
-            case VariableInfo.NESTED:
-                if (!nestedSeen) {
-                    out.printil("_jspx_nested = new java.util.ArrayList();");
-                    nestedSeen = true;
-                }
-                out.printin("_jspx_nested.add(");
-                break;
+            switch (tagVar.getScope()) {
+                case VariableInfo.NESTED:
+                    if (!nestedSeen) {
+                        out.printil("_jspx_nested = new java.util.ArrayList();");
+                        nestedSeen = true;
+                    }
+                    out.printin("_jspx_nested.add(");
+                    break;
 
-            case VariableInfo.AT_BEGIN:
-                if (!atBeginSeen) {
-                    out.printil("_jspx_at_begin = new java.util.ArrayList();");
-                    atBeginSeen = true;
-                }
-                out.printin("_jspx_at_begin.add(");
-                break;
+                case VariableInfo.AT_BEGIN:
+                    if (!atBeginSeen) {
+                        out.printil("_jspx_at_begin = new java.util.ArrayList();");
+                        atBeginSeen = true;
+                    }
+                    out.printin("_jspx_at_begin.add(");
+                    break;
 
-            case VariableInfo.AT_END:
-                if (!atEndSeen) {
-                    out.printil("_jspx_at_end = new java.util.ArrayList();");
-                    atEndSeen = true;
-                }
-                out.printin("_jspx_at_end.add(");
-                break;
+                case VariableInfo.AT_END:
+                    if (!atEndSeen) {
+                        out.printil("_jspx_at_end = new java.util.ArrayList();");
+                        atEndSeen = true;
+                    }
+                    out.printin("_jspx_at_end.add(");
+                    break;
             } // switch
 
-            out.print(quote(tagVars[i].getNameGiven()));
+            out.print(quote(tagVar.getNameGiven()));
             out.println(");");
         }
         if (aliasSeen) {
@@ -4121,16 +4122,16 @@ class Generator {
                 BeanInfo tagClassInfo = Introspector
                         .getBeanInfo(tagHandlerClass);
                 PropertyDescriptor[] pd = tagClassInfo.getPropertyDescriptors();
-                for (int i = 0; i < pd.length; i++) {
+                for (PropertyDescriptor propertyDescriptor : pd) {
                     /*
                      * FIXME: should probably be checking for things like
                      * pageContext, bodyContent, and parent here -akv
                      */
-                    if (pd[i].getWriteMethod() != null) {
-                        methodMaps.put(pd[i].getName(), pd[i].getWriteMethod());
+                    if (propertyDescriptor.getWriteMethod() != null) {
+                        methodMaps.put(propertyDescriptor.getName(), propertyDescriptor.getWriteMethod());
                     }
-                    if (pd[i].getPropertyEditorClass() != null)
-                        propertyEditorMaps.put(pd[i].getName(), pd[i]
+                    if (propertyDescriptor.getPropertyEditorClass() != null)
+                        propertyEditorMaps.put(propertyDescriptor.getName(), propertyDescriptor
                                 .getPropertyEditorClass());
                 }
             } catch (IntrospectionException ie) {
@@ -4365,8 +4366,7 @@ class Generator {
         public void generatePostamble() {
             ServletWriter out = this.classBuffer.getOut();
             // Generate all fragment methods:
-            for (int i = 0; i < fragments.size(); i++) {
-                Fragment fragment = fragments.get(i);
+            for (Fragment fragment : fragments) {
                 fragment.getGenBuffer().adjustJavaLines(out.getJavaLine() - 1);
                 out.printMultiLn(fragment.getGenBuffer().toString());
             }
@@ -4440,8 +4440,7 @@ class Generator {
         }
 
         public void adjustJavaLines(int offset) {
-            for (int i = 0; i < fragments.size(); i++) {
-                Fragment fragment = fragments.get(i);
+            for (Fragment fragment : fragments) {
                 fragment.getGenBuffer().adjustJavaLines(offset);
             }
         }
diff --git a/java/org/apache/jasper/compiler/JDTCompiler.java b/java/org/apache/jasper/compiler/JDTCompiler.java
index a561cbe..0890885 100644
--- a/java/org/apache/jasper/compiler/JDTCompiler.java
+++ b/java/org/apache/jasper/compiler/JDTCompiler.java
@@ -472,11 +472,10 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler {
                     try {
                         if (result.hasProblems()) {
                             IProblem[] problems = result.getProblems();
-                            for (int i = 0; i < problems.length; i++) {
-                                IProblem problem = problems[i];
+                            for (IProblem problem : problems) {
                                 if (problem.isError()) {
                                     String name =
-                                        new String(problems[i].getOriginatingFileName());
+                                            new String(problem.getOriginatingFileName());
                                     try {
                                         problemList.add(ErrorDispatcher.createJavacError
                                                 (name, pageNodes, new StringBuilder(problem.getMessage()),
@@ -489,22 +488,20 @@ public class JDTCompiler extends org.apache.jasper.compiler.Compiler {
                         }
                         if (problemList.isEmpty()) {
                             ClassFile[] classFiles = result.getClassFiles();
-                            for (int i = 0; i < classFiles.length; i++) {
-                                ClassFile classFile = classFiles[i];
+                            for (ClassFile classFile : classFiles) {
                                 char[][] compoundName =
-                                    classFile.getCompoundName();
+                                        classFile.getCompoundName();
                                 StringBuilder classFileName = new StringBuilder(outputDir).append('/');
                                 for (int j = 0;
                                      j < compoundName.length; j++) {
-                                    if(j > 0)
+                                    if (j > 0)
                                         classFileName.append('/');
                                     classFileName.append(compoundName[j]);
                                 }
                                 byte[] bytes = classFile.getBytes();
                                 classFileName.append(".class");
-                                try (FileOutputStream fout = new FileOutputStream(
-                                        classFileName.toString());
-                                        BufferedOutputStream bos = new BufferedOutputStream(fout);) {
+                                try (FileOutputStream fout = new FileOutputStream(classFileName.toString());
+                                        BufferedOutputStream bos = new BufferedOutputStream(fout)) {
                                     bos.write(bytes);
                                 }
                             }
diff --git a/java/org/apache/jasper/compiler/JspRuntimeContext.java b/java/org/apache/jasper/compiler/JspRuntimeContext.java
index 87157ff..8cb924c 100644
--- a/java/org/apache/jasper/compiler/JspRuntimeContext.java
+++ b/java/org/apache/jasper/compiler/JspRuntimeContext.java
@@ -367,11 +367,11 @@ public final class JspRuntimeContext {
         compileCheckInProgress = true;
 
         Object [] wrappers = jsps.values().toArray();
-        for (int i = 0; i < wrappers.length; i++ ) {
-            JspServletWrapper jsw = (JspServletWrapper)wrappers[i];
+        for (Object wrapper : wrappers) {
+            JspServletWrapper jsw = (JspServletWrapper) wrapper;
             JspCompilationContext ctxt = jsw.getJspEngineContext();
             // Sync on JspServletWrapper when calling ctxt.compile()
-            synchronized(jsw) {
+            synchronized (jsw) {
                 try {
                     ctxt.compile();
                     if (jsw.getReload()) {
@@ -442,16 +442,16 @@ public final class JspRuntimeContext {
         if (parentClassLoader instanceof URLClassLoader) {
             URL [] urls = ((URLClassLoader)parentClassLoader).getURLs();
 
-            for (int i = 0; i < urls.length; i++) {
+            for (URL url : urls) {
                 // Tomcat can use URLs other than file URLs. However, a protocol
                 // other than file: will generate a bad file system path, so
                 // only add file: protocol URLs to the classpath.
 
-                if (urls[i].getProtocol().equals("file") ) {
+                if (url.getProtocol().equals("file")) {
                     try {
                         // Need to decode the URL, primarily to convert %20
                         // sequences back to spaces
-                        String decoded = urls[i].toURI().getPath();
+                        String decoded = url.toURI().getPath();
                         cpath.append(decoded + File.pathSeparator);
                     } catch (URISyntaxException e) {
                         log.warn(Localizer.getMessage("jsp.warning.classpathUrl"), e);
@@ -577,14 +577,14 @@ public final class JspRuntimeContext {
         if (jspIdleTimeout > 0) {
             long unloadBefore = now - jspIdleTimeout;
             Object [] wrappers = jsps.values().toArray();
-            for (int i = 0; i < wrappers.length; i++ ) {
-                JspServletWrapper jsw = (JspServletWrapper)wrappers[i];
-                synchronized(jsw) {
+            for (Object wrapper : wrappers) {
+                JspServletWrapper jsw = (JspServletWrapper) wrapper;
+                synchronized (jsw) {
                     if (jsw.getLastUsageTime() < unloadBefore) {
                         if (log.isDebugEnabled()) {
                             log.debug(Localizer.getMessage("jsp.message.jsp_removed_idle",
-                                                           jsw.getJspUri(), context.getContextPath(),
-                                                           "" + (now-jsw.getLastUsageTime())));
+                                    jsw.getJspUri(), context.getContextPath(),
+                                    "" + (now - jsw.getLastUsageTime())));
                         }
                         if (jspQueue != null) {
                             jspQueue.remove(jsw.getUnloadHandle());
diff --git a/java/org/apache/jasper/compiler/JspUtil.java b/java/org/apache/jasper/compiler/JspUtil.java
index d51f2fa..c1f5ec0 100644
--- a/java/org/apache/jasper/compiler/JspUtil.java
+++ b/java/org/apache/jasper/compiler/JspUtil.java
@@ -165,16 +165,16 @@ public class JspUtil {
          */
         String missingAttribute = null;
 
-        for (int i = 0; i < validAttributes.length; i++) {
+        for (ValidAttribute value : validAttributes) {
             int attrPos;
-            if (validAttributes[i].mandatory) {
-                attrPos = temp.indexOf(validAttributes[i].name);
+            if (value.mandatory) {
+                attrPos = temp.indexOf(value.name);
                 if (attrPos != -1) {
                     temp.remove(attrPos);
                     valid = true;
                 } else {
                     valid = false;
-                    missingAttribute = validAttributes[i].name;
+                    missingAttribute = value.name;
                     break;
                 }
             }
@@ -193,13 +193,10 @@ public class JspUtil {
         }
 
         // Now check to see if the rest of the attributes are valid too.
-        String attribute = null;
-
-        for (int j = 0; j < attrLeftLength; j++) {
+        for(String attribute : temp) {
             valid = false;
-            attribute = temp.elementAt(j);
-            for (int i = 0; i < validAttributes.length; i++) {
-                if (attribute.equals(validAttributes[i].name)) {
+            for (ValidAttribute validAttribute : validAttributes) {
+                if (attribute.equals(validAttribute.name)) {
                     valid = true;
                     break;
                 }
@@ -773,10 +770,12 @@ public class JspUtil {
     public static final String makeJavaPackage(String path) {
         String classNameComponents[] = split(path, "/");
         StringBuilder legalClassNames = new StringBuilder();
-        for (int i = 0; i < classNameComponents.length; i++) {
-            legalClassNames.append(makeJavaIdentifier(classNameComponents[i]));
-            if (i < classNameComponents.length - 1) {
-                legalClassNames.append('.');
+        for (String classNameComponent : classNameComponents) {
+            if (classNameComponent.length() > 0) {
+                if (legalClassNames.length() > 0) {
+                    legalClassNames.append('.');
+                }
+                legalClassNames.append(makeJavaIdentifier(classNameComponent));
             }
         }
         return legalClassNames.toString();
diff --git a/java/org/apache/jasper/compiler/Node.java b/java/org/apache/jasper/compiler/Node.java
index 687b19c..67ff2b9 100644
--- a/java/org/apache/jasper/compiler/Node.java
+++ b/java/org/apache/jasper/compiler/Node.java
@@ -1718,9 +1718,9 @@ abstract class Node implements TagConstants {
             boolean result = false;
 
             TagAttributeInfo[] attributes = tagInfo.getAttributes();
-            for (int i = 0; i < attributes.length; i++) {
-                if (attributes[i].getName().equals(name)
-                        && attributes[i].isFragment()) {
+            for (TagAttributeInfo attribute : attributes) {
+                if (attribute.getName().equals(name)
+                        && attribute.isFragment()) {
                     result = true;
                     break;
                 }
diff --git a/java/org/apache/jasper/compiler/Parser.java b/java/org/apache/jasper/compiler/Parser.java
index 9de1f1e..98eb9c2 100644
--- a/java/org/apache/jasper/compiler/Parser.java
+++ b/java/org/apache/jasper/compiler/Parser.java
@@ -1742,12 +1742,12 @@ class Parser implements TagConstants {
         if (n instanceof Node.CustomTag) {
             TagInfo tagInfo = ((Node.CustomTag) n).getTagInfo();
             TagAttributeInfo[] tldAttrs = tagInfo.getAttributes();
-            for (int i = 0; i < tldAttrs.length; i++) {
-                if (name.equals(tldAttrs[i].getName())) {
-                    if (tldAttrs[i].isFragment()) {
+            for (TagAttributeInfo tldAttr : tldAttrs) {
+                if (name.equals(tldAttr.getName())) {
+                    if (tldAttr.isFragment()) {
                         return TagInfo.BODY_CONTENT_SCRIPTLESS;
                     }
-                    if (tldAttrs[i].canBeRequestTime()) {
+                    if (tldAttr.canBeRequestTime()) {
                         return TagInfo.BODY_CONTENT_JSP;
                     }
                 }
diff --git a/java/org/apache/jasper/compiler/ParserController.java b/java/org/apache/jasper/compiler/ParserController.java
index 47fbb4a..f398ebb 100644
--- a/java/org/apache/jasper/compiler/ParserController.java
+++ b/java/org/apache/jasper/compiler/ParserController.java
@@ -445,8 +445,7 @@ class ParserController implements TagConstants {
             boolean isDirective = jspReader.matches("%@");
             if (isDirective) {
                 jspReader.skipSpaces();
-            }
-            else {
+            } else {
                 isDirective = jspReader.matches("jsp:directive.");
             }
             if (!isDirective) {
diff --git a/java/org/apache/jasper/compiler/ScriptingVariabler.java b/java/org/apache/jasper/compiler/ScriptingVariabler.java
index a9628fa..59c2db9 100644
--- a/java/org/apache/jasper/compiler/ScriptingVariabler.java
+++ b/java/org/apache/jasper/compiler/ScriptingVariabler.java
@@ -105,34 +105,34 @@ class ScriptingVariabler {
             }
 
             if (varInfos.length > 0) {
-                for (int i=0; i<varInfos.length; i++) {
-                    if (varInfos[i].getScope() != scope
-                            || !varInfos[i].getDeclare()) {
+                for (VariableInfo varInfo : varInfos) {
+                    if (varInfo.getScope() != scope
+                            || !varInfo.getDeclare()) {
                         continue;
                     }
-                    String varName = varInfos[i].getVarName();
+                    String varName = varInfo.getVarName();
 
                     Integer currentRange = scriptVars.get(varName);
                     if (currentRange == null ||
                             ownRange.compareTo(currentRange) > 0) {
                         scriptVars.put(varName, ownRange);
-                        vec.add(varInfos[i]);
+                        vec.add(varInfo);
                     }
                 }
             } else {
-                for (int i=0; i<tagVarInfos.length; i++) {
-                    if (tagVarInfos[i].getScope() != scope
-                            || !tagVarInfos[i].getDeclare()) {
+                for (TagVariableInfo tagVarInfo : tagVarInfos) {
+                    if (tagVarInfo.getScope() != scope
+                            || !tagVarInfo.getDeclare()) {
                         continue;
                     }
-                    String varName = tagVarInfos[i].getNameGiven();
+                    String varName = tagVarInfo.getNameGiven();
                     if (varName == null) {
                         varName = n.getTagData().getAttributeString(
-                                        tagVarInfos[i].getNameFromAttribute());
+                                tagVarInfo.getNameFromAttribute());
                         if (varName == null) {
                             err.jspError(n,
                                     "jsp.error.scripting.variable.missing_name",
-                                    tagVarInfos[i].getNameFromAttribute());
+                                    tagVarInfo.getNameFromAttribute());
                         }
                     }
 
@@ -140,7 +140,7 @@ class ScriptingVariabler {
                     if (currentRange == null ||
                             ownRange.compareTo(currentRange) > 0) {
                         scriptVars.put(varName, ownRange);
-                        vec.add(tagVarInfos[i]);
+                        vec.add(tagVarInfo);
                     }
                 }
             }
diff --git a/java/org/apache/jasper/compiler/SmapUtil.java b/java/org/apache/jasper/compiler/SmapUtil.java
index 73ac335..791ca1e 100644
--- a/java/org/apache/jasper/compiler/SmapUtil.java
+++ b/java/org/apache/jasper/compiler/SmapUtil.java
@@ -328,8 +328,8 @@ public class SmapUtil {
         void writeAttrForSDE(int index) {
             writeU2(index);
             writeU4(sdeAttr.length);
-            for (int i = 0; i < sdeAttr.length; ++i) {
-                writeU1(sdeAttr[i]);
+            for (byte b : sdeAttr) {
+                writeU1(b);
             }
         }
 
@@ -383,8 +383,8 @@ public class SmapUtil {
         }
 
         void writeBytes(byte[] bytes) {
-            for (int i = 0; i < bytes.length; ++i) {
-                gen[genPos++] = bytes[i];
+            for (byte aByte : bytes) {
+                gen[genPos++] = aByte;
             }
         }
 
@@ -614,14 +614,14 @@ public class SmapUtil {
             java.util.ArrayList<Integer> extraSmap = n.getExtraSmap();
 
             if (extraSmap != null) {
-                for (int i = 0; i < extraSmap.size(); i++) {
+                for (Integer integer : extraSmap) {
                     iOutputStartLine += iOutputLineIncrement;
                     smap.addLineData(
-                        iInputStartLine+extraSmap.get(i).intValue(),
-                        fileName,
-                        1,
-                        iOutputStartLine,
-                        iOutputLineIncrement);
+                            iInputStartLine + integer.intValue(),
+                            fileName,
+                            1,
+                            iOutputStartLine,
+                            iOutputLineIncrement);
                 }
             }
         }
diff --git a/java/org/apache/jasper/compiler/Validator.java b/java/org/apache/jasper/compiler/Validator.java
index 2a6820a..329419a 100644
--- a/java/org/apache/jasper/compiler/Validator.java
+++ b/java/org/apache/jasper/compiler/Validator.java
@@ -853,25 +853,25 @@ class Validator {
             String customActionUri = n.getURI();
             Attributes attrs = n.getAttributes();
             int attrsSize = (attrs == null) ? 0 : attrs.getLength();
-            for (int i = 0; i < tldAttrs.length; i++) {
+            for (TagAttributeInfo tldAttr : tldAttrs) {
                 String attr = null;
                 if (attrs != null) {
-                    attr = attrs.getValue(tldAttrs[i].getName());
+                    attr = attrs.getValue(tldAttr.getName());
                     if (attr == null) {
-                        attr = attrs.getValue(customActionUri, tldAttrs[i]
+                        attr = attrs.getValue(customActionUri, tldAttr
                                 .getName());
                     }
                 }
-                Node.NamedAttribute na = n.getNamedAttributeNode(tldAttrs[i]
+                Node.NamedAttribute na = n.getNamedAttributeNode(tldAttr
                         .getName());
 
-                if (tldAttrs[i].isRequired() && attr == null && na == null) {
-                    err.jspError(n, "jsp.error.missing_attribute", tldAttrs[i]
+                if (tldAttr.isRequired() && attr == null && na == null) {
+                    err.jspError(n, "jsp.error.missing_attribute", tldAttr
                             .getName(), n.getLocalName());
                 }
                 if (attr != null && na != null) {
                     err.jspError(n, "jsp.error.duplicate.name.jspattribute",
-                            tldAttrs[i].getName());
+                            tldAttr.getName());
                 }
             }
 
@@ -1294,7 +1294,7 @@ class Validator {
                 Node.NamedAttribute na = (Node.NamedAttribute) naNodes
                         .getNode(i);
                 boolean found = false;
-                for (int j = 0; j < tldAttrs.length; j++) {
+                for (TagAttributeInfo tldAttr : tldAttrs) {
                     /*
                      * See above comment about namespace matches. For named
                      * attributes, we use the prefix instead of URI as the match
@@ -1304,11 +1304,11 @@ class Validator {
                      * that the prefix of the named attribute's name matches to.
                      */
                     String attrPrefix = na.getPrefix();
-                    if (na.getLocalName().equals(tldAttrs[j].getName())
+                    if (na.getLocalName().equals(tldAttr.getName())
                             && (attrPrefix == null || attrPrefix.length() == 0 || attrPrefix
-                                    .equals(n.getPrefix()))) {
+                            .equals(n.getPrefix()))) {
                         jspAttrs[start + i] = new Node.JspAttribute(na,
-                                tldAttrs[j], false);
+                                tldAttr, false);
                         NamedAttributeVisitor nav = null;
                         if (na.getBody() != null) {
                             nav = new NamedAttributeVisitor();
@@ -1793,13 +1793,13 @@ class Validator {
                 errMsg.append(Localizer.getMessage(
                         "jsp.error.tei.invalid.attributes", n.getQName()));
                 errMsg.append("</h3>");
-                for (int i = 0; i < errors.length; i++) {
+                for (ValidationMessage error : errors) {
                     errMsg.append("<p>");
-                    if (errors[i].getId() != null) {
-                        errMsg.append(errors[i].getId());
+                    if (error.getId() != null) {
+                        errMsg.append(error.getId());
                         errMsg.append(": ");
                     }
-                    errMsg.append(errors[i].getMessage());
+                    errMsg.append(error.getMessage());
                     errMsg.append("</p>");
                 }
 
@@ -1881,10 +1881,8 @@ class Validator {
         StringBuilder errMsg = null;
         ErrorDispatcher errDisp = compiler.getErrorDispatcher();
 
-        for (Iterator<TagLibraryInfo> iter =
-            compiler.getPageInfo().getTaglibs().iterator(); iter.hasNext();) {
+        for (Object o : compiler.getPageInfo().getTaglibs()) {
 
-            Object o = iter.next();
             if (!(o instanceof TagLibraryInfoImpl))
                 continue;
             TagLibraryInfoImpl tli = (TagLibraryInfoImpl) o;
@@ -1899,12 +1897,12 @@ class Validator {
                         "jsp.error.tlv.invalid.page", tli.getShortName(),
                         compiler.getPageInfo().getJspFile()));
                 errMsg.append("</h3>");
-                for (int i = 0; i < errors.length; i++) {
-                    if (errors[i] != null) {
+                for (ValidationMessage error : errors) {
+                    if (error != null) {
                         errMsg.append("<p>");
-                        errMsg.append(errors[i].getId());
+                        errMsg.append(error.getId());
                         errMsg.append(": ");
-                        errMsg.append(errors[i].getMessage());
+                        errMsg.append(error.getMessage());
                         errMsg.append("</p>");
                     }
                 }
diff --git a/java/org/apache/jasper/runtime/JspApplicationContextImpl.java b/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
index ec41f26..66690ad 100644
--- a/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
+++ b/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
@@ -109,8 +109,8 @@ public class JspApplicationContextImpl implements JspApplicationContext {
 
     protected void fireListeners(ELContext elContext) {
         ELContextEvent event = new ELContextEvent(elContext);
-        for (int i = 0; i < this.contextListeners.size(); i++) {
-            this.contextListeners.get(i).contextCreated(event);
+        for (ELContextListener contextListener : this.contextListeners) {
+            contextListener.contextCreated(event);
         }
     }
 
diff --git a/java/org/apache/jasper/runtime/JspContextWrapper.java b/java/org/apache/jasper/runtime/JspContextWrapper.java
index 765edf3..2b60097 100644
--- a/java/org/apache/jasper/runtime/JspContextWrapper.java
+++ b/java/org/apache/jasper/runtime/JspContextWrapper.java
@@ -103,8 +103,7 @@ public class JspContextWrapper extends PageContext implements VariableResolver {
         this.invokingJspCtxt = (PageContext) jspContext;
         if (jspContext instanceof JspContextWrapper) {
             rootJspCtxt = ((JspContextWrapper)jspContext).rootJspCtxt;
-        }
-        else {
+        } else {
             rootJspCtxt = invokingJspCtxt;
         }
         this.nestedVars = nestedVars;
diff --git a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
index e846229..0817a8f 100644
--- a/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
+++ b/java/org/apache/jasper/runtime/JspRuntimeLibrary.java
@@ -269,16 +269,14 @@ public class JspRuntimeLibrary {
         Class<?> type = null;
         Class<?> propertyEditorClass = null;
         try {
-            java.beans.BeanInfo info
-                = java.beans.Introspector.getBeanInfo(bean.getClass());
-            if ( info != null ) {
-                java.beans.PropertyDescriptor pd[]
-                    = info.getPropertyDescriptors();
-                for (int i = 0 ; i < pd.length ; i++) {
-                    if ( pd[i].getName().equals(prop) ) {
-                        method = pd[i].getWriteMethod();
-                        type   = pd[i].getPropertyType();
-                        propertyEditorClass = pd[i].getPropertyEditorClass();
+            java.beans.BeanInfo info = java.beans.Introspector.getBeanInfo(bean.getClass());
+            if (info != null) {
+                java.beans.PropertyDescriptor pd[] = info.getPropertyDescriptors();
+                for (java.beans.PropertyDescriptor propertyDescriptor : pd) {
+                    if (propertyDescriptor.getName().equals(prop)) {
+                        method = propertyDescriptor.getWriteMethod();
+                        type = propertyDescriptor.getPropertyType();
+                        propertyEditorClass = propertyDescriptor.getPropertyEditorClass();
                         break;
                     }
                 }
@@ -694,10 +692,10 @@ public class JspRuntimeLibrary {
         try {
             java.beans.BeanInfo info = java.beans.Introspector.getBeanInfo(beanClass);
             java.beans.PropertyDescriptor pd[] = info.getPropertyDescriptors();
-            for (int i = 0 ; i < pd.length ; i++) {
-                if ( pd[i].getName().equals(prop) ) {
-                    method = pd[i].getWriteMethod();
-                    type = pd[i].getPropertyType();
+            for (java.beans.PropertyDescriptor propertyDescriptor : pd) {
+                if (propertyDescriptor.getName().equals(prop)) {
+                    method = propertyDescriptor.getWriteMethod();
+                    type = propertyDescriptor.getPropertyType();
                     break;
                 }
             }
@@ -725,10 +723,10 @@ public class JspRuntimeLibrary {
         try {
             java.beans.BeanInfo info = java.beans.Introspector.getBeanInfo(beanClass);
             java.beans.PropertyDescriptor pd[] = info.getPropertyDescriptors();
-            for (int i = 0 ; i < pd.length ; i++) {
-                if (pd[i].getName().equals(prop)) {
-                    method = pd[i].getReadMethod();
-                    type = pd[i].getPropertyType();
+            for (java.beans.PropertyDescriptor propertyDescriptor : pd) {
+                if (propertyDescriptor.getName().equals(prop)) {
+                    method = propertyDescriptor.getReadMethod();
+                    type = propertyDescriptor.getPropertyType();
                     break;
                 }
             }
@@ -821,8 +819,7 @@ public class JspRuntimeLibrary {
                 if (uri.lastIndexOf('/') >= 0)
                     uri = uri.substring(0, uri.lastIndexOf('/'));
             }
-        }
-        else {
+        } else {
             uri = hrequest.getServletPath();
             if (uri.lastIndexOf('/') >= 0)
                 uri = uri.substring(0, uri.lastIndexOf('/'));
@@ -915,11 +912,11 @@ public class JspRuntimeLibrary {
                     continue;
                 }
                 byte[] ba = buf.toByteArray();
-                for (int j = 0; j < ba.length; j++) {
+                for (byte b : ba) {
                     out.append('%');
                     // Converting each byte in the buffer
-                    out.append(Character.forDigit((ba[j]>>4) & 0xf, 16));
-                    out.append(Character.forDigit(ba[j] & 0xf, 16));
+                    out.append(Character.forDigit((b >> 4) & 0xf, 16));
+                    out.append(Character.forDigit(b & 0xf, 16));
                 }
                 buf.reset();
             }
diff --git a/java/org/apache/jasper/runtime/JspWriterImpl.java b/java/org/apache/jasper/runtime/JspWriterImpl.java
index e01a4df..ad1ffed 100644
--- a/java/org/apache/jasper/runtime/JspWriterImpl.java
+++ b/java/org/apache/jasper/runtime/JspWriterImpl.java
@@ -213,8 +213,7 @@ public class JspWriterImpl extends JspWriter {
         if (bufferSize == 0) {
             initOut();
             out.write(c);
-        }
-        else {
+        } else {
             if (nextChar >= bufferSize)
                 if (autoFlush)
                     flushBuffer();
diff --git a/java/org/apache/jasper/servlet/JspCServletContext.java b/java/org/apache/jasper/servlet/JspCServletContext.java
index aa833f4..fa24ce5 100644
--- a/java/org/apache/jasper/servlet/JspCServletContext.java
+++ b/java/org/apache/jasper/servlet/JspCServletContext.java
@@ -447,12 +447,13 @@ public class JspCServletContext implements ServletContext {
             if (theBaseDir.isDirectory()) {
                 String theFiles[] = theBaseDir.list();
                 if (theFiles != null) {
-                    for (int i = 0; i < theFiles.length; i++) {
-                        File testFile = new File(basePath + File.separator + theFiles[i]);
+                    for (String theFile : theFiles) {
+                        File testFile = new File(basePath + File.separator + theFile);
                         if (testFile.isFile()) {
-                            thePaths.add(path + theFiles[i]);
-                        } else if (testFile.isDirectory()) {
-                            thePaths.add(path + theFiles[i] + "/");
+                            thePaths.add(path + theFile);
+                        }
+                        else if (testFile.isDirectory()) {
+                            thePaths.add(path + theFile + "/");
                         }
                     }
                 }
diff --git a/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java b/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java
index 2605e83..0fa6da6 100644
--- a/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java
+++ b/java/org/apache/jasper/tagplugins/jstl/core/ForEach.java
@@ -57,8 +57,7 @@ public final class ForEach implements TagPlugin {
             ctxt.generateJavaSource("; " + index + "+=");
             ctxt.generateAttribute("step");
             ctxt.generateJavaSource(") {");
-        }
-        else {
+        } else {
             ctxt.generateJavaSource("; " + index + "++) {");
         }
 
@@ -189,15 +188,13 @@ public final class ForEach implements TagPlugin {
         if (hasEnd) {
             if (hasStep) {
                 ctxt.generateJavaSource(indexV + "+=" + stepV + ";");
-            }
-            else {
+            } else {
                 ctxt.generateJavaSource(indexV + "++;");
             }
             if (hasBegin) {
                 ctxt.generateJavaSource("if(" + beginV + "+" + indexV +
                         ">"+ endV + ")");
-            }
-            else {
+            } else {
                 ctxt.generateJavaSource("if(" + indexV + ">" + endV + ")");
             }
             ctxt.generateJavaSource("break;");
diff --git a/java/org/apache/jasper/tagplugins/jstl/core/When.java b/java/org/apache/jasper/tagplugins/jstl/core/When.java
index 2661f6e..176b1ce 100644
--- a/java/org/apache/jasper/tagplugins/jstl/core/When.java
+++ b/java/org/apache/jasper/tagplugins/jstl/core/When.java
@@ -35,8 +35,7 @@ public final class When implements TagPlugin {
         if ("true".equals(parentContext.getPluginAttribute("hasBeenHere"))) {
             ctxt.generateJavaSource("} else if(");
             // See comment below for the reason we generate the extra "}" here.
-        }
-        else {
+        } else {
             ctxt.generateJavaSource("if(");
             parentContext.setPluginAttribute("hasBeenHere", "true");
         }
diff --git a/java/org/apache/juli/ClassLoaderLogManager.java b/java/org/apache/juli/ClassLoaderLogManager.java
index b8adb3e..a04285c 100644
--- a/java/org/apache/juli/ClassLoaderLogManager.java
+++ b/java/org/apache/juli/ClassLoaderLogManager.java
@@ -30,7 +30,6 @@ import java.security.PrivilegedAction;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.StringTokenizer;
@@ -485,8 +484,7 @@ public class ClassLoaderLogManager extends LogManager {
                     Permission perm = ace.getPermission();
                     if (perm instanceof FilePermission && perm.getActions().equals("read")) {
                         log.warning("Reading " + perm.getName() + " is not permitted. See \"per context logging\" in the default catalina.policy file.");
-                    }
-                    else {
+                    } else {
                         log.warning("Reading logging.properties is not permitted in some context. See \"per context logging\" in the default catalina.policy file.");
                         log.warning("Original error was: " + ace.getMessage());
                     }
@@ -751,9 +749,7 @@ public class ClassLoaderLogManager extends LogManager {
         }
 
         void setParentLogger(final Logger parent) {
-            for (final Iterator<LogNode> iter =
-                children.values().iterator(); iter.hasNext();) {
-                final LogNode childNode = iter.next();
+            for (final LogNode childNode : children.values()) {
                 if (childNode.logger == null) {
                     childNode.setParentLogger(parent);
                 } else {
diff --git a/java/org/apache/naming/factory/SendMailFactory.java b/java/org/apache/naming/factory/SendMailFactory.java
index 882cc4f..2c54640 100644
--- a/java/org/apache/naming/factory/SendMailFactory.java
+++ b/java/org/apache/naming/factory/SendMailFactory.java
@@ -124,8 +124,7 @@ public class SendMailFactory implements ObjectFactory
                     return mds;
                 }
             } );
-        }
-        else { // We can't create an instance of the DataSource
+        } else { // We can't create an instance of the DataSource
             return null;
         }
     }
diff --git a/java/org/apache/tomcat/buildutil/SignCode.java b/java/org/apache/tomcat/buildutil/SignCode.java
index e6b6008..58e235f 100644
--- a/java/org/apache/tomcat/buildutil/SignCode.java
+++ b/java/org/apache/tomcat/buildutil/SignCode.java
@@ -152,8 +152,8 @@ public class SignCode extends Task {
             File basedir = ds.getBasedir();
             String[] files = ds.getIncludedFiles();
             if (files.length > 0) {
-                for (int i = 0; i < files.length; i++) {
-                    File file = new File(basedir, files[i]);
+                for (String s : files) {
+                    File file = new File(basedir, s);
                     filesToSign.add(file);
                 }
             }
@@ -399,12 +399,12 @@ public class SignCode extends Task {
         ByteArrayInputStream bais = new ByteArrayInputStream(Base64.decodeBase64(data));
         try (ZipInputStream zis = new ZipInputStream(bais)) {
             byte[] buf = new byte[32 * 1024];
-            for (int i = 0; i < files.size(); i ++) {
-                try (FileOutputStream fos = new FileOutputStream(files.get(i))) {
+            for (File file : files) {
+                try (FileOutputStream fos = new FileOutputStream(file)) {
                     zis.getNextEntry();
                     int numRead;
-                    while ( (numRead = zis.read(buf)) >= 0) {
-                        fos.write(buf, 0 , numRead);
+                    while ((numRead = zis.read(buf)) >= 0) {
+                        fos.write(buf, 0, numRead);
                     }
                 }
             }
diff --git a/java/org/apache/tomcat/buildutil/Txt2Html.java b/java/org/apache/tomcat/buildutil/Txt2Html.java
index 40b8484..836fc62 100644
--- a/java/org/apache/tomcat/buildutil/Txt2Html.java
+++ b/java/org/apache/tomcat/buildutil/Txt2Html.java
@@ -100,21 +100,19 @@ public class Txt2Html
             DirectoryScanner ds = fs.getDirectoryScanner(getProject());
             File basedir = ds.getBasedir();
             String[] files = ds.getIncludedFiles();
-            for( int i = 0; i < files.length; i++ ) {
-                File from = new File( basedir, files[i] );
-                File to = new File( todir, files[i] + ".html" );
-                if( !to.exists() ||
-                    (from.lastModified() > to.lastModified()) )
-                {
-                    log( "Converting file '" + from.getAbsolutePath() +
-                        "' to '" + to.getAbsolutePath(), Project.MSG_VERBOSE );
+            for (String file : files) {
+                File from = new File(basedir, file);
+                File to = new File(todir, file + ".html");
+                if (!to.exists() ||
+                        (from.lastModified() > to.lastModified())) {
+                    log("Converting file '" + from.getAbsolutePath() +
+                            "' to '" + to.getAbsolutePath(), Project.MSG_VERBOSE);
                     try {
-                        convert( from, to );
-                    }
-                    catch( IOException e ) {
-                        throw new BuildException( "Could not convert '" +
-                            from.getAbsolutePath() + "' to '" +
-                            to.getAbsolutePath() + "'", e );
+                        convert(from, to);
+                    } catch (IOException e) {
+                        throw new BuildException("Could not convert '" +
+                                from.getAbsolutePath() + "' to '" +
+                                to.getAbsolutePath() + "'", e);
                     }
                     count++;
                 }
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
index 737f171..11290c6 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
@@ -36,7 +36,6 @@ import java.sql.Statement;
 import java.sql.Struct;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -620,16 +619,15 @@ public class DelegatingConnection<C extends Connection> extends AbandonedTrace i
         final List<AbandonedTrace> traces = getTrace();
         if (traces != null && !traces.isEmpty()) {
             final List<Exception> thrownList = new ArrayList<>();
-            final Iterator<AbandonedTrace> traceIter = traces.iterator();
-            while (traceIter.hasNext()) {
-                final Object trace = traceIter.next();
+            for (Object trace : traces) {
                 if (trace instanceof Statement) {
                     try {
                         ((Statement) trace).close();
                     } catch (Exception e) {
                         thrownList.add(e);
                     }
-                } else if (trace instanceof ResultSet) {
+                }
+                else if (trace instanceof ResultSet) {
                     // DBCP-265: Need to close the result sets that are
                     // generated via DatabaseMetaData
                     try {
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSourceFactory.java b/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSourceFactory.java
index df46b3f..0e2c1eb 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSourceFactory.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/datasources/InstanceKeyDataSourceFactory.java
@@ -21,7 +21,6 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
@@ -47,9 +46,7 @@ abstract class InstanceKeyDataSourceFactory implements ObjectFactory {
 
     static synchronized String registerNewInstance(final InstanceKeyDataSource ds) {
         int max = 0;
-        final Iterator<String> iterator = instanceMap.keySet().iterator();
-        while (iterator.hasNext()) {
-            final String s = iterator.next();
+        for (String s : instanceMap.keySet()) {
             if (s != null) {
                 try {
                     max = Math.max(max, Integer.parseInt(s));
@@ -84,10 +81,8 @@ abstract class InstanceKeyDataSourceFactory implements ObjectFactory {
     public static void closeAll() throws Exception {
         // Get iterator to loop over all instances of this data source.
         final List<Throwable> exceptionList = new ArrayList<>(instanceMap.size());
-        final Iterator<Entry<String, InstanceKeyDataSource>> instanceIterator = instanceMap.entrySet().iterator();
-        while (instanceIterator.hasNext()) {
+        for (Entry<String, InstanceKeyDataSource> next : instanceMap.entrySet()) {
             // Bullet-proof to avoid anything else but problems from InstanceKeyDataSource#close().
-            final Entry<String, InstanceKeyDataSource> next = instanceIterator.next();
             if (next != null) {
                 final InstanceKeyDataSource value = next.getValue();
                 if (value != null) {
diff --git a/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java b/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java
index 7df2f9a..0722886 100644
--- a/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java
+++ b/java/org/apache/tomcat/dbcp/pool2/PoolUtils.java
@@ -18,7 +18,6 @@ package org.apache.tomcat.dbcp.pool2;
 
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -194,9 +193,7 @@ public final class PoolUtils {
             throw new IllegalArgumentException(MSG_NULL_KEYS);
         }
         final Map<K, TimerTask> tasks = new HashMap<>(keys.size());
-        final Iterator<K> iter = keys.iterator();
-        while (iter.hasNext()) {
-            final K key = iter.next();
+        for (K key : keys) {
             final TimerTask task = checkMinIdle(keyedPool, key, minIdle, period);
             tasks.put(key, task);
         }
diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java b/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java
index 2f5c5ab..5fe180e 100644
--- a/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java
+++ b/java/org/apache/tomcat/dbcp/pool2/impl/GenericKeyedObjectPool.java
@@ -600,10 +600,9 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
      */
     @Override
     public void clear() {
-        final Iterator<K> iter = poolMap.keySet().iterator();
 
-        while (iter.hasNext()) {
-            clear(iter.next());
+        for (K k : poolMap.keySet()) {
+            clear(k);
         }
     }
 
@@ -709,9 +708,8 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
             jmxUnregister();
 
             // Release any threads that were waiting for an object
-            final Iterator<ObjectDeque<T>> iter = poolMap.values().iterator();
-            while (iter.hasNext()) {
-                iter.next().getIdleObjects().interuptTakeWaiters();
+            for (ObjectDeque<T> tObjectDeque : poolMap.values()) {
+                tObjectDeque.getIdleObjects().interuptTakeWaiters();
             }
             // This clear cleans up the keys now any waiting threads have been
             // interrupted
@@ -1412,16 +1410,14 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
     public Map<String,Integer> getNumActivePerKey() {
         final HashMap<String,Integer> result = new HashMap<>();
 
-        final Iterator<Entry<K,ObjectDeque<T>>> iter = poolMap.entrySet().iterator();
-        while (iter.hasNext()) {
-            final Entry<K,ObjectDeque<T>> entry = iter.next();
+        for (Entry<K, ObjectDeque<T>> entry : poolMap.entrySet()) {
             if (entry != null) {
                 final K key = entry.getKey();
                 final ObjectDeque<T> objectDequeue = entry.getValue();
                 if (key != null && objectDequeue != null) {
                     result.put(key.toString(), Integer.valueOf(
                             objectDequeue.getAllObjects().size() -
-                            objectDequeue.getIdleObjects().size()));
+                                    objectDequeue.getIdleObjects().size()));
                 }
             }
         }
@@ -1441,11 +1437,10 @@ public class GenericKeyedObjectPool<K, T> extends BaseGenericObjectPool<T>
         int result = 0;
 
         if (getBlockWhenExhausted()) {
-            final Iterator<ObjectDeque<T>> iter = poolMap.values().iterator();
 
-            while (iter.hasNext()) {
+            for (ObjectDeque<T> tObjectDeque : poolMap.values()) {
                 // Assume no overflow
-                result += iter.next().getIdleObjects().getTakeQueueLength();
+                result += tObjectDeque.getIdleObjects().getTakeQueueLength();
             }
         }
 
diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java b/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java
index 4a9909d..7381a06 100644
--- a/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java
+++ b/java/org/apache/tomcat/dbcp/pool2/impl/GenericObjectPool.java
@@ -18,7 +18,6 @@ package org.apache.tomcat.dbcp.pool2.impl;
 
 import java.util.ArrayList;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.NoSuchElementException;
 import java.util.Set;
@@ -1069,9 +1068,7 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T>
         final long timeout =
                 now - (ac.getRemoveAbandonedTimeout() * 1000L);
         final ArrayList<PooledObject<T>> remove = new ArrayList<>();
-        final Iterator<PooledObject<T>> it = allObjects.values().iterator();
-        while (it.hasNext()) {
-            final PooledObject<T> pooledObject = it.next();
+        for (PooledObject<T> pooledObject : allObjects.values()) {
             synchronized (pooledObject) {
                 if (pooledObject.getState() == PooledObjectState.ALLOCATED &&
                         pooledObject.getLastUsedTime() <= timeout) {
@@ -1082,9 +1079,7 @@ public class GenericObjectPool<T> extends BaseGenericObjectPool<T>
         }
 
         // Now remove the abandoned objects
-        final Iterator<PooledObject<T>> itr = remove.iterator();
-        while (itr.hasNext()) {
-            final PooledObject<T> pooledObject = itr.next();
+        for (PooledObject<T> pooledObject : remove) {
             if (ac.getLogAbandoned()) {
                 pooledObject.printStackTrace(ac.getLogWriter());
             }
diff --git a/java/org/apache/tomcat/dbcp/pool2/impl/SoftReferenceObjectPool.java b/java/org/apache/tomcat/dbcp/pool2/impl/SoftReferenceObjectPool.java
index e417b48..e989692 100644
--- a/java/org/apache/tomcat/dbcp/pool2/impl/SoftReferenceObjectPool.java
+++ b/java/org/apache/tomcat/dbcp/pool2/impl/SoftReferenceObjectPool.java
@@ -331,10 +331,9 @@ public class SoftReferenceObjectPool<T> extends BaseObjectPool<T> {
     @Override
     public synchronized void clear() {
         if (null != factory) {
-            final Iterator<PooledSoftReference<T>> iter = idleReferences.iterator();
-            while (iter.hasNext()) {
+            for (PooledSoftReference<T> idleReference : idleReferences) {
                 try {
-                    final PooledSoftReference<T> ref = iter.next();
+                    final PooledSoftReference<T> ref = idleReference;
                     if (null != ref.getObject()) {
                         factory.destroyObject(ref);
                     }
@@ -391,9 +390,7 @@ public class SoftReferenceObjectPool<T> extends BaseObjectPool<T> {
      * @return PooledSoftReference wrapping a soft reference to obj
      */
     private PooledSoftReference<T> findReference(final T obj) {
-        final Iterator<PooledSoftReference<T>> iterator = allReferences.iterator();
-        while (iterator.hasNext()) {
-            final PooledSoftReference<T> reference = iterator.next();
+        for (PooledSoftReference<T> reference : allReferences) {
             if (reference.getObject() != null && reference.getObject().equals(obj)) {
                 return reference;
             }
diff --git a/java/org/apache/tomcat/util/Diagnostics.java b/java/org/apache/tomcat/util/Diagnostics.java
index 31ce11f..674099c 100644
--- a/java/org/apache/tomcat/util/Diagnostics.java
+++ b/java/org/apache/tomcat/util/Diagnostics.java
@@ -316,8 +316,8 @@ public class Diagnostics {
         StackTraceElement[] stes = ti.getStackTrace();
         Object[] monitorDepths = new Object[stes.length];
         MonitorInfo[] mis = ti.getLockedMonitors();
-        for (int i = 0; i < mis.length; i++) {
-            monitorDepths[mis[i].getLockedStackDepth()] = mis[i];
+        for (MonitorInfo monitorInfo : mis) {
+            monitorDepths[monitorInfo.getLockedStackDepth()] = monitorInfo;
         }
         for (int i = 0; i < stes.length; i++) {
             StackTraceElement ste = stes[i];
diff --git a/java/org/apache/tomcat/util/IntrospectionUtils.java b/java/org/apache/tomcat/util/IntrospectionUtils.java
index 9cfab25..506f50d 100644
--- a/java/org/apache/tomcat/util/IntrospectionUtils.java
+++ b/java/org/apache/tomcat/util/IntrospectionUtils.java
@@ -61,24 +61,24 @@ public final class IntrospectionUtils {
             Method setPropertyMethodBool = null;
 
             // First, the ideal case - a setFoo( String ) method
-            for (int i = 0; i < methods.length; i++) {
-                Class<?> paramT[] = methods[i].getParameterTypes();
-                if (setter.equals(methods[i].getName()) && paramT.length == 1
+            for (Method item : methods) {
+                Class<?> paramT[] = item.getParameterTypes();
+                if (setter.equals(item.getName()) && paramT.length == 1
                         && "java.lang.String".equals(paramT[0].getName())) {
 
-                    methods[i].invoke(o, new Object[] { value });
+                    item.invoke(o, new Object[]{value});
                     return true;
                 }
             }
 
             // Try a setFoo ( int ) or ( boolean )
-            for (int i = 0; i < methods.length; i++) {
+            for (Method method : methods) {
                 boolean ok = true;
-                if (setter.equals(methods[i].getName())
-                        && methods[i].getParameterTypes().length == 1) {
+                if (setter.equals(method.getName())
+                        && method.getParameterTypes().length == 1) {
 
                     // match - find the type and invoke it
-                    Class<?> paramType = methods[i].getParameterTypes()[0];
+                    Class<?> paramType = method.getParameterTypes()[0];
                     Object params[] = new Object[1];
 
                     // Try a setFoo ( int )
@@ -89,22 +89,25 @@ public final class IntrospectionUtils {
                         } catch (NumberFormatException ex) {
                             ok = false;
                         }
-                    // Try a setFoo ( long )
-                    }else if ("java.lang.Long".equals(paramType.getName())
-                                || "long".equals(paramType.getName())) {
-                            try {
-                                params[0] = Long.valueOf(value);
-                            } catch (NumberFormatException ex) {
-                                ok = false;
-                            }
+                        // Try a setFoo ( long )
+                    }
+                    else if ("java.lang.Long".equals(paramType.getName())
+                            || "long".equals(paramType.getName())) {
+                        try {
+                            params[0] = Long.valueOf(value);
+                        } catch (NumberFormatException ex) {
+                            ok = false;
+                        }
 
                         // Try a setFoo ( boolean )
-                    } else if ("java.lang.Boolean".equals(paramType.getName())
+                    }
+                    else if ("java.lang.Boolean".equals(paramType.getName())
                             || "boolean".equals(paramType.getName())) {
                         params[0] = Boolean.valueOf(value);
 
                         // Try a setFoo ( InetAddress )
-                    } else if ("java.net.InetAddress".equals(paramType
+                    }
+                    else if ("java.net.InetAddress".equals(paramType
                             .getName())) {
                         try {
                             params[0] = InetAddress.getByName(value);
@@ -122,17 +125,17 @@ public final class IntrospectionUtils {
                     }
 
                     if (ok) {
-                        methods[i].invoke(o, params);
+                        method.invoke(o, params);
                         return true;
                     }
                 }
 
                 // save "setProperty" for later
-                if ("setProperty".equals(methods[i].getName())) {
-                    if (methods[i].getReturnType()==Boolean.TYPE){
-                        setPropertyMethodBool = methods[i];
-                    }else {
-                        setPropertyMethodVoid = methods[i];
+                if ("setProperty".equals(method.getName())) {
+                    if (method.getReturnType() == Boolean.TYPE) {
+                        setPropertyMethodBool = method;
+                    } else {
+                        setPropertyMethodVoid = method;
                     }
 
                 }
@@ -189,17 +192,17 @@ public final class IntrospectionUtils {
             Method getPropertyMethod = null;
 
             // First, the ideal case - a getFoo() method
-            for (int i = 0; i < methods.length; i++) {
-                Class<?> paramT[] = methods[i].getParameterTypes();
-                if (getter.equals(methods[i].getName()) && paramT.length == 0) {
-                    return methods[i].invoke(o, (Object[]) null);
+            for (Method method : methods) {
+                Class<?> paramT[] = method.getParameterTypes();
+                if (getter.equals(method.getName()) && paramT.length == 0) {
+                    return method.invoke(o, (Object[]) null);
                 }
-                if (isGetter.equals(methods[i].getName()) && paramT.length == 0) {
-                    return methods[i].invoke(o, (Object[]) null);
+                if (isGetter.equals(method.getName()) && paramT.length == 0) {
+                    return method.invoke(o, (Object[]) null);
                 }
 
-                if ("getProperty".equals(methods[i].getName())) {
-                    getPropertyMethod = methods[i];
+                if ("getProperty".equals(method.getName())) {
+                    getPropertyMethod = method;
                 }
             }
 
@@ -371,11 +374,11 @@ public final class IntrospectionUtils {
     public static Method findMethod(Class<?> c, String name,
             Class<?> params[]) {
         Method methods[] = findMethods(c);
-        for (int i = 0; i < methods.length; i++) {
-            if (methods[i].getName().equals(name)) {
-                Class<?> methodParams[] = methods[i].getParameterTypes();
+        for (Method method : methods) {
+            if (method.getName().equals(name)) {
+                Class<?> methodParams[] = method.getParameterTypes();
                 if (params == null && methodParams.length == 0) {
-                    return methods[i];
+                    return method;
                 }
                 if (params.length != methodParams.length) {
                     continue;
@@ -388,7 +391,7 @@ public final class IntrospectionUtils {
                     }
                 }
                 if (found) {
-                    return methods[i];
+                    return method;
                 }
             }
         }
diff --git a/java/org/apache/tomcat/util/buf/ByteChunk.java b/java/org/apache/tomcat/util/buf/ByteChunk.java
index 555c0f6..d761054 100644
--- a/java/org/apache/tomcat/util/buf/ByteChunk.java
+++ b/java/org/apache/tomcat/util/buf/ByteChunk.java
@@ -806,8 +806,8 @@ public final class ByteChunk extends AbstractChunk {
         int blen = b.length;
         int offset = start;
         while (offset < end) {
-            for (int i = 0; i < blen; i++) {
-                if (bytes[offset] == b[i]) {
+            for (byte value : b) {
+                if (bytes[offset] == value) {
                     return offset;
                 }
             }
diff --git a/java/org/apache/tomcat/util/buf/HexUtils.java b/java/org/apache/tomcat/util/buf/HexUtils.java
index c4e8256..e80179b 100644
--- a/java/org/apache/tomcat/util/buf/HexUtils.java
+++ b/java/org/apache/tomcat/util/buf/HexUtils.java
@@ -82,10 +82,10 @@ public final class HexUtils {
 
         StringBuilder sb = new StringBuilder(bytes.length << 1);
 
-        for(int i = 0; i < bytes.length; ++i) {
-            sb.append(hex[(bytes[i] & 0xf0) >> 4])
-                .append(hex[(bytes[i] & 0x0f)])
-                ;
+        for (byte aByte : bytes) {
+            sb.append(hex[(aByte & 0xf0) >> 4])
+                    .append(hex[(aByte & 0x0f)])
+            ;
         }
 
         return sb.toString();
diff --git a/java/org/apache/tomcat/util/buf/UriUtil.java b/java/org/apache/tomcat/util/buf/UriUtil.java
index 6eecfda..fa56150 100644
--- a/java/org/apache/tomcat/util/buf/UriUtil.java
+++ b/java/org/apache/tomcat/util/buf/UriUtil.java
@@ -49,9 +49,8 @@ public final class UriUtil {
             StringBuffer sb = new StringBuffer(custom.length() * 3);
             // Deliberately use the platform's default encoding
             byte[] ba = custom.getBytes();
-            for (int j = 0; j < ba.length; j++) {
+            for (byte toEncode : ba) {
                 // Converting each byte in the buffer
-                byte toEncode = ba[j];
                 sb.append('%');
                 int low = toEncode & 0x0f;
                 int high = (toEncode & 0xf0) >> 4;
diff --git a/java/org/apache/tomcat/util/codec/binary/Base64.java b/java/org/apache/tomcat/util/codec/binary/Base64.java
index ab89854..72cfd54 100644
--- a/java/org/apache/tomcat/util/codec/binary/Base64.java
+++ b/java/org/apache/tomcat/util/codec/binary/Base64.java
@@ -541,8 +541,8 @@ public class Base64 extends BaseNCodec {
      * @since 1.5
      */
     public static boolean isBase64(final byte[] arrayOctet) {
-        for (int i = 0; i < arrayOctet.length; i++) {
-            if (!isBase64(arrayOctet[i]) && !isWhiteSpace(arrayOctet[i])) {
+        for (byte b : arrayOctet) {
+            if (!isBase64(b) && !isWhiteSpace(b)) {
                 return false;
             }
         }
diff --git a/java/org/apache/tomcat/util/descriptor/web/FilterMap.java b/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
index b66c31f..4a3e4b1 100644
--- a/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
+++ b/java/org/apache/tomcat/util/descriptor/web/FilterMap.java
@@ -206,13 +206,13 @@ public class FilterMap extends XmlEncodingBase implements Serializable {
         StringBuilder sb = new StringBuilder("FilterMap[");
         sb.append("filterName=");
         sb.append(this.filterName);
-        for (int i = 0; i < servletNames.length; i++) {
+        for (String servletName : servletNames) {
             sb.append(", servletName=");
-            sb.append(servletNames[i]);
+            sb.append(servletName);
         }
-        for (int i = 0; i < urlPatterns.length; i++) {
+        for (String urlPattern : urlPatterns) {
             sb.append(", urlPattern=");
-            sb.append(urlPatterns[i]);
+            sb.append(urlPattern);
         }
         sb.append("]");
         return sb.toString();
diff --git a/java/org/apache/tomcat/util/descriptor/web/SecurityCollection.java b/java/org/apache/tomcat/util/descriptor/web/SecurityCollection.java
index 73b7a68..3d77772 100644
--- a/java/org/apache/tomcat/util/descriptor/web/SecurityCollection.java
+++ b/java/org/apache/tomcat/util/descriptor/web/SecurityCollection.java
@@ -228,15 +228,15 @@ public class SecurityCollection extends XmlEncodingBase implements Serializable
         if (methods.length == 0 && omittedMethods.length == 0)
             return true;
         if (methods.length > 0) {
-            for (int i = 0; i < methods.length; i++) {
-                if (methods[i].equals(method))
+            for (String s : methods) {
+                if (s.equals(method))
                     return true;
             }
             return false;
         }
         if (omittedMethods.length > 0) {
-            for (int i = 0; i < omittedMethods.length; i++) {
-                if (omittedMethods[i].equals(method))
+            for (String omittedMethod : omittedMethods) {
+                if (omittedMethod.equals(method))
                     return false;
             }
         }
@@ -271,8 +271,8 @@ public class SecurityCollection extends XmlEncodingBase implements Serializable
      * @return <code>true</code> if the pattern is part of the collection
      */
     public boolean findPattern(String pattern) {
-        for (int i = 0; i < patterns.length; i++) {
-            if (patterns[i].equals(pattern))
+        for (String s : patterns) {
+            if (s.equals(pattern))
                 return true;
         }
         return false;
diff --git a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
index 735b041..36d65ba 100644
--- a/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
+++ b/java/org/apache/tomcat/util/descriptor/web/SecurityConstraint.java
@@ -313,8 +313,8 @@ public class SecurityConstraint extends XmlEncodingBase implements Serializable
 
         if (role == null)
             return false;
-        for (int i = 0; i < authRoles.length; i++) {
-            if (role.equals(authRoles[i]))
+        for (String authRole : authRoles) {
+            if (role.equals(authRole))
                 return true;
         }
         return false;
@@ -344,9 +344,9 @@ public class SecurityConstraint extends XmlEncodingBase implements Serializable
     public SecurityCollection findCollection(String name) {
         if (name == null)
             return null;
-        for (int i = 0; i < collections.length; i++) {
-            if (name.equals(collections[i].getName()))
-                return collections[i];
+        for (SecurityCollection collection : collections) {
+            if (name.equals(collection.getName()))
+                return collection;
         }
         return null;
     }
@@ -377,12 +377,12 @@ public class SecurityConstraint extends XmlEncodingBase implements Serializable
             return false;
 
         // Check all of the collections included in this constraint
-        for (int i = 0; i < collections.length; i++) {
-            if (!collections[i].findMethod(method))
+        for (SecurityCollection collection : collections) {
+            if (!collection.findMethod(method))
                 continue;
-            String patterns[] = collections[i].findPatterns();
-            for (int j = 0; j < patterns.length; j++) {
-                if (matchPattern(uri, patterns[j]))
+            String patterns[] = collection.findPatterns();
+            for (String pattern : patterns) {
+                if (matchPattern(uri, pattern))
                     return true;
             }
         }
diff --git a/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java b/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
index 6f348ce..2faf735 100644
--- a/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
+++ b/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
@@ -1032,12 +1032,11 @@ final class CallMethodMultiRule extends CallMethodRule {
             return;
         }
 
-        for (int j = 0; j < multiParams.size(); j++) {
-            Object param = multiParams.get(j);
-            if(param == null || (param instanceof String
+        for (Object param : multiParams) {
+            if (param == null || (param instanceof String
                     && !String.class.isAssignableFrom(paramTypes[multiParamIndex]))) {
                 paramValues[multiParamIndex] =
-                    IntrospectionUtils.convert((String) param, paramTypes[multiParamIndex]);
+                        IntrospectionUtils.convert((String) param, paramTypes[multiParamIndex]);
             } else {
                 paramValues[multiParamIndex] = param;
             }
diff --git a/java/org/apache/tomcat/util/digester/Digester.java b/java/org/apache/tomcat/util/digester/Digester.java
index 0a97002..2e941d0 100644
--- a/java/org/apache/tomcat/util/digester/Digester.java
+++ b/java/org/apache/tomcat/util/digester/Digester.java
@@ -101,10 +101,10 @@ public class Digester extends DefaultHandler2 {
                 String className = classNamesTokenizer.nextToken().trim();
                 ClassLoader[] cls = new ClassLoader[] { Digester.class.getClassLoader(),
                         Thread.currentThread().getContextClassLoader() };
-                for (int i = 0; i < cls.length; i++) {
+                for (ClassLoader cl : cls) {
                     try {
-                        Class<?> clazz = Class.forName(className, true, cls[i]);
-                        sourcesList.add((IntrospectionUtils.PropertySource) clazz.getConstructor().newInstance());
+                        Class<?> clazz = Class.forName(className, true, cl);
+                        sourcesList.add((PropertySource) clazz.getConstructor().newInstance());
                         break;
                     } catch (Throwable t) {
                         ExceptionUtils.handleThrowable(t);
@@ -979,9 +979,9 @@ public class Digester extends DefaultHandler2 {
         List<Rule> rules = matches.pop();
         if ((rules != null) && (rules.size() > 0)) {
             String bodyText = this.bodyText.toString().intern();
-            for (int i = 0; i < rules.size(); i++) {
+            for (Rule value : rules) {
                 try {
-                    Rule rule = rules.get(i);
+                    Rule rule = value;
                     if (debug) {
                         log.debug("  Fire body() for " + rule);
                     }
@@ -1242,9 +1242,9 @@ public class Digester extends DefaultHandler2 {
         List<Rule> rules = getRules().match(namespaceURI, match);
         matches.push(rules);
         if ((rules != null) && (rules.size() > 0)) {
-            for (int i = 0; i < rules.size(); i++) {
+            for (Rule value : rules) {
                 try {
-                    Rule rule = rules.get(i);
+                    Rule rule = value;
                     if (debug) {
                         log.debug("  Fire begin() for " + rule);
                     }
diff --git a/java/org/apache/tomcat/util/file/Matcher.java b/java/org/apache/tomcat/util/file/Matcher.java
index 17e5251..876abee 100644
--- a/java/org/apache/tomcat/util/file/Matcher.java
+++ b/java/org/apache/tomcat/util/file/Matcher.java
@@ -106,8 +106,8 @@ public final class Matcher {
         char ch;
 
         boolean containsStar = false;
-        for (int i = 0; i < patArr.length; i++) {
-            if (patArr[i] == '*') {
+        for (char c : patArr) {
+            if (c == '*') {
                 containsStar = true;
                 break;
             }
diff --git a/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java b/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
index b0ff82f..f2d9152 100644
--- a/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
+++ b/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
@@ -236,8 +236,7 @@ public class Rfc6265CookieProcessor extends CookieProcessorBase {
     private void validatePath(String path) {
         char[] chars = path.toCharArray();
 
-        for (int i = 0; i < chars.length; i++) {
-            char ch = chars[i];
+        for (char ch : chars) {
             if (ch < 0x20 || ch > 0x7E || ch == ';') {
                 throw new IllegalArgumentException(sm.getString(
                         "rfc6265CookieProcessor.invalidPath", path));
diff --git a/java/org/apache/tomcat/util/http/parser/Cookie.java b/java/org/apache/tomcat/util/http/parser/Cookie.java
index 11365aa..be29c31 100644
--- a/java/org/apache/tomcat/util/http/parser/Cookie.java
+++ b/java/org/apache/tomcat/util/http/parser/Cookie.java
@@ -416,12 +416,12 @@ public class Cookie {
     private static SkipResult skipBytes(ByteBuffer bb, byte[] target) {
         int mark = bb.position();
 
-        for (int i = 0; i < target.length; i++) {
+        for (byte b : target) {
             if (!bb.hasRemaining()) {
                 bb.position(mark);
                 return SkipResult.EOF;
             }
-            if (bb.get() != target[i]) {
+            if (bb.get() != b) {
                 bb.position(mark);
                 return SkipResult.NOT_FOUND;
             }
diff --git a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
index 11f4740..3dbf9f6 100644
--- a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
+++ b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
@@ -215,9 +215,9 @@ public class BaseModelMBean implements DynamicMBean, MBeanRegistration,
 
         // Prepare our response, eating all exceptions
         AttributeList response = new AttributeList();
-        for (int i = 0; i < names.length; i++) {
+        for (String name : names) {
             try {
-                response.add(new Attribute(names[i],getAttribute(names[i])));
+                response.add(new Attribute(name, getAttribute(name)));
             } catch (Exception e) {
                 // Not having a particular attribute in the response
                 // is the indication of a getter problem
@@ -460,9 +460,8 @@ public class BaseModelMBean implements DynamicMBean, MBeanRegistration,
         // Prepare and return our response, eating all exceptions
         String names[] = new String[attributes.size()];
         int n = 0;
-        Iterator<?> items = attributes.iterator();
-        while (items.hasNext()) {
-            Attribute item = (Attribute) items.next();
+        for (Object attribute : attributes) {
+            Attribute item = (Attribute) attribute;
             names[n++] = item.getName();
             try {
                 setAttribute(item);
diff --git a/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java b/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
index 7566bb3..9795cf8 100644
--- a/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
+++ b/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
@@ -95,8 +95,7 @@ public class BaseNotificationBroadcaster implements NotificationBroadcaster {
                             oldFilter.clear();
                         } else {
                             if (oldNames.length != 0) {
-                                for (int i = 0; i < newNames.length; i++)
-                                    oldFilter.addAttribute(newNames[i]);
+                                for (String newName : newNames) oldFilter.addAttribute(newName);
                             }
                         }
                         return;
diff --git a/java/org/apache/tomcat/util/modeler/Registry.java b/java/org/apache/tomcat/util/modeler/Registry.java
index e4ab5db..7ce734e 100644
--- a/java/org/apache/tomcat/util/modeler/Registry.java
+++ b/java/org/apache/tomcat/util/modeler/Registry.java
@@ -344,9 +344,9 @@ public class Registry implements RegistryMBean, MBeanRegistration {
         }
 
         MBeanAttributeInfo attInfo[] = info.getAttributes();
-        for (int i = 0; i < attInfo.length; i++) {
-            if (attName.equals(attInfo[i].getName())) {
-                type = attInfo[i].getType();
+        for (MBeanAttributeInfo mBeanAttributeInfo : attInfo) {
+            if (attName.equals(mBeanAttributeInfo.getName())) {
+                type = mBeanAttributeInfo.getType();
                 return type;
             }
         }
@@ -370,9 +370,9 @@ public class Registry implements RegistryMBean, MBeanRegistration {
             return null;
         }
         MBeanOperationInfo attInfo[] = info.getOperations();
-        for (int i = 0; i < attInfo.length; i++) {
-            if (opName.equals(attInfo[i].getName())) {
-                return attInfo[i];
+        for (MBeanOperationInfo mBeanOperationInfo : attInfo) {
+            if (opName.equals(mBeanOperationInfo.getName())) {
+                return mBeanOperationInfo;
             }
         }
         return null;
@@ -400,10 +400,10 @@ public class Registry implements RegistryMBean, MBeanRegistration {
             return null;
         }
         MBeanOperationInfo attInfo[] = info.getOperations();
-        for (int i = 0; i < attInfo.length; i++) {
-            if (opName.equals(attInfo[i].getName())
-                && argCount == attInfo[i].getSignature().length) {
-                return attInfo[i];
+        for (MBeanOperationInfo mBeanOperationInfo : attInfo) {
+            if (opName.equals(mBeanOperationInfo.getName())
+                    && argCount == mBeanOperationInfo.getSignature().length) {
+                return mBeanOperationInfo;
             }
         }
         return null;
diff --git a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
index 83b80e1..ad00ff7 100644
--- a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
+++ b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
@@ -131,8 +131,8 @@ public class MbeansDescriptorsIntrospectionSource extends ModelerSource
      * @return boolean True if class is supported
      */
     private boolean supportedType(Class<?> ret) {
-        for (int i = 0; i < supportedTypes.length; i++) {
-            if (ret == supportedTypes[i]) {
+        for (Class<?> supportedType : supportedTypes) {
+            if (ret == supportedType) {
                 return true;
             }
         }
@@ -195,76 +195,78 @@ public class MbeansDescriptorsIntrospectionSource extends ModelerSource
             Hashtable<String,Method> getAttMap, Hashtable<String,Method> setAttMap,
             Hashtable<String,Method> invokeAttMap) {
 
-        for (int j = 0; j < methods.length; ++j) {
-            String name = methods[j].getName();
+        for (Method method : methods) {
+            String name = method.getName();
 
-            if (Modifier.isStatic(methods[j].getModifiers())) {
+            if (Modifier.isStatic(method.getModifiers())) {
                 continue;
             }
-            if (!Modifier.isPublic(methods[j].getModifiers())) {
+            if (!Modifier.isPublic(method.getModifiers())) {
                 if (log.isDebugEnabled()) {
-                    log.debug("Not public " + methods[j] );
+                    log.debug("Not public " + method);
                 }
                 continue;
             }
-            if (methods[j].getDeclaringClass() == Object.class) {
+            if (method.getDeclaringClass() == Object.class) {
                 continue;
             }
-            Class<?> params[] = methods[j].getParameterTypes();
+            Class<?> params[] = method.getParameterTypes();
 
-            if (name.startsWith("get") && params.length==0) {
-                Class<?> ret = methods[j].getReturnType();
+            if (name.startsWith("get") && params.length == 0) {
+                Class<?> ret = method.getReturnType();
                 if (!supportedType(ret)) {
                     if (log.isDebugEnabled()) {
-                        log.debug("Unsupported type " + methods[j]);
+                        log.debug("Unsupported type " + method);
                     }
                     continue;
                 }
-                name=unCapitalize(name.substring(3));
+                name = unCapitalize(name.substring(3));
 
-                getAttMap.put(name, methods[j]);
+                getAttMap.put(name, method);
                 // just a marker, we don't use the value
-                attMap.put(name, methods[j]);
-            } else if(name.startsWith("is") && params.length == 0) {
-                Class<?> ret = methods[j].getReturnType();
+                attMap.put(name, method);
+            }
+            else if (name.startsWith("is") && params.length == 0) {
+                Class<?> ret = method.getReturnType();
                 if (Boolean.TYPE != ret) {
                     if (log.isDebugEnabled()) {
-                        log.debug("Unsupported type " + methods[j] + " " + ret );
+                        log.debug("Unsupported type " + method + " " + ret);
                     }
                     continue;
                 }
                 name = unCapitalize(name.substring(2));
 
-                getAttMap.put(name, methods[j]);
+                getAttMap.put(name, method);
                 // just a marker, we don't use the value
-                attMap.put(name, methods[j]);
+                attMap.put(name, method);
 
-            } else if (name.startsWith("set") && params.length == 1) {
+            }
+            else if (name.startsWith("set") && params.length == 1) {
                 if (!supportedType(params[0])) {
                     if (log.isDebugEnabled()) {
-                        log.debug("Unsupported type " + methods[j] + " " + params[0]);
+                        log.debug("Unsupported type " + method + " " + params[0]);
                     }
                     continue;
                 }
                 name = unCapitalize(name.substring(3));
-                setAttMap.put(name, methods[j]);
-                attMap.put(name, methods[j]);
+                setAttMap.put(name, method);
+                attMap.put(name, method);
             } else {
                 if (params.length == 0) {
-                    if (specialMethods.get(methods[j].getName()) != null) {
+                    if (specialMethods.get(method.getName()) != null) {
                         continue;
                     }
-                    invokeAttMap.put(name, methods[j]);
+                    invokeAttMap.put(name, method);
                 } else {
                     boolean supported = true;
-                    for (int i = 0; i < params.length; i++ ) {
-                        if (!supportedType(params[i])) {
+                    for (Class<?> param : params) {
+                        if (!supportedType(param)) {
                             supported = false;
                             break;
                         }
                     }
                     if (supported) {
-                        invokeAttMap.put( name, methods[j]);
+                        invokeAttMap.put(name, method);
                     }
                 }
             }
diff --git a/java/org/apache/tomcat/util/net/jsse/JSSESupport.java b/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
index 0bdc7f2..98c6eb9 100644
--- a/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
+++ b/java/org/apache/tomcat/util/net/jsse/JSSESupport.java
@@ -157,10 +157,10 @@ public class JSSESupport implements SSLSupport, SSLSessionManager {
         if ( ssl_session == null)
             return null;
         StringBuilder buf=new StringBuilder();
-        for(int x=0; x<ssl_session.length; x++) {
-            String digit=Integer.toHexString(ssl_session[x]);
-            if (digit.length()<2) buf.append('0');
-            if (digit.length()>2) digit=digit.substring(digit.length()-2);
+        for (byte b : ssl_session) {
+            String digit = Integer.toHexString(b);
+            if (digit.length() < 2) buf.append('0');
+            if (digit.length() > 2) digit = digit.substring(digit.length() - 2);
             buf.append(digit);
         }
         return buf.toString();
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
index 2c255f2..9f2d1ca 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
@@ -48,8 +48,8 @@ public class OpenSSLConf implements Serializable {
         String name;
         String value;
         int rc;
-        for (int i = 0; i < commands.size(); i++) {
-            cmd = commands.get(i);
+        for (OpenSSLConfCmd command : commands) {
+            cmd = command;
             name = cmd.getName();
             value = cmd.getValue();
             if (name == null) {
@@ -70,7 +70,8 @@ public class OpenSSLConf implements Serializable {
                 log.error(sm.getString("opensslconf.failedCommand", name, value,
                         Integer.toString(rc)));
                 result = false;
-            } else if (log.isDebugEnabled()) {
+            }
+            else if (log.isDebugEnabled()) {
                 log.debug(sm.getString("opensslconf.resultCommand", name, value,
                         Integer.toString(rc)));
             }
@@ -88,8 +89,8 @@ public class OpenSSLConf implements Serializable {
         String name;
         String value;
         int rc;
-        for (int i = 0; i < commands.size(); i++) {
-            cmd = commands.get(i);
+        for (OpenSSLConfCmd command : commands) {
+            cmd = command;
             name = cmd.getName();
             value = cmd.getValue();
             if (name == null) {
@@ -110,7 +111,8 @@ public class OpenSSLConf implements Serializable {
                 log.error(sm.getString("opensslconf.failedCommand", name, value,
                         Integer.toString(rc)));
                 result = false;
-            } else if (log.isDebugEnabled()) {
+            }
+            else if (log.isDebugEnabled()) {
                 log.debug(sm.getString("opensslconf.resultCommand", name, value,
                         Integer.toString(rc)));
             }
diff --git a/java/org/apache/tomcat/websocket/AuthenticatorFactory.java b/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
index 0d28da4..116ab67 100644
--- a/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
+++ b/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
@@ -54,10 +54,8 @@ public class AuthenticatorFactory {
 
     private static Authenticator loadAuthenticators(String authScheme) {
         ServiceLoader<Authenticator> serviceLoader = ServiceLoader.load(Authenticator.class);
-        Iterator<Authenticator> auths = serviceLoader.iterator();
 
-        while (auths.hasNext()) {
-            Authenticator auth = auths.next();
+        for (Authenticator auth : serviceLoader) {
             if (auth.getSchemeName().equalsIgnoreCase(authScheme))
                 return auth;
         }
diff --git a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
index 9275e15..ce6ca57 100644
--- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
+++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
@@ -431,9 +431,7 @@ public class WsWebSocketContainer implements WebSocketContainer, BackgroundProce
 
                     return connectToServerRecursive(endpoint, clientEndpointConfiguration, path, redirectSet);
 
-                }
-
-                else {
+                } else {
                     throw new DeploymentException(sm.getString("wsWebSocketContainer.invalidStatus",
                             Integer.toString(httpResponse.status)));
                 }
diff --git a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidation.java b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidation.java
index a557b82..85b53b3 100644
--- a/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidation.java
+++ b/modules/jdbc-pool/src/test/java/org/apache/tomcat/jdbc/test/TestValidation.java
@@ -192,8 +192,7 @@ public class TestValidation extends DefaultTestCase {
         Assert.assertFalse("No transaction must be running after connection is obtained", mockCxn2.isRunningTransaction());
         if (validationOutcome == ValidationOutcome.SUCCESS) {
             Assert.assertEquals("Connection with successful validation is reused", mockCxn1, mockCxn2);
-        }
-        else {
+        } else {
             Assert.assertNotEquals("Connection with failed validation must not be returned again", mockCxn1, mockCxn2);
         }
     }
@@ -404,8 +403,7 @@ public class TestValidation extends DefaultTestCase {
 
         if (validationOutcome == ValidationOutcome.SUCCESS) {
             Assert.assertEquals("Pool must contain 1 idle connection at this time", datasource.getIdle(), 1);
-        }
-        else {
+        } else {
             Assert.assertEquals("Pool must not contain any idle connection at this time", datasource.getIdle(), 0);
         }
     }
@@ -640,8 +638,7 @@ public class TestValidation extends DefaultTestCase {
         public boolean execute(String sql) throws SQLException {
             if (connection.getValidationOutcome()==ValidationOutcome.SUCCESS) {
                 return false;
-            }
-            else {
+            } else {
                 throw new SQLException("Simulated validation query failure");
             }
         }
diff --git a/test/org/apache/catalina/authenticator/TestFormAuthenticator.java b/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
index 792d995..aaee1ee 100644
--- a/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
+++ b/test/org/apache/catalina/authenticator/TestFormAuthenticator.java
@@ -338,8 +338,7 @@ public class TestFormAuthenticator extends TomcatBaseTest {
         String originalSessionId = null;
         if (serverWillUseCookies && clientShouldUseCookies) {
             originalSessionId = client.getSessionId();
-        }
-        else {
+        } else {
             originalSessionId = client.extractPathSessionId(loginUri);
         }
         client.reset();
@@ -372,8 +371,7 @@ public class TestFormAuthenticator extends TomcatBaseTest {
         String newSessionId = null;
         if (serverWillUseCookies && clientShouldUseCookies) {
             newSessionId = client.getSessionId();
-        }
-        else {
+        } else {
             newSessionId = client.extractPathSessionId(protectedUri);
         }
         boolean sessionIdIsChanged = !(originalSessionId.equals(newSessionId));
@@ -470,13 +468,11 @@ public class TestFormAuthenticator extends TomcatBaseTest {
             requestHead.append(method).append(" ");
             if (isFullQualUri) {
                 requestHead.append(resourceUri);
-            }
-            else {
+            } else {
                 if (resourceUri == null) {
                     // the default relative url
                     requestHead.append(PROTECTED_RESOURCE_URL);
-                }
-                else {
+                } else {
                     requestHead.append(PROTECTED_RELATIVE_PATH)
                             .append(resourceUri);
                 }
@@ -614,8 +610,7 @@ public class TestFormAuthenticator extends TomcatBaseTest {
                         SESSION_PATH_PARAMETER_TAILS);
                 if (parser.hasMoreElements()) {
                     sessionId = parser.nextToken();
-                }
-                else {
+                } else {
                     sessionId = url.substring(iStart);
                 }
             }
diff --git a/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java b/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
index 6bd854d..b5e2c80 100644
--- a/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
+++ b/test/org/apache/catalina/authenticator/TestNonLoginAndBasicAuthenticator.java
@@ -369,8 +369,7 @@ public class TestNonLoginAndBasicAuthenticator extends TomcatBaseTest {
         if (expectedRC != HttpServletResponse.SC_OK) {
             Assert.assertEquals(expectedRC, rc);
             Assert.assertTrue(bc.getLength() > 0);
-        }
-        else {
+        } else {
             Assert.assertEquals("OK", bc.toString());
         }
     }
@@ -383,8 +382,7 @@ public class TestNonLoginAndBasicAuthenticator extends TomcatBaseTest {
 
         if (useCookie) {
             addCookies(reqHeaders);
-        }
-        else {
+        } else {
             if (credentials != null) {
                 List<String> auth = new ArrayList<>();
                 auth.add(credentials.getCredentials());
@@ -411,8 +409,7 @@ public class TestNonLoginAndBasicAuthenticator extends TomcatBaseTest {
                 }
                 Assert.assertTrue(methodFound);
             }
-        }
-        else {
+        } else {
             Assert.assertEquals("OK", bc.toString());
             List<String> newCookies = respHeaders.get(SERVER_COOKIE_HEADER);
             if (newCookies != null) {
diff --git a/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java b/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
index 3fa94ca..4661a24 100644
--- a/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
+++ b/test/org/apache/catalina/authenticator/TestSSOnonLoginAndBasicAuthenticator.java
@@ -361,8 +361,7 @@ public class TestSSOnonLoginAndBasicAuthenticator extends TomcatBaseTest {
         if (expectedRC != HttpServletResponse.SC_OK) {
             Assert.assertEquals(expectedRC, rc);
             Assert.assertTrue(bc.getLength() > 0);
-        }
-        else {
+        } else {
             Assert.assertEquals("OK", bc.toString());
         }
 }
@@ -376,8 +375,7 @@ public class TestSSOnonLoginAndBasicAuthenticator extends TomcatBaseTest {
 
         if (useCookie && (cookies != null)) {
             addCookies(reqHeaders);
-        }
-        else {
+        } else {
             if (credentials != null) {
                 List<String> auth = new ArrayList<>();
                 auth.add(credentials.getCredentials());
@@ -404,8 +402,7 @@ public class TestSSOnonLoginAndBasicAuthenticator extends TomcatBaseTest {
                 }
                 Assert.assertTrue(methodFound);
             }
-        }
-        else {
+        } else {
             String thePage = bc.toString();
             Assert.assertNotNull(thePage);
             Assert.assertTrue(thePage.startsWith("OK"));
@@ -415,8 +412,7 @@ public class TestSSOnonLoginAndBasicAuthenticator extends TomcatBaseTest {
                     // harvest cookies whenever the server sends some new ones
                     cookies = newCookies;
                 }
-            }
-            else {
+            } else {
                 encodedURL = "";
                 final String start = "<a href=\"";
                 final String end = "\">";
@@ -608,9 +604,9 @@ public class TestSSOnonLoginAndBasicAuthenticator extends TomcatBaseTest {
 
         ManagerBase manager = (ManagerBase) activeContext.getManager();
         Session[] sessions = manager.findSessions();
-        for (int i = 0; i < sessions.length; i++) {
-            if (sessions[i]!=null && sessions[i].isValid()) {
-                sessions[i].setMaxInactiveInterval(EXTRA_DELAY_SECS);
+        for (Session session : sessions) {
+            if (session != null && session.isValid()) {
+                session.setMaxInactiveInterval(EXTRA_DELAY_SECS);
                 // leave it to be expired by the manager
             }
         }
diff --git a/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java b/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
index dafc71b..c17e35a 100644
--- a/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
+++ b/test/org/apache/catalina/authenticator/TestSSOnonLoginAndDigestAuthenticator.java
@@ -215,8 +215,7 @@ public class TestSSOnonLoginAndDigestAuthenticator extends TomcatBaseTest {
         if (expectedReject) {
             Assert.assertEquals(expectedRC, rc);
             Assert.assertTrue(bc.getLength() > 0);
-        }
-        else {
+        } else {
             Assert.assertEquals(200, rc);
             Assert.assertEquals("OK", bc.toString());
             saveCookies(respHeaders);
@@ -248,8 +247,7 @@ public class TestSSOnonLoginAndDigestAuthenticator extends TomcatBaseTest {
         if (expectedReject1) {
             Assert.assertEquals(expectedRC1, rc);
             Assert.assertTrue(bc.getLength() > 0);
-        }
-        else {
+        } else {
             Assert.assertEquals(200, rc);
             Assert.assertEquals("OK", bc.toString());
             saveCookies(respHeaders1);
diff --git a/test/org/apache/catalina/connector/TestMaxConnections.java b/test/org/apache/catalina/connector/TestMaxConnections.java
index e469d8c..5e4a752 100644
--- a/test/org/apache/catalina/connector/TestMaxConnections.java
+++ b/test/org/apache/catalina/connector/TestMaxConnections.java
@@ -47,12 +47,12 @@ public class TestMaxConnections extends TomcatBaseTest {
             t[i] = new ConnectThread();
             t[i].setName("ConnectThread["+i+"]");
         }
-        for (int i=0; i<t.length; i++) {
-            t[i].start();
+        for (ConnectThread thread : t) {
+            thread.start();
             Thread.sleep(50);
         }
-        for (int i=0; i<t.length; i++) {
-            t[i].join();
+        for (ConnectThread connectThread : t) {
+            connectThread.join();
         }
 
         Assert.assertEquals(MAX_CONNECTIONS, SimpleServlet.getMaxConnections());
diff --git a/test/org/apache/catalina/connector/TestOutputBuffer.java b/test/org/apache/catalina/connector/TestOutputBuffer.java
index e1d99fc..b570c07 100644
--- a/test/org/apache/catalina/connector/TestOutputBuffer.java
+++ b/test/org/apache/catalina/connector/TestOutputBuffer.java
@@ -205,8 +205,8 @@ public class TestOutputBuffer extends TomcatBaseTest{
             resp.setContentType("text/plain");
             Writer w = resp.getWriter();
 
-            for (int i = 0; i < chars.length; i++) {
-                w.write(chars[i]);
+            for (char aChar : chars) {
+                w.write(aChar);
             }
         }
     }
diff --git a/test/org/apache/catalina/connector/TestRequest.java b/test/org/apache/catalina/connector/TestRequest.java
index 66387db..2e43bb3 100644
--- a/test/org/apache/catalina/connector/TestRequest.java
+++ b/test/org/apache/catalina/connector/TestRequest.java
@@ -524,14 +524,13 @@ public class TestRequest extends TomcatBaseTest {
 
                 java.util.Arrays.sort(values);
 
-                for(int i=0; i<values.length; ++i)
-                {
-                    if(first)
+                for (String value : values) {
+                    if (first)
                         first = false;
                     else
                         out.print(",");
 
-                    out.print(name + "=" + values[i]);
+                    out.print(name + "=" + value);
                 }
             }
         }
diff --git a/test/org/apache/catalina/core/TestAsyncContextImpl.java b/test/org/apache/catalina/core/TestAsyncContextImpl.java
index 24ebea3..b82b2bb 100644
--- a/test/org/apache/catalina/core/TestAsyncContextImpl.java
+++ b/test/org/apache/catalina/core/TestAsyncContextImpl.java
@@ -2482,8 +2482,7 @@ public class TestAsyncContextImpl extends TomcatBaseTest {
                 throws ServletException, IOException {
             if (req.getAttribute("timeout") != null) {
                 resp.sendError(503);
-            }
-            else {
+            } else {
                 final AsyncContext context = req.startAsync();
                 context.setTimeout(5000);
                 context.addListener(new AsyncListener() {
diff --git a/test/org/apache/catalina/startup/SimpleHttpClient.java b/test/org/apache/catalina/startup/SimpleHttpClient.java
index 79ab7b2..dd24d4e 100644
--- a/test/org/apache/catalina/startup/SimpleHttpClient.java
+++ b/test/org/apache/catalina/startup/SimpleHttpClient.java
@@ -229,8 +229,7 @@ public abstract class SimpleHttpClient {
             if (requestPart != null) {
                 if (first) {
                     first = false;
-                }
-                else {
+                } else {
                     Thread.sleep(requestPause);
                 }
                 writer.write(requestPart);
@@ -320,8 +319,7 @@ public abstract class SimpleHttpClient {
                 int read = reader.read(body);
                 Assert.assertEquals(contentLength, read);
                 builder.append(body);
-            }
-            else {
+            } else {
                 // not using content length, so just read it line by line
                 String line = null;
                 try {
diff --git a/test/org/apache/catalina/tribes/demos/ChannelCreator.java b/test/org/apache/catalina/tribes/demos/ChannelCreator.java
index c8ecfc9..7700686 100644
--- a/test/org/apache/catalina/tribes/demos/ChannelCreator.java
+++ b/test/org/apache/catalina/tribes/demos/ChannelCreator.java
@@ -17,7 +17,6 @@
 package org.apache.catalina.tribes.demos;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.Properties;
 
 import org.apache.catalina.tribes.Channel;
@@ -192,10 +191,9 @@ public class ChannelCreator {
         sender.setRxBufSize(43800);
         sender.setTxBufSize(25188);
 
-        Iterator<Object> i = transportProperties.keySet().iterator();
-        while ( i.hasNext() ) {
-            String key = (String)i.next();
-            IntrospectionUtils.setProperty(sender,key,transportProperties.getProperty(key));
+        for (Object o : transportProperties.keySet()) {
+            String key = (String) o;
+            IntrospectionUtils.setProperty(sender, key, transportProperties.getProperty(key));
         }
         ps.setTransport(sender);
 
@@ -237,8 +235,8 @@ public class ChannelCreator {
         }
         if ( staticMembers.size() > 0 ) {
             StaticMembershipInterceptor smi = new StaticMembershipInterceptor();
-            for (int x=0; x<staticMembers.size(); x++ ) {
-                smi.addStaticMember(staticMembers.get(x));
+            for (Member staticMember : staticMembers) {
+                smi.addStaticMember(staticMember);
             }
             channel.addInterceptor(smi);
         }
diff --git a/test/org/apache/catalina/tribes/demos/CoordinationDemo.java b/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
index e214f40..f70a5e4 100644
--- a/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
+++ b/test/org/apache/catalina/tribes/demos/CoordinationDemo.java
@@ -132,7 +132,7 @@ public class CoordinationDemo {
                 args = tokenize(l);
             }
         }
-        for ( int i=0; i<status.length; i++ ) status[i].stop();
+        for (Status value : status) value.stop();
     }
 
     private void cmdStop(String[] args) {
@@ -317,7 +317,7 @@ public class CoordinationDemo {
                 synchronized (System.err) {
                     System.err.println("Start failed:");
                     StackTraceElement[] els = x.getStackTrace();
-                    for (int i = 0; i < els.length; i++) System.err.println(els[i].toString());
+                    for (StackTraceElement el : els) System.err.println(el.toString());
                 }
                 status = "Start failed:"+x.getMessage();
                 error = x;
@@ -342,7 +342,7 @@ public class CoordinationDemo {
                 synchronized (System.err) {
                     System.err.println("Stop failed:");
                     StackTraceElement[] els = x.getStackTrace();
-                    for (int i = 0; i < els.length; i++) System.err.println(els[i].toString());
+                    for (StackTraceElement el : els) System.err.println(el.toString());
                 }
 
                 status = "Stop failed:"+x.getMessage();
diff --git a/test/org/apache/catalina/tribes/demos/EchoRpcTest.java b/test/org/apache/catalina/tribes/demos/EchoRpcTest.java
index 39de1db..360450e 100644
--- a/test/org/apache/catalina/tribes/demos/EchoRpcTest.java
+++ b/test/org/apache/catalina/tribes/demos/EchoRpcTest.java
@@ -81,8 +81,8 @@ public class EchoRpcTest implements RpcCallback, Runnable {
                 long start = System.currentTimeMillis();
                 Response[] resp = rpc.send(channel.getMembers(),msg,options,Channel.SEND_OPTIONS_DEFAULT,timeout);
                 System.out.println("Send of ["+msg+"] completed. Nr of responses="+resp.length+" Time:"+(System.currentTimeMillis()-start)+" ms.");
-                for ( int i=0; i<resp.length; i++ ) {
-                    System.out.println("Received a response message from ["+resp[i].getSource().getName()+"] with data ["+resp[i].getMessage()+"]");
+                for (Response response : resp) {
+                    System.out.println("Received a response message from [" + response.getSource().getName() + "] with data [" + response.getMessage() + "]");
                 }
                 Thread.sleep(pause);
             }catch(Exception x){
diff --git a/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java b/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java
index a443c05..0392218 100644
--- a/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java
+++ b/test/org/apache/catalina/tribes/demos/IntrospectionUtils.java
@@ -53,24 +53,24 @@ public final class IntrospectionUtils {
             Method setPropertyMethodBool = null;
 
             // First, the ideal case - a setFoo( String ) method
-            for (int i = 0; i < methods.length; i++) {
-                Class<?> paramT[] = methods[i].getParameterTypes();
-                if (setter.equals(methods[i].getName()) && paramT.length == 1
+            for (Method item : methods) {
+                Class<?> paramT[] = item.getParameterTypes();
+                if (setter.equals(item.getName()) && paramT.length == 1
                         && "java.lang.String".equals(paramT[0].getName())) {
 
-                    methods[i].invoke(o, new Object[] { value });
+                    item.invoke(o, new Object[]{value});
                     return true;
                 }
             }
 
             // Try a setFoo ( int ) or ( boolean )
-            for (int i = 0; i < methods.length; i++) {
+            for (Method method : methods) {
                 boolean ok = true;
-                if (setter.equals(methods[i].getName())
-                        && methods[i].getParameterTypes().length == 1) {
+                if (setter.equals(method.getName())
+                        && method.getParameterTypes().length == 1) {
 
                     // match - find the type and invoke it
-                    Class<?> paramType = methods[i].getParameterTypes()[0];
+                    Class<?> paramType = method.getParameterTypes()[0];
                     Object params[] = new Object[1];
 
                     // Try a setFoo ( int )
@@ -81,22 +81,25 @@ public final class IntrospectionUtils {
                         } catch (NumberFormatException ex) {
                             ok = false;
                         }
-                    // Try a setFoo ( long )
-                    }else if ("java.lang.Long".equals(paramType.getName())
-                                || "long".equals(paramType.getName())) {
-                            try {
-                                params[0] = Long.valueOf(value);
-                            } catch (NumberFormatException ex) {
-                                ok = false;
-                            }
+                        // Try a setFoo ( long )
+                    }
+                    else if ("java.lang.Long".equals(paramType.getName())
+                            || "long".equals(paramType.getName())) {
+                        try {
+                            params[0] = Long.valueOf(value);
+                        } catch (NumberFormatException ex) {
+                            ok = false;
+                        }
 
                         // Try a setFoo ( boolean )
-                    } else if ("java.lang.Boolean".equals(paramType.getName())
+                    }
+                    else if ("java.lang.Boolean".equals(paramType.getName())
                             || "boolean".equals(paramType.getName())) {
                         params[0] = Boolean.valueOf(value);
 
                         // Try a setFoo ( InetAddress )
-                    } else if ("java.net.InetAddress".equals(paramType
+                    }
+                    else if ("java.net.InetAddress".equals(paramType
                             .getName())) {
                         try {
                             params[0] = InetAddress.getByName(value);
@@ -114,17 +117,17 @@ public final class IntrospectionUtils {
                     }
 
                     if (ok) {
-                        methods[i].invoke(o, params);
+                        method.invoke(o, params);
                         return true;
                     }
                 }
 
                 // save "setProperty" for later
-                if ("setProperty".equals(methods[i].getName())) {
-                    if (methods[i].getReturnType()==Boolean.TYPE){
-                        setPropertyMethodBool = methods[i];
-                    }else {
-                        setPropertyMethodVoid = methods[i];
+                if ("setProperty".equals(method.getName())) {
+                    if (method.getReturnType() == Boolean.TYPE) {
+                        setPropertyMethodBool = method;
+                    } else {
+                        setPropertyMethodVoid = method;
                     }
 
                 }
diff --git a/test/org/apache/catalina/tribes/demos/LoadTest.java b/test/org/apache/catalina/tribes/demos/LoadTest.java
index b139ca8..337f7e4 100644
--- a/test/org/apache/catalina/tribes/demos/LoadTest.java
+++ b/test/org/apache/catalina/tribes/demos/LoadTest.java
@@ -136,7 +136,7 @@ public class LoadTest implements MembershipListener,ChannelListener, Runnable {
                         if ( debug ) log.error("Unable to send message:"+x.getMessage(),x);
                         log.error("Unable to send message:"+x.getMessage());
                         ChannelException.FaultyMember[] faulty = x.getFaultyMembers();
-                        for (int i=0; i<faulty.length; i++ ) log.error("Faulty: "+faulty[i]);
+                        for (ChannelException.FaultyMember faultyMember : faulty) log.error("Faulty: " + faultyMember);
                         --counter;
                         if ( this.breakonChannelException ) throw x;
                     }
@@ -230,8 +230,8 @@ public class LoadTest implements MembershipListener,ChannelListener, Runnable {
 
     public static void printArray(byte[] data) {
         System.out.print("{");
-        for (int i=0; i<data.length; i++ ) {
-            System.out.print(data[i]);
+        for (byte datum : data) {
+            System.out.print(datum);
             System.out.print(",");
         }
         System.out.println("} size:"+data.length);
diff --git a/test/org/apache/catalina/tribes/demos/MapDemo.java b/test/org/apache/catalina/tribes/demos/MapDemo.java
index a45c84e..2863857 100644
--- a/test/org/apache/catalina/tribes/demos/MapDemo.java
+++ b/test/org/apache/catalina/tribes/demos/MapDemo.java
@@ -231,8 +231,8 @@ public class MapDemo implements ChannelListener, MembershipListener{
             public StringBuilder getMemberNames(Member[] members){
                 StringBuilder buf = new StringBuilder();
                 if ( members!=null ) {
-                    for (int i=0;i<members.length; i++ ) {
-                        buf.append(members[i].getName());
+                    for (Member member : members) {
+                        buf.append(member.getName());
                         buf.append("; ");
                     }
                 }
diff --git a/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java b/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
index c09c05b..fb7c960 100644
--- a/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
+++ b/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
@@ -64,11 +64,11 @@ public class TestGroupChannelMemberArrival {
             };
             threads[i] = t;
         }
-        for (int i = 0; i < threads.length; i++) {
-            threads[i].start();
+        for (Thread value : threads) {
+            value.start();
         }
-        for (int i = 0; i < threads.length; i++) {
-            threads[i].join();
+        for (Thread thread : threads) {
+            thread.join();
         }
         Thread.sleep(5000);
         System.out.println(System.currentTimeMillis()
@@ -99,9 +99,9 @@ public class TestGroupChannelMemberArrival {
     @After
     public void tearDown() throws Exception {
 
-        for (int i = 0; i < channels.length; i++) {
+        for (ManagedChannel channel : channels) {
             try {
-                channels[i].stop(Channel.DEFAULT);
+                channel.stop(Channel.DEFAULT);
             } catch (Exception ignore) {
                 // Ignore
             }
diff --git a/test/org/apache/catalina/tribes/group/TestGroupChannelSenderConnections.java b/test/org/apache/catalina/tribes/group/TestGroupChannelSenderConnections.java
index 27b5697..61941b4 100644
--- a/test/org/apache/catalina/tribes/group/TestGroupChannelSenderConnections.java
+++ b/test/org/apache/catalina/tribes/group/TestGroupChannelSenderConnections.java
@@ -51,8 +51,8 @@ public class TestGroupChannelSenderConnections extends LoggingBaseTest {
             channels[i].addChannelListener(listeners[i]);
         }
         TesterUtil.addRandomDomain(channels);
-        for (int i = 0; i < channels.length; i++) {
-            channels[i].start(Channel.SND_RX_SEQ|Channel.SND_TX_SEQ);
+        for (ManagedChannel channel : channels) {
+            channel.start(Channel.SND_RX_SEQ | Channel.SND_TX_SEQ);
         }
     }
 
@@ -116,8 +116,8 @@ public class TestGroupChannelSenderConnections extends LoggingBaseTest {
     @Override
     public void tearDown() throws Exception {
         try {
-            for (int i = 0; i < channels.length; i++) {
-                channels[i].stop(Channel.DEFAULT);
+            for (ManagedChannel channel : channels) {
+                channel.stop(Channel.DEFAULT);
             }
         } finally {
             super.tearDown();
diff --git a/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java b/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
index 199b005..e03ddec 100644
--- a/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
+++ b/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
@@ -73,8 +73,8 @@ public class TestDomainFilterInterceptor {
             };
             threads[i] = t;
         }
-        for (int i=0; i<threads.length; i++ ) threads[i].start();
-        for (int i=0; i<threads.length; i++ ) threads[i].join();
+        for (Thread value : threads) value.start();
+        for (Thread thread : threads) thread.join();
         System.out.println("All channels started.");
         for (int i=listeners.length-1; i>=0; i-- ) {
             Assert.assertEquals("Checking member arrival length",0,listeners[i].members.size());
@@ -84,9 +84,9 @@ public class TestDomainFilterInterceptor {
     @After
     public void tearDown() throws Exception {
 
-        for (int i = 0; i < channels.length; i++) {
+        for (ManagedChannel channel : channels) {
             try {
-                channels[i].stop(Channel.DEFAULT);
+                channel.stop(Channel.DEFAULT);
             } catch (Exception ignore) {
                 // Ignore
             }
diff --git a/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java b/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
index 61cb530..c2e76a1 100644
--- a/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
+++ b/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
@@ -90,8 +90,8 @@ public class TestOrderInterceptor {
             channels[0].send(dest,Integer.valueOf(value.getAndAdd(1)),0);
         }
         Thread.sleep(5000);
-        for ( int i=0; i<test.length; i++ ) {
-            Assert.assertFalse(test[i].fail);
+        for (TestListener testListener : test) {
+            Assert.assertFalse(testListener.fail);
         }
     }
 
@@ -118,19 +118,19 @@ public class TestOrderInterceptor {
         for (int i=0;i<threads.length;i++) {
             threads[i] = new Thread(run);
         }
-        for (int i=0;i<threads.length;i++) {
-            threads[i].start();
+        for (Thread item : threads) {
+            item.start();
         }
-        for (int i=0;i<threads.length;i++) {
-            threads[i].join();
+        for (Thread thread : threads) {
+            thread.join();
         }
         if (!exceptionQueue.isEmpty()) {
             Assert.fail("Exception while sending in threads: "
                     + exceptionQueue.remove().toString());
         }
         Thread.sleep(5000);
-        for ( int i=0; i<test.length; i++ ) {
-            Assert.assertFalse(test[i].fail);
+        for (TestListener testListener : test) {
+            Assert.assertFalse(testListener.fail);
         }
     }
 
diff --git a/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java b/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
index 6033344..30675d8 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
@@ -78,8 +78,12 @@ public class TestDataIntegrity {
                 }
             };
         }
-        for (int x=0; x<threads.length; x++ ) { threads[x].start();}
-        for (int x=0; x<threads.length; x++ ) { threads[x].join();}
+        for (Thread value : threads) {
+            value.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
         //sleep for 50 sec, let the other messages in
         long start = System.currentTimeMillis();
         while ( (System.currentTimeMillis()-start)<15000 && msgCount*threadCount!=listener1.count) Thread.sleep(500);
@@ -106,8 +110,12 @@ public class TestDataIntegrity {
                     }
                 };
             }
-            for (int x=0; x<threads.length; x++ ) { threads[x].start();}
-            for (int x=0; x<threads.length; x++ ) { threads[x].join();}
+        for (Thread value : threads) {
+            value.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
             //sleep for 50 sec, let the other messages in
             long start = System.currentTimeMillis();
             while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count) Thread.sleep(500);
diff --git a/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java b/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
index 7dda8b0..58d8b3d 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
@@ -131,8 +131,12 @@ public class TestMulticastPackages {
                 }
             };
         }
-        for (int x=0; x<threads.length; x++ ) { threads[x].start();}
-        for (int x=0; x<threads.length; x++ ) { threads[x].join();}
+        for (Thread value : threads) {
+            value.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
         //sleep for 50 sec, let the other messages in
         long start = System.currentTimeMillis();
         while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count.get()) Thread.sleep(500);
diff --git a/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java b/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
index a6729e5..fecefab 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
@@ -123,8 +123,12 @@ public class TestUdpPackages {
                 }
             };
         }
-        for (int x=0; x<threads.length; x++ ) { threads[x].start();}
-        for (int x=0; x<threads.length; x++ ) { threads[x].join();}
+        for (Thread value : threads) {
+            value.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
         //sleep for 50 sec, let the other messages in
         long start = System.currentTimeMillis();
         while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count.get()) Thread.sleep(500);
@@ -172,8 +176,12 @@ public class TestUdpPackages {
                 }
             };
         }
-        for (int x=0; x<threads.length; x++ ) { threads[x].start();}
-        for (int x=0; x<threads.length; x++ ) { threads[x].join();}
+        for (Thread value : threads) {
+            value.start();
+        }
+        for (Thread thread : threads) {
+            thread.join();
+        }
         //sleep for 50 sec, let the other messages in
         long start = System.currentTimeMillis();
         while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count.get()) Thread.sleep(500);
diff --git a/test/org/apache/catalina/valves/Benchmarks.java b/test/org/apache/catalina/valves/Benchmarks.java
index be5a6ab..898ab50 100644
--- a/test/org/apache/catalina/valves/Benchmarks.java
+++ b/test/org/apache/catalina/valves/Benchmarks.java
@@ -461,8 +461,8 @@ public class Benchmarks {
     private static class BenchmarkTest {
         public void doTest(int threadCount, Runnable[] tests) throws Exception {
             for (int iterations = 1000000; iterations < 10000001; iterations += 1000000) {
-                for (int i = 0; i < tests.length; i++) {
-                    doTestInternal(threadCount, iterations, tests[i]);
+                for (Runnable test : tests) {
+                    doTestInternal(threadCount, iterations, test);
                 }
             }
         }
diff --git a/test/org/apache/coyote/http11/TestHttp11Processor.java b/test/org/apache/coyote/http11/TestHttp11Processor.java
index 14107b3..4707a09 100644
--- a/test/org/apache/coyote/http11/TestHttp11Processor.java
+++ b/test/org/apache/coyote/http11/TestHttp11Processor.java
@@ -1651,9 +1651,7 @@ public class TestHttp11Processor extends TomcatBaseTest {
             if (null == req.getServerName())
             {
                 out.print("request.getServerName() is null");
-            }
-            else
-            {
+            } else {
                 out.print("request.getServerName() is [" + req.getServerName() + "]");
             }
 
diff --git a/test/org/apache/jasper/compiler/TesterValidator.java b/test/org/apache/jasper/compiler/TesterValidator.java
index 465d28c..751e8d5 100644
--- a/test/org/apache/jasper/compiler/TesterValidator.java
+++ b/test/org/apache/jasper/compiler/TesterValidator.java
@@ -42,26 +42,26 @@ public class TesterValidator {
     private static void doTestBug53867() {
         int count = 100000;
 
-        for (int j = 0; j < bug53867TestData.length; j++) {
-            Assert.assertEquals(doTestBug53867OldVersion(bug53867TestData[j]),
-                    Escape.xml(bug53867TestData[j]));
+        for (String testDatum : bug53867TestData) {
+            Assert.assertEquals(doTestBug53867OldVersion(testDatum),
+                    Escape.xml(testDatum));
         }
 
         for (int i = 0; i < 100; i++) {
-            for (int j = 0; j < bug53867TestData.length; j++) {
-                doTestBug53867OldVersion(bug53867TestData[j]);
+            for (String bug53867TestDatum : bug53867TestData) {
+                doTestBug53867OldVersion(bug53867TestDatum);
             }
         }
         for (int i = 0; i < 100; i++) {
-            for (int j = 0; j < bug53867TestData.length; j++) {
-                Escape.xml(bug53867TestData[j]);
+            for (String bug53867TestDatum : bug53867TestData) {
+                Escape.xml(bug53867TestDatum);
             }
         }
 
         long start = System.currentTimeMillis();
         for (int i = 0; i < count; i++) {
-            for (int j = 0; j < bug53867TestData.length; j++) {
-                doTestBug53867OldVersion(bug53867TestData[j]);
+            for (String bug53867TestDatum : bug53867TestData) {
+                doTestBug53867OldVersion(bug53867TestDatum);
             }
         }
         System.out.println(
@@ -69,8 +69,8 @@ public class TesterValidator {
 
         start = System.currentTimeMillis();
         for (int i = 0; i < count; i++) {
-            for (int j = 0; j < bug53867TestData.length; j++) {
-                Escape.xml(bug53867TestData[j]);
+            for (String bug53867TestDatum : bug53867TestData) {
+                Escape.xml(bug53867TestDatum);
             }
         }
         System.out.println(
diff --git a/test/org/apache/juli/TestClassLoaderLogManager.java b/test/org/apache/juli/TestClassLoaderLogManager.java
index 5a40400..641a52b 100644
--- a/test/org/apache/juli/TestClassLoaderLogManager.java
+++ b/test/org/apache/juli/TestClassLoaderLogManager.java
@@ -73,8 +73,8 @@ public class TestClassLoaderLogManager {
             // Ignore
         }
 
-        for (int i = 0; i < createThreads.length; i ++) {
-            createThreads[i].setRunning(false);
+        for (LoggerCreateThread createThread : createThreads) {
+            createThread.setRunning(false);
         }
 
         Assert.assertTrue(listThread.isRunning());
diff --git a/test/org/apache/tomcat/util/http/parser/TestMediaType.java b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
index c9c9d88..9c0a7fa 100644
--- a/test/org/apache/tomcat/util/http/parser/TestMediaType.java
+++ b/test/org/apache/tomcat/util/http/parser/TestMediaType.java
@@ -252,9 +252,9 @@ public class TestMediaType {
         Assert.assertEquals(SUBTYPE.trim(), m.getSubtype());
 
         // Check the parameters
-        for (int i = 0; i <  parameters.length; i++) {
-            Assert.assertEquals(parameters[i].getValue().trim(),
-                    m.getParameterValue(parameters[i].getName().trim()));
+        for (Parameter parameter : parameters) {
+            Assert.assertEquals(parameter.getValue().trim(),
+                    m.getParameterValue(parameter.getName().trim()));
         }
     }
 
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index be78bdb..4d153a6 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -185,6 +185,10 @@
         Update the packaged version of the Tomcat Native Library to 1.2.24.
         (markt)
       </update>
+      <scode>
+        Refactor to use enhanced for loops where possible. Pull request by Lars
+        Grefer. (markt)
+      </scode>
     </changelog>
   </subsection>
 </section>
diff --git a/webapps/examples/WEB-INF/classes/CookieExample.java b/webapps/examples/WEB-INF/classes/CookieExample.java
index 3774e05..afbf3e7 100644
--- a/webapps/examples/WEB-INF/classes/CookieExample.java
+++ b/webapps/examples/WEB-INF/classes/CookieExample.java
@@ -91,14 +91,13 @@ public class CookieExample extends HttpServlet {
                 sessionId = session.getId();
             }
             out.println(rb.getString("cookies.cookies") + "<br>");
-            for (int i = 0; i < cookies.length; i++) {
-                Cookie cookie = cookies[i];
+            for (Cookie cookie : cookies) {
                 String cName = cookie.getName();
                 String cValue = cookie.getValue();
                 out.print("Cookie Name: " + HTMLFilter.filter(cName) + "<br>");
                 out.println("  Cookie Value: "
-                            + HTMLFilter.filter(CookieFilter.filter(cName, cValue, sessionId))
-                            + "<br><br>");
+                        + HTMLFilter.filter(CookieFilter.filter(cName, cValue, sessionId))
+                        + "<br><br>");
             }
         } else {
             out.println(rb.getString("cookies.no-cookies"));
diff --git a/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java b/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java
index 8b3ac15..0ae07ac 100644
--- a/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java
+++ b/webapps/examples/WEB-INF/classes/async/AsyncStockServlet.java
@@ -18,7 +18,6 @@ package async;
 
 import java.io.IOException;
 import java.io.PrintWriter;
-import java.util.Iterator;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.atomic.AtomicInteger;
 
@@ -76,9 +75,7 @@ public class AsyncStockServlet extends HttpServlet implements TickListener, Asyn
 
     @Override
     public void tick(Stock stock) {
-        Iterator<AsyncContext> it = clients.iterator();
-        while (it.hasNext()) {
-            AsyncContext actx = it.next();
+        for (AsyncContext actx : clients) {
             try {
                 writeStock(actx, stock);
             } catch (Exception e) {
@@ -109,9 +106,7 @@ public class AsyncStockServlet extends HttpServlet implements TickListener, Asyn
     public void shutdown() {
         // The web application is shutting down. Complete any AsyncContexts
         // associated with an active client.
-        Iterator<AsyncContext> it = clients.iterator();
-        while (it.hasNext()) {
-            AsyncContext actx = it.next();
+        for (AsyncContext actx : clients) {
             try {
                 actx.complete();
             } catch (Exception e) {
diff --git a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilterTestServlet.java b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilterTestServlet.java
index af1a0b9..a973937 100644
--- a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilterTestServlet.java
+++ b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionFilterTestServlet.java
@@ -46,8 +46,7 @@ public class CompressionFilterTestServlet extends HttpServlet {
             out.println(name);
             if (name.indexOf("gzip") != -1) {
                 out.println("gzip supported -- able to compress");
-            }
-            else {
+            } else {
                 out.println("gzip not supported");
             }
         }
diff --git a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java
index ccc6607..6741beb 100644
--- a/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java
+++ b/webapps/examples/WEB-INF/classes/compressionFilters/CompressionResponseStream.java
@@ -425,8 +425,8 @@ public class CompressionResponseStream extends ServletOutputStream {
     private boolean startsWithStringArray(String sArray[], String value) {
         if (value == null)
            return false;
-        for (int i = 0; i < sArray.length; i++) {
-            if (value.startsWith(sArray[i])) {
+        for (String s : sArray) {
+            if (value.startsWith(s)) {
                 return true;
             }
         }
diff --git a/webapps/examples/WEB-INF/classes/util/HTMLFilter.java b/webapps/examples/WEB-INF/classes/util/HTMLFilter.java
index 29463fb..938bb5a 100644
--- a/webapps/examples/WEB-INF/classes/util/HTMLFilter.java
+++ b/webapps/examples/WEB-INF/classes/util/HTMLFilter.java
@@ -42,22 +42,22 @@ public final class HTMLFilter {
         char content[] = new char[message.length()];
         message.getChars(0, message.length(), content, 0);
         StringBuilder result = new StringBuilder(content.length + 50);
-        for (int i = 0; i < content.length; i++) {
-            switch (content[i]) {
-            case '<':
-                result.append("&lt;");
-                break;
-            case '>':
-                result.append("&gt;");
-                break;
-            case '&':
-                result.append("&amp;");
-                break;
-            case '"':
-                result.append("&quot;");
-                break;
-            default:
-                result.append(content[i]);
+        for (char c : content) {
+            switch (c) {
+                case '<':
+                    result.append("&lt;");
+                    break;
+                case '>':
+                    result.append("&gt;");
+                    break;
+                case '&':
+                    result.append("&amp;");
+                    break;
+                case '"':
+                    result.append("&quot;");
+                    break;
+                default:
+                    result.append(c);
             }
         }
         return result.toString();
diff --git a/webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java b/webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java
index 1d839fc..14207fb 100644
--- a/webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java
+++ b/webapps/examples/WEB-INF/classes/websocket/drawboard/Room.java
@@ -371,9 +371,9 @@ public final class Room {
 
                 // Run the cached runnables.
                 if (cachedRunnables != null) {
-                    for (int i = 0; i < cachedRunnables.size(); i++) {
+                    for (Runnable cachedRunnable : cachedRunnables) {
                         if (!closed) {
-                            cachedRunnables.get(i).run();
+                            cachedRunnable.run();
                         }
                     }
                     cachedRunnables = null;
diff --git a/webapps/examples/WEB-INF/jsp/applet/Clock2.java b/webapps/examples/WEB-INF/jsp/applet/Clock2.java
index c745815..128cfbd 100644
--- a/webapps/examples/WEB-INF/jsp/applet/Clock2.java
+++ b/webapps/examples/WEB-INF/jsp/applet/Clock2.java
@@ -95,8 +95,7 @@ public class Clock2 extends Applet implements Runnable {
             if (d<0) {
                 d=d+2*x+3;
                 x++;
-            }
-            else {
+            } else {
                 d=d+2*(x-y)+5;
                 x++;
                 y--;
diff --git a/webapps/examples/jsp/checkbox/checkresult.jsp b/webapps/examples/jsp/checkbox/checkresult.jsp
index a8400e9..ecbbacf 100644
--- a/webapps/examples/jsp/checkbox/checkresult.jsp
+++ b/webapps/examples/jsp/checkbox/checkresult.jsp
@@ -29,11 +29,11 @@ The checked fruits (got using request) are: <br>
 <ul>
 <%
     if (fruits != null) {
-      for (int i = 0; i < fruits.length; i++) {
+        for (String fruit : fruits) {
 %>
-<li>
-<%
-          out.println (util.HTMLFilter.filter(fruits[i]));
+    <li>
+            <%
+          out.println (util.HTMLFilter.filter(fruit));
       }
     } else out.println ("none selected");
 %>
@@ -49,11 +49,11 @@ The checked fruits (got using beans) are <br>
 <ul>
 <%
     if (!fruits[0].equals("1")) {
-      for (int i = 0; i < fruits.length; i++) {
+        for (String fruit : fruits) {
 %>
-<li>
-<%
-          out.println (util.HTMLFilter.filter(fruits[i]));
+    <li>
+            <%
+          out.println (util.HTMLFilter.filter(fruit));
       }
     } else out.println ("none selected");
 %>
diff --git a/webapps/examples/jsp/plugin/applet/Clock2.java b/webapps/examples/jsp/plugin/applet/Clock2.java
index 4ea737a..17bd9dd 100644
--- a/webapps/examples/jsp/plugin/applet/Clock2.java
+++ b/webapps/examples/jsp/plugin/applet/Clock2.java
@@ -95,8 +95,7 @@ public class Clock2 extends Applet implements Runnable {
             if (d<0) {
                 d=d+2*x+3;
                 x++;
-            }
-            else {
+            } else {
                 d=d+2*(x-y)+5;
                 x++;
                 y--;
diff --git a/webapps/examples/jsp/sessions/carts.jsp b/webapps/examples/jsp/sessions/carts.jsp
index 6fba47d..b5dc606 100644
--- a/webapps/examples/jsp/sessions/carts.jsp
+++ b/webapps/examples/jsp/sessions/carts.jsp
@@ -28,10 +28,10 @@
 <ol>
 <%
     String[] items = cart.getItems();
-    for (int i=0; i<items.length; i++) {
+    for (String item : items) {
 %>
-<li> <% out.print(util.HTMLFilter.filter(items[i])); %>
-<%
+    <li> <% out.print(util.HTMLFilter.filter(item)); %>
+            <%
     }
 %>
 </ol>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[tomcat] 02/02: Additional clean-up after enhanced for loop changes

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 041ae238ca41386a3a8205528664ce48e619d183
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri May 1 23:13:26 2020 +0100

    Additional clean-up after enhanced for loop changes
---
 java/javax/el/Util.java                            |  6 +--
 .../servlet/jsp/el/ImplicitObjectELResolver.java   | 20 ++++-----
 .../javax/servlet/jsp/tagext/SimpleTagSupport.java |  3 +-
 .../javax/servlet/jsp/tagext/TagAttributeInfo.java |  6 +--
 java/org/apache/catalina/connector/Request.java    |  6 +--
 .../catalina/core/ApplicationFilterFactory.java    |  8 ++--
 java/org/apache/catalina/core/StandardContext.java | 23 +++++-----
 .../catalina/ha/context/ReplicatedContext.java     | 20 +++++----
 .../catalina/loader/WebappClassLoaderBase.java     |  3 +-
 .../manager/host/HTMLHostManagerServlet.java       | 32 ++++++--------
 java/org/apache/catalina/realm/RealmBase.java      | 32 +++++++-------
 .../apache/catalina/session/StandardSession.java   | 49 ++++++++-------------
 java/org/apache/catalina/startup/Catalina.java     | 18 +++-----
 .../catalina/startup/ClassLoaderFactory.java       | 23 ++++++----
 .../interceptors/FragmentationInterceptor.java     |  4 +-
 .../tribes/transport/nio/NioReplicationTask.java   | 13 +-----
 .../apache/catalina/util/ExtensionValidator.java   |  9 +---
 .../catalina/valves/AbstractAccessLogValve.java    |  6 +--
 java/org/apache/el/util/ReflectionUtil.java        |  6 +--
 java/org/apache/jasper/JspC.java                   | 17 ++++----
 java/org/apache/jasper/compiler/Generator.java     | 12 ++----
 java/org/apache/jasper/compiler/JspUtil.java       |  8 ++--
 .../apache/jasper/servlet/JspCServletContext.java  |  3 +-
 .../tomcat/dbcp/dbcp2/DelegatingConnection.java    |  3 +-
 .../org/apache/tomcat/util/IntrospectionUtils.java |  9 ++--
 java/org/apache/tomcat/util/buf/ByteChunk.java     |  1 -
 .../apache/tomcat/util/modeler/BaseModelMBean.java |  1 -
 .../MbeansDescriptorsIntrospectionSource.java      |  6 +--
 .../tomcat/util/net/openssl/OpenSSLConf.java       |  6 +--
 .../tomcat/websocket/AuthenticatorFactory.java     |  1 -
 .../group/TestGroupChannelMemberArrival.java       |  4 +-
 .../interceptors/TestDomainFilterInterceptor.java  |  2 +-
 .../group/interceptors/TestOrderInterceptor.java   |  4 +-
 .../tribes/test/channel/TestDataIntegrity.java     | 50 +++++++++++-----------
 .../tribes/test/channel/TestMulticastPackages.java |  4 +-
 .../tribes/test/channel/TestUdpPackages.java       |  8 ++--
 webapps/examples/jsp/checkbox/checkresult.jsp      | 20 +++++----
 webapps/examples/jsp/sessions/carts.jsp            |  4 +-
 38 files changed, 199 insertions(+), 251 deletions(-)

diff --git a/java/javax/el/Util.java b/java/javax/el/Util.java
index cb1590c..2a01f3a 100644
--- a/java/javax/el/Util.java
+++ b/java/javax/el/Util.java
@@ -550,11 +550,11 @@ class Util {
                         (jreCompat.canAcccess(base, m) || base != null && jreCompat.canAcccess(null, m)))) {
             return m;
         }
-        Class<?>[] inf = type.getInterfaces();
+        Class<?>[] interfaces = type.getInterfaces();
         Method mp = null;
-        for (Class<?> aClass : inf) {
+        for (Class<?> iface : interfaces) {
             try {
-                mp = aClass.getMethod(m.getName(), m.getParameterTypes());
+                mp = iface.getMethod(m.getName(), m.getParameterTypes());
                 mp = getMethod(mp.getDeclaringClass(), base, mp);
                 if (mp != null) {
                     return mp;
diff --git a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
index 819ac98..07c4557 100644
--- a/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
+++ b/java/javax/servlet/jsp/el/ImplicitObjectELResolver.java
@@ -254,12 +254,11 @@ public class ImplicitObjectELResolver extends ELResolver {
                 this.cookie = new ScopeMap<Cookie>() {
                     @Override
                     protected Enumeration<String> getAttributeNames() {
-                        Cookie[] c = ((HttpServletRequest) page.getRequest())
-                                .getCookies();
-                        if (c != null) {
+                        Cookie[] cookies = ((HttpServletRequest) page.getRequest()).getCookies();
+                        if (cookies != null) {
                             Vector<String> v = new Vector<>();
-                            for (Cookie value : c) {
-                                v.add(value.getName());
+                            for (Cookie cookie : cookies) {
+                                v.add(cookie.getName());
                             }
                             return v.elements();
                         }
@@ -268,12 +267,11 @@ public class ImplicitObjectELResolver extends ELResolver {
 
                     @Override
                     protected Cookie getAttribute(String name) {
-                        Cookie[] c = ((HttpServletRequest) page.getRequest())
-                                .getCookies();
-                        if (c != null) {
-                            for (Cookie value : c) {
-                                if (name.equals(value.getName())) {
-                                    return value;
+                        Cookie[] cookies = ((HttpServletRequest) page.getRequest()).getCookies();
+                        if (cookies != null) {
+                            for (Cookie cookie : cookies) {
+                                if (name.equals(cookie.getName())) {
+                                    return cookie;
                                 }
                             }
                         }
diff --git a/java/javax/servlet/jsp/tagext/SimpleTagSupport.java b/java/javax/servlet/jsp/tagext/SimpleTagSupport.java
index 9d9c88f..7c6a84c 100644
--- a/java/javax/servlet/jsp/tagext/SimpleTagSupport.java
+++ b/java/javax/servlet/jsp/tagext/SimpleTagSupport.java
@@ -193,8 +193,7 @@ public class SimpleTagSupport implements SimpleTag {
             JspTag parent = null;
             if( from instanceof SimpleTag ) {
                 parent = ((SimpleTag)from).getParent();
-            }
-            else if( from instanceof Tag ) {
+            } else if( from instanceof Tag ) {
                 parent = ((Tag)from).getParent();
             }
             if (parent == null) {
diff --git a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java b/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
index 46f4a76..63c3551 100644
--- a/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
+++ b/java/javax/servlet/jsp/tagext/TagAttributeInfo.java
@@ -167,12 +167,12 @@ public class TagAttributeInfo {
      * Convenience static method that goes through an array of TagAttributeInfo
      * objects and looks for "id".
      *
-     * @param a
+     * @param tagAttributeInfos
      *            An array of TagAttributeInfo
      * @return The TagAttributeInfo reference with name "id"
      */
-    public static TagAttributeInfo getIdAttribute(TagAttributeInfo a[]) {
-        for (TagAttributeInfo tagAttributeInfo : a) {
+    public static TagAttributeInfo getIdAttribute(TagAttributeInfo[] tagAttributeInfos) {
+        for (TagAttributeInfo tagAttributeInfo : tagAttributeInfos) {
             if (tagAttributeInfo.getName().equals(ID)) {
                 return tagAttributeInfo;
             }
diff --git a/java/org/apache/catalina/connector/Request.java b/java/org/apache/catalina/connector/Request.java
index 2ea39dd..ad34a09 100644
--- a/java/org/apache/catalina/connector/Request.java
+++ b/java/org/apache/catalina/connector/Request.java
@@ -1603,8 +1603,7 @@ public class Request implements HttpServletRequest {
             if (!(o instanceof ServletRequestAttributeListener)) {
                 continue;
             }
-            ServletRequestAttributeListener listener =
-                    (ServletRequestAttributeListener) o;
+            ServletRequestAttributeListener listener = (ServletRequestAttributeListener) o;
             try {
                 if (replaced) {
                     listener.attributeReplaced(event);
@@ -1640,8 +1639,7 @@ public class Request implements HttpServletRequest {
             if (!(o instanceof ServletRequestAttributeListener)) {
                 continue;
             }
-            ServletRequestAttributeListener listener =
-                    (ServletRequestAttributeListener) o;
+            ServletRequestAttributeListener listener = (ServletRequestAttributeListener) o;
             try {
                 listener.attributeRemoved(event);
             } catch (Throwable t) {
diff --git a/java/org/apache/catalina/core/ApplicationFilterFactory.java b/java/org/apache/catalina/core/ApplicationFilterFactory.java
index 5b6db99..b5bd81b 100644
--- a/java/org/apache/catalina/core/ApplicationFilterFactory.java
+++ b/java/org/apache/catalina/core/ApplicationFilterFactory.java
@@ -100,14 +100,14 @@ public final class ApplicationFilterFactory {
         String servletName = wrapper.getName();
 
         // Add the relevant path-mapped filters to this filter chain
-        for (FilterMap map : filterMaps) {
-            if (!matchDispatcher(map, dispatcher)) {
+        for (FilterMap filterMap : filterMaps) {
+            if (!matchDispatcher(filterMap, dispatcher)) {
                 continue;
             }
-            if (!matchFiltersURL(map, requestPath))
+            if (!matchFiltersURL(filterMap, requestPath))
                 continue;
             ApplicationFilterConfig filterConfig = (ApplicationFilterConfig)
-                    context.findFilterConfig(map.getFilterName());
+                    context.findFilterConfig(filterMap.getFilterName());
             if (filterConfig == null) {
                 // FIXME - log configuration problem
                 continue;
diff --git a/java/org/apache/catalina/core/StandardContext.java b/java/org/apache/catalina/core/StandardContext.java
index a6a9f2c..a4adfa6 100644
--- a/java/org/apache/catalina/core/StandardContext.java
+++ b/java/org/apache/catalina/core/StandardContext.java
@@ -4685,10 +4685,10 @@ public class StandardContext extends ContainerBase
             tldEvent = new ServletContextEvent(noPluggabilityServletContext);
         }
         for (Object instance : instances) {
-            if (!(instance instanceof ServletContextListener))
+            if (!(instance instanceof ServletContextListener)) {
                 continue;
-            ServletContextListener listener =
-                    (ServletContextListener) instance;
+            }
+            ServletContextListener listener = (ServletContextListener) instance;
             try {
                 fireContainerEvent("beforeContextInitialized", listener);
                 if (noPluggabilityListeners.contains(listener)) {
@@ -4700,9 +4700,8 @@ public class StandardContext extends ContainerBase
             } catch (Throwable t) {
                 ExceptionUtils.handleThrowable(t);
                 fireContainerEvent("afterContextInitialized", listener);
-                getLogger().error
-                        (sm.getString("standardContext.listenerStart",
-                                instance.getClass().getName()), t);
+                getLogger().error(sm.getString("standardContext.listenerStart",
+                        instance.getClass().getName()), t);
                 ok = false;
             }
         }
@@ -4865,8 +4864,9 @@ public class StandardContext extends ContainerBase
         for (Container child : children) {
             Wrapper wrapper = (Wrapper) child;
             int loadOnStartup = wrapper.getLoadOnStartup();
-            if (loadOnStartup < 0)
+            if (loadOnStartup < 0) {
                 continue;
+            }
             Integer key = Integer.valueOf(loadOnStartup);
             ArrayList<Wrapper> list = map.get(key);
             if (list == null) {
@@ -5897,12 +5897,13 @@ public class StandardContext extends ContainerBase
                     new ServletRequestEvent(getServletContext(), request);
 
             for (Object instance : instances) {
-                if (instance == null)
+                if (instance == null) {
                     continue;
-                if (!(instance instanceof ServletRequestListener))
+                }
+                if (!(instance instanceof ServletRequestListener)) {
                     continue;
-                ServletRequestListener listener =
-                        (ServletRequestListener) instance;
+                }
+                ServletRequestListener listener = (ServletRequestListener) instance;
 
                 try {
                     listener.requestInitialized(event);
diff --git a/java/org/apache/catalina/ha/context/ReplicatedContext.java b/java/org/apache/catalina/ha/context/ReplicatedContext.java
index 9ed7ad0..3457567 100644
--- a/java/org/apache/catalina/ha/context/ReplicatedContext.java
+++ b/java/org/apache/catalina/ha/context/ReplicatedContext.java
@@ -195,21 +195,25 @@ public class ReplicatedContext extends StandardContext implements MapOwner {
     }
 
     protected static class MultiEnumeration<T> implements Enumeration<T> {
-        private final Enumeration<T>[] e;
-        public MultiEnumeration(Enumeration<T>[] lists) {
-            e = lists;
+        private final Enumeration<T>[] enumerations;
+        public MultiEnumeration(Enumeration<T>[] enumerations) {
+            this.enumerations = enumerations;
         }
         @Override
         public boolean hasMoreElements() {
-            for (Enumeration<T> tEnumeration : e) {
-                if (tEnumeration.hasMoreElements()) return true;
+            for (Enumeration<T> enumeration : enumerations) {
+                if (enumeration.hasMoreElements()) {
+                    return true;
+                }
             }
             return false;
         }
         @Override
         public T nextElement() {
-            for (Enumeration<T> tEnumeration : e) {
-                if (tEnumeration.hasMoreElements()) return tEnumeration.nextElement();
+            for (Enumeration<T> enumeration : enumerations) {
+                if (enumeration.hasMoreElements()) {
+                    return enumeration.nextElement();
+                }
             }
             return null;
 
@@ -220,6 +224,4 @@ public class ReplicatedContext extends StandardContext implements MapOwner {
     public void objectMadePrimary(Object key, Object value) {
         //noop
     }
-
-
 }
\ No newline at end of file
diff --git a/java/org/apache/catalina/loader/WebappClassLoaderBase.java b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
index 248ab61..57d2810 100644
--- a/java/org/apache/catalina/loader/WebappClassLoaderBase.java
+++ b/java/org/apache/catalina/loader/WebappClassLoaderBase.java
@@ -2024,8 +2024,7 @@ public abstract class WebappClassLoaderBase extends URLClassLoader
                                 log.error(sm.getString(
                                         "webappClassLoader.checkThreadLocalsForLeaks",
                                         args));
-                            }
-                            else if (value == null) {
+                            } else if (value == null) {
                                 if (log.isDebugEnabled()) {
                                     log.debug(sm.getString(
                                             "webappClassLoader.checkThreadLocalsForLeaksNull",
diff --git a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
index 3dd2c36..77353c8 100644
--- a/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
+++ b/java/org/apache/catalina/manager/host/HTMLHostManagerServlet.java
@@ -23,8 +23,9 @@ import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.net.URLEncoder;
 import java.text.MessageFormat;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.Arrays;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
@@ -311,29 +312,22 @@ public final class HTMLHostManagerServlet extends HostManagerServlet {
         writer.print(MessageFormat.format(HOSTS_HEADER_SECTION, args));
 
         // Hosts Row Section
-        // Create sorted map of host names.
+        // Create sorted set of host names.
         Container[] children = engine.findChildren();
         String hostNames[] = new String[children.length];
-        for (int i = 0; i < children.length; i++)
+        for (int i = 0; i < children.length; i++) {
             hostNames[i] = children[i].getName();
+        }
 
-        TreeMap<String,String> sortedHostNamesMap = new TreeMap<>();
+        SortedSet<String> sortedHostNames = new TreeSet<>();
+        sortedHostNames.addAll(Arrays.asList(hostNames));
 
-        for (String displayPath : hostNames) {
-            sortedHostNamesMap.put(displayPath, displayPath);
-        }
+        String hostsStart = smClient.getString("htmlHostManagerServlet.hostsStart");
+        String hostsStop = smClient.getString("htmlHostManagerServlet.hostsStop");
+        String hostsRemove = smClient.getString("htmlHostManagerServlet.hostsRemove");
+        String hostThis = smClient.getString("htmlHostManagerServlet.hostThis");
 
-        String hostsStart =
-            smClient.getString("htmlHostManagerServlet.hostsStart");
-        String hostsStop =
-            smClient.getString("htmlHostManagerServlet.hostsStop");
-        String hostsRemove =
-            smClient.getString("htmlHostManagerServlet.hostsRemove");
-        String hostThis =
-            smClient.getString("htmlHostManagerServlet.hostThis");
-
-        for (Map.Entry<String, String> entry : sortedHostNamesMap.entrySet()) {
-            String hostName = entry.getKey();
+        for (String hostName : sortedHostNames) {
             Host host = (Host) engine.findChild(hostName);
 
             if (host != null ) {
diff --git a/java/org/apache/catalina/realm/RealmBase.java b/java/org/apache/catalina/realm/RealmBase.java
index 615928b..ae02312 100644
--- a/java/org/apache/catalina/realm/RealmBase.java
+++ b/java/org/apache/catalina/realm/RealmBase.java
@@ -565,11 +565,11 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
         int i;
         boolean found = false;
         for (i = 0; i < constraints.length; i++) {
-            SecurityCollection [] collection = constraints[i].findCollections();
+            SecurityCollection[] collections = constraints[i].findCollections();
 
             // If collection is null, continue to avoid an NPE
             // See Bugzilla 30624
-            if ( collection == null) {
+            if (collections == null) {
                 continue;
             }
 
@@ -579,7 +579,7 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                     constraints[i].included(uri, method));
             }
 
-            for (SecurityCollection securityCollection : collection) {
+            for (SecurityCollection securityCollection : collections) {
                 String[] patterns = securityCollection.findPatterns();
 
                 // If patterns is null, continue to avoid an NPE
@@ -642,12 +642,9 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
                         if (pattern.length() == 2) {
                             matched = true;
                             length = pattern.length();
-                        }
-                        else if (pattern.regionMatches(0, uri, 0,
-                                pattern.length() - 1) ||
+                        } else if (pattern.regionMatches(0, uri, 0, pattern.length() - 1) ||
                                 (pattern.length() - 2 == uri.length() &&
-                                        pattern.regionMatches(0, uri, 0,
-                                                pattern.length() - 2))) {
+                                        pattern.regionMatches(0, uri, 0, pattern.length() - 2))) {
                             matched = true;
                             length = pattern.length();
                         }
@@ -845,29 +842,32 @@ public abstract class RealmBase extends LifecycleMBeanBase implements org.apache
             else if (roles.length == 0 && !constraint.getAllRoles() &&
                     !constraint.getAuthenticatedUsers()) {
                 if (constraint.getAuthConstraint()) {
-                    if (log.isDebugEnabled())
+                    if (log.isDebugEnabled()) {
                         log.debug("No roles");
+                    }
                     status = false; // No listed roles means no access at all
                     denyfromall = true;
                     break;
                 }
 
-                if (log.isDebugEnabled())
+                if (log.isDebugEnabled()) {
                     log.debug("Passing all access");
+                }
                 status = true;
-            }
-            else if (principal == null) {
-                if (log.isDebugEnabled())
+            } else if (principal == null) {
+                if (log.isDebugEnabled()) {
                     log.debug("  No user authenticated, cannot grant access");
+                }
             } else {
                 for (String role : roles) {
                     if (hasRole(request.getWrapper(), principal, role)) {
                         status = true;
-                        if (log.isDebugEnabled())
+                        if (log.isDebugEnabled()) {
                             log.debug("Role found:  " + role);
-                    }
-                    else if (log.isDebugEnabled())
+                        }
+                    } else if (log.isDebugEnabled()) {
                         log.debug("No role found:  " + role);
+                    }
                 }
             }
         }
diff --git a/java/org/apache/catalina/session/StandardSession.java b/java/org/apache/catalina/session/StandardSession.java
index a64d42a..44c41be 100644
--- a/java/org/apache/catalina/session/StandardSession.java
+++ b/java/org/apache/catalina/session/StandardSession.java
@@ -381,23 +381,19 @@ public class StandardSession implements HttpSession, Session, Serializable {
             for (Object o : listeners) {
                 if (!(o instanceof HttpSessionListener))
                     continue;
-                HttpSessionListener listener =
-                        (HttpSessionListener) o;
+                HttpSessionListener listener = (HttpSessionListener) o;
                 try {
-                    context.fireContainerEvent("beforeSessionCreated",
-                            listener);
+                    context.fireContainerEvent("beforeSessionCreated", listener);
                     listener.sessionCreated(event);
                     context.fireContainerEvent("afterSessionCreated", listener);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
                     try {
-                        context.fireContainerEvent("afterSessionCreated",
-                                listener);
+                        context.fireContainerEvent("afterSessionCreated", listener);
                     } catch (Exception e) {
                         // Ignore
                     }
-                    manager.getContext().getLogger().error
-                            (sm.getString("standardSession.sessionEvent"), t);
+                    manager.getContext().getLogger().error (sm.getString("standardSession.sessionEvent"), t);
                 }
             }
         }
@@ -891,12 +887,10 @@ public class StandardSession implements HttpSession, Session, Serializable {
                 if (event == null)
                     event = new HttpSessionEvent(getSession());
                 try {
-                    ((HttpSessionActivationListener) attribute)
-                            .sessionWillPassivate(event);
+                    ((HttpSessionActivationListener) attribute).sessionWillPassivate(event);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
-                    manager.getContext().getLogger().error
-                            (sm.getString("standardSession.attributeEvent"), t);
+                    manager.getContext().getLogger().error(sm.getString("standardSession.attributeEvent"), t);
                 }
             }
         }
@@ -927,16 +921,13 @@ public class StandardSession implements HttpSession, Session, Serializable {
                 if (event == null)
                     event = new HttpSessionEvent(getSession());
                 try {
-                    ((HttpSessionActivationListener) attribute)
-                            .sessionDidActivate(event);
+                    ((HttpSessionActivationListener) attribute).sessionDidActivate(event);
                 } catch (Throwable t) {
                     ExceptionUtils.handleThrowable(t);
-                    manager.getContext().getLogger().error
-                            (sm.getString("standardSession.attributeEvent"), t);
+                    manager.getContext().getLogger().error(sm.getString("standardSession.attributeEvent"), t);
                 }
             }
         }
-
     }
 
 
@@ -1700,8 +1691,7 @@ public class StandardSession implements HttpSession, Session, Serializable {
             Object value = attributes.get(key);
             if (value == null) {
                 continue;
-            }
-            else if (isAttributeDistributable(key, value) && !exclude(key, value)) {
+            } else if (isAttributeDistributable(key, value) && !exclude(key, value)) {
                 saveNames.add(key);
                 saveValues.add(value);
             } else {
@@ -1853,30 +1843,25 @@ public class StandardSession implements HttpSession, Session, Serializable {
         if (listeners == null)
             return;
         for (Object o : listeners) {
-            if (!(o instanceof HttpSessionAttributeListener))
+            if (!(o instanceof HttpSessionAttributeListener)) {
                 continue;
-            HttpSessionAttributeListener listener =
-                    (HttpSessionAttributeListener) o;
+            }
+            HttpSessionAttributeListener listener = (HttpSessionAttributeListener) o;
             try {
-                context.fireContainerEvent("beforeSessionAttributeRemoved",
-                        listener);
+                context.fireContainerEvent("beforeSessionAttributeRemoved", listener);
                 if (event == null) {
-                    event = new HttpSessionBindingEvent
-                            (getSession(), name, value);
+                    event = new HttpSessionBindingEvent(getSession(), name, value);
                 }
                 listener.attributeRemoved(event);
-                context.fireContainerEvent("afterSessionAttributeRemoved",
-                        listener);
+                context.fireContainerEvent("afterSessionAttributeRemoved", listener);
             } catch (Throwable t) {
                 ExceptionUtils.handleThrowable(t);
                 try {
-                    context.fireContainerEvent("afterSessionAttributeRemoved",
-                            listener);
+                    context.fireContainerEvent("afterSessionAttributeRemoved", listener);
                 } catch (Exception e) {
                     // Ignore
                 }
-                manager.getContext().getLogger().error
-                        (sm.getString("standardSession.attributeEvent"), t);
+                manager.getContext().getLogger().error(sm.getString("standardSession.attributeEvent"), t);
             }
         }
 
diff --git a/java/org/apache/catalina/startup/Catalina.java b/java/org/apache/catalina/startup/Catalina.java
index 099d305..5df6701 100644
--- a/java/org/apache/catalina/startup/Catalina.java
+++ b/java/org/apache/catalina/startup/Catalina.java
@@ -232,24 +232,18 @@ public class Catalina {
             if (isConfig) {
                 configFile = arg;
                 isConfig = false;
-            }
-            else if (arg.equals("-config")) {
+            } else if (arg.equals("-config")) {
                 isConfig = true;
-            }
-            else if (arg.equals("-nonaming")) {
+            } else if (arg.equals("-nonaming")) {
                 setUseNaming(false);
-            }
-            else if (arg.equals("-help")) {
+            } else if (arg.equals("-help")) {
                 usage();
                 return false;
-            }
-            else if (arg.equals("start")) {
+            } else if (arg.equals("start")) {
                 // NOOP
-            }
-            else if (arg.equals("configtest")) {
+            } else if (arg.equals("configtest")) {
                 // NOOP
-            }
-            else if (arg.equals("stop")) {
+            } else if (arg.equals("stop")) {
                 // NOOP
             } else {
                 usage();
diff --git a/java/org/apache/catalina/startup/ClassLoaderFactory.java b/java/org/apache/catalina/startup/ClassLoaderFactory.java
index 7a35dd6..2be5613 100644
--- a/java/org/apache/catalina/startup/ClassLoaderFactory.java
+++ b/java/org/apache/catalina/startup/ClassLoaderFactory.java
@@ -85,14 +85,15 @@ public final class ClassLoaderFactory {
 
         // Add unpacked directories
         if (unpacked != null) {
-            for (File value : unpacked) {
-                File file = value;
-                if (!file.canRead())
+            for (File file : unpacked) {
+                if (!file.canRead()) {
                     continue;
+                }
                 file = new File(file.getCanonicalPath() + File.separator);
                 URL url = file.toURI().toURL();
-                if (log.isDebugEnabled())
+                if (log.isDebugEnabled()) {
                     log.debug("  Including directory " + url);
+                }
                 set.add(url);
             }
         }
@@ -100,19 +101,22 @@ public final class ClassLoaderFactory {
         // Add packed directory JAR files
         if (packed != null) {
             for (File directory : packed) {
-                if (!directory.isDirectory() || !directory.canRead())
+                if (!directory.isDirectory() || !directory.canRead()) {
                     continue;
+                }
                 String filenames[] = directory.list();
                 if (filenames == null) {
                     continue;
                 }
                 for (String s : filenames) {
                     String filename = s.toLowerCase(Locale.ENGLISH);
-                    if (!filename.endsWith(".jar"))
+                    if (!filename.endsWith(".jar")) {
                         continue;
+                    }
                     File file = new File(directory, s);
-                    if (log.isDebugEnabled())
+                    if (log.isDebugEnabled()) {
                         log.debug("  Including jar file " + file.getAbsolutePath());
+                    }
                     URL url = file.toURI().toURL();
                     set.add(url);
                 }
@@ -125,10 +129,11 @@ public final class ClassLoaderFactory {
                 new PrivilegedAction<URLClassLoader>() {
                     @Override
                     public URLClassLoader run() {
-                        if (parent == null)
+                        if (parent == null) {
                             return new URLClassLoader(array);
-                        else
+                        } else {
                             return new URLClassLoader(array, parent);
+                        }
                     }
                 });
     }
diff --git a/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java b/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
index f243514..872f66a 100644
--- a/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
+++ b/java/org/apache/catalina/tribes/group/interceptors/FragmentationInterceptor.java
@@ -208,7 +208,9 @@ public class FragmentationInterceptor extends ChannelInterceptorBase implements
         public ChannelMessage assemble() {
             if ( !complete() ) throw new IllegalStateException(sm.getString("fragmentationInterceptor.fragments.missing"));
             int buffersize = 0;
-            for (XByteBuffer xByteBuffer : frags) buffersize += xByteBuffer.getLength();
+            for (XByteBuffer frag : frags) {
+                buffersize += frag.getLength();
+            }
             XByteBuffer buf = new XByteBuffer(buffersize,false);
             msg.setMessage(buf);
             for (XByteBuffer frag : frags) {
diff --git a/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java b/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
index b8846f3..7664afa 100644
--- a/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
+++ b/java/org/apache/catalina/tribes/transport/nio/NioReplicationTask.java
@@ -196,24 +196,15 @@ public class NioReplicationTask extends AbstractRxTask {
 
         registerForRead(key,reader);//register to read new data, before we send it off to avoid dead locks
 
-        /**
-         * Use send ack here if you want to ack the request to the remote
-         * server before completing the request
-         * This is considered an asynchronous request
-         */
-        /**
-         * Use send ack here if you want the request to complete on this
-         * server before sending the ack to the remote server
-         * This is considered a synchronized request
-         */
         for (ChannelMessage msg : msgs) {
             /**
              * Use send ack here if you want to ack the request to the remote
              * server before completing the request
              * This is considered an asynchronous request
              */
-            if (ChannelData.sendAckAsync(msg.getOptions()))
+            if (ChannelData.sendAckAsync(msg.getOptions())) {
                 sendAck(key, (WritableByteChannel) channel, Constants.ACK_COMMAND, saddr);
+            }
             try {
                 if (Logs.MESSAGES.isTraceEnabled()) {
                     try {
diff --git a/java/org/apache/catalina/util/ExtensionValidator.java b/java/org/apache/catalina/util/ExtensionValidator.java
index 0c7fc13..e308a5e 100644
--- a/java/org/apache/catalina/util/ExtensionValidator.java
+++ b/java/org/apache/catalina/util/ExtensionValidator.java
@@ -345,14 +345,11 @@ public final class ExtensionValidator {
                     continue;
                 }
                 for (File file : files) {
-                    if (file.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar") &&
-                            file.isFile()) {
+                    if (file.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar") && file.isFile()) {
                         try {
                             addSystemResource(file);
                         } catch (IOException e) {
-                            log.error
-                                    (sm.getString
-                                            ("extensionValidator.failload", file), e);
+                            log.error(sm.getString("extensionValidator.failload", file), e);
                         }
                     }
                 }
@@ -360,6 +357,4 @@ public final class ExtensionValidator {
         }
 
     }
-
-
 }
diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
index 2580524..83f9c93 100644
--- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java
+++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
@@ -1517,9 +1517,9 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access
         public void addElement(CharArrayWriter buf, Date date, Request request,
                 Response response, long time) {
             String value = "-";
-            Cookie[] c = request.getCookies();
-            if (c != null) {
-                for (Cookie cookie : c) {
+            Cookie[] cookies = request.getCookies();
+            if (cookies != null) {
+                for (Cookie cookie : cookies) {
                     if (header.equals(cookie.getName())) {
                         value = cookie.getValue();
                         break;
diff --git a/java/org/apache/el/util/ReflectionUtil.java b/java/org/apache/el/util/ReflectionUtil.java
index 60f1dcb..da935ec 100644
--- a/java/org/apache/el/util/ReflectionUtil.java
+++ b/java/org/apache/el/util/ReflectionUtil.java
@@ -436,11 +436,11 @@ public class ReflectionUtil {
                         (jreCompat.canAcccess(base, m) || base != null && jreCompat.canAcccess(null, m)))) {
             return m;
         }
-        Class<?>[] inf = type.getInterfaces();
+        Class<?>[] interfaces = type.getInterfaces();
         Method mp = null;
-        for (Class<?> aClass : inf) {
+        for (Class<?> iface : interfaces) {
             try {
-                mp = aClass.getMethod(m.getName(), m.getParameterTypes());
+                mp = iface.getMethod(m.getName(), m.getParameterTypes());
                 mp = getMethod(mp.getDeclaringClass(), base, mp);
                 if (mp != null) {
                     return mp;
diff --git a/java/org/apache/jasper/JspC.java b/java/org/apache/jasper/JspC.java
index b5acd0b..7ef04e0 100644
--- a/java/org/apache/jasper/JspC.java
+++ b/java/org/apache/jasper/JspC.java
@@ -1726,13 +1726,13 @@ public class JspC extends Task implements Options {
                 // therefore we have permission to freak out
                 throw new RuntimeException(ioe.toString());
             }
-            File lib = new File(webappBase, "/WEB-INF/lib");
-            if (lib.exists() && lib.isDirectory()) {
-                String[] libs = lib.list();
+            File webinfLib = new File(webappBase, "/WEB-INF/lib");
+            if (webinfLib.exists() && webinfLib.isDirectory()) {
+                String[] libs = webinfLib.list();
                 if (libs != null) {
-                    for (String s : libs) {
-                        if (s.length() < 5) continue;
-                        String ext = s.substring(s.length() - 4);
+                    for (String lib : libs) {
+                        if (lib.length() < 5) continue;
+                        String ext = lib.substring(lib.length() - 4);
                         if (!".jar".equalsIgnoreCase(ext)) {
                             if (".tld".equalsIgnoreCase(ext)) {
                                 log.warn("TLD files should not be placed in "
@@ -1741,9 +1741,8 @@ public class JspC extends Task implements Options {
                             continue;
                         }
                         try {
-                            File libFile = new File(lib, s);
-                            classPath = classPath + File.pathSeparator
-                                    + libFile.getAbsolutePath();
+                            File libFile = new File(webinfLib, lib);
+                            classPath = classPath + File.pathSeparator + libFile.getAbsolutePath();
                             urls.add(libFile.getAbsoluteFile().toURI().toURL());
                         } catch (IOException ioe) {
                             // failing a toCanonicalPath on a file that
diff --git a/java/org/apache/jasper/compiler/Generator.java b/java/org/apache/jasper/compiler/Generator.java
index ea58146..fcfb517 100644
--- a/java/org/apache/jasper/compiler/Generator.java
+++ b/java/org/apache/jasper/compiler/Generator.java
@@ -2731,8 +2731,7 @@ class Generator {
                             if (varName == null) {
                                 varName = n.getTagData().getAttributeString(
                                         tagVarInfo.getNameFromAttribute());
-                            }
-                            else if (tagVarInfo.getNameFromAttribute() != null) {
+                            } else if (tagVarInfo.getNameFromAttribute() != null) {
                                 // alias
                                 continue;
                             }
@@ -2804,8 +2803,7 @@ class Generator {
                     if (varName == null) {
                         varName = n.getTagData().getAttributeString(
                                 tagVarInfo.getNameFromAttribute());
-                    }
-                    else if (tagVarInfo.getNameFromAttribute() != null) {
+                    } else if (tagVarInfo.getNameFromAttribute() != null) {
                         // alias
                         continue;
                     }
@@ -2875,8 +2873,7 @@ class Generator {
                     if (varName == null) {
                         varName = n.getTagData().getAttributeString(
                                 tagVarInfo.getNameFromAttribute());
-                    }
-                    else if (tagVarInfo.getNameFromAttribute() != null) {
+                    } else if (tagVarInfo.getNameFromAttribute() != null) {
                         // alias
                         continue;
                     }
@@ -2929,8 +2926,7 @@ class Generator {
                         if (name == null) {
                             name = n.getTagData().getAttributeString(
                                     tagVarInfo.getNameFromAttribute());
-                        }
-                        else if (tagVarInfo.getNameFromAttribute() != null) {
+                        } else if (tagVarInfo.getNameFromAttribute() != null) {
                             // alias
                             continue;
                         }
diff --git a/java/org/apache/jasper/compiler/JspUtil.java b/java/org/apache/jasper/compiler/JspUtil.java
index c1f5ec0..b077113 100644
--- a/java/org/apache/jasper/compiler/JspUtil.java
+++ b/java/org/apache/jasper/compiler/JspUtil.java
@@ -165,16 +165,16 @@ public class JspUtil {
          */
         String missingAttribute = null;
 
-        for (ValidAttribute value : validAttributes) {
+        for (ValidAttribute validAttribute : validAttributes) {
             int attrPos;
-            if (value.mandatory) {
-                attrPos = temp.indexOf(value.name);
+            if (validAttribute.mandatory) {
+                attrPos = temp.indexOf(validAttribute.name);
                 if (attrPos != -1) {
                     temp.remove(attrPos);
                     valid = true;
                 } else {
                     valid = false;
-                    missingAttribute = value.name;
+                    missingAttribute = validAttribute.name;
                     break;
                 }
             }
diff --git a/java/org/apache/jasper/servlet/JspCServletContext.java b/java/org/apache/jasper/servlet/JspCServletContext.java
index fa24ce5..7298708 100644
--- a/java/org/apache/jasper/servlet/JspCServletContext.java
+++ b/java/org/apache/jasper/servlet/JspCServletContext.java
@@ -451,8 +451,7 @@ public class JspCServletContext implements ServletContext {
                         File testFile = new File(basePath + File.separator + theFile);
                         if (testFile.isFile()) {
                             thePaths.add(path + theFile);
-                        }
-                        else if (testFile.isDirectory()) {
+                        } else if (testFile.isDirectory()) {
                             thePaths.add(path + theFile + "/");
                         }
                     }
diff --git a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
index 11290c6..c215d03 100644
--- a/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
+++ b/java/org/apache/tomcat/dbcp/dbcp2/DelegatingConnection.java
@@ -626,8 +626,7 @@ public class DelegatingConnection<C extends Connection> extends AbandonedTrace i
                     } catch (Exception e) {
                         thrownList.add(e);
                     }
-                }
-                else if (trace instanceof ResultSet) {
+                } else if (trace instanceof ResultSet) {
                     // DBCP-265: Need to close the result sets that are
                     // generated via DatabaseMetaData
                     try {
diff --git a/java/org/apache/tomcat/util/IntrospectionUtils.java b/java/org/apache/tomcat/util/IntrospectionUtils.java
index 506f50d..606d648 100644
--- a/java/org/apache/tomcat/util/IntrospectionUtils.java
+++ b/java/org/apache/tomcat/util/IntrospectionUtils.java
@@ -90,8 +90,7 @@ public final class IntrospectionUtils {
                             ok = false;
                         }
                         // Try a setFoo ( long )
-                    }
-                    else if ("java.lang.Long".equals(paramType.getName())
+                    } else if ("java.lang.Long".equals(paramType.getName())
                             || "long".equals(paramType.getName())) {
                         try {
                             params[0] = Long.valueOf(value);
@@ -100,14 +99,12 @@ public final class IntrospectionUtils {
                         }
 
                         // Try a setFoo ( boolean )
-                    }
-                    else if ("java.lang.Boolean".equals(paramType.getName())
+                    } else if ("java.lang.Boolean".equals(paramType.getName())
                             || "boolean".equals(paramType.getName())) {
                         params[0] = Boolean.valueOf(value);
 
                         // Try a setFoo ( InetAddress )
-                    }
-                    else if ("java.net.InetAddress".equals(paramType
+                    } else if ("java.net.InetAddress".equals(paramType
                             .getName())) {
                         try {
                             params[0] = InetAddress.getByName(value);
diff --git a/java/org/apache/tomcat/util/buf/ByteChunk.java b/java/org/apache/tomcat/util/buf/ByteChunk.java
index d761054..d3ec97c 100644
--- a/java/org/apache/tomcat/util/buf/ByteChunk.java
+++ b/java/org/apache/tomcat/util/buf/ByteChunk.java
@@ -803,7 +803,6 @@ public final class ByteChunk extends AbstractChunk {
      *         is not found.
      */
     public static int findBytes(byte bytes[], int start, int end, byte b[]) {
-        int blen = b.length;
         int offset = start;
         while (offset < end) {
             for (byte value : b) {
diff --git a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
index 3dbf9f6..db66c5f 100644
--- a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
+++ b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
@@ -21,7 +21,6 @@ package org.apache.tomcat.util.modeler;
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
-import java.util.Iterator;
 
 import javax.management.Attribute;
 import javax.management.AttributeChangeNotification;
diff --git a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
index ad00ff7..72809e7 100644
--- a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
+++ b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
@@ -225,8 +225,7 @@ public class MbeansDescriptorsIntrospectionSource extends ModelerSource
                 getAttMap.put(name, method);
                 // just a marker, we don't use the value
                 attMap.put(name, method);
-            }
-            else if (name.startsWith("is") && params.length == 0) {
+            } else if (name.startsWith("is") && params.length == 0) {
                 Class<?> ret = method.getReturnType();
                 if (Boolean.TYPE != ret) {
                     if (log.isDebugEnabled()) {
@@ -240,8 +239,7 @@ public class MbeansDescriptorsIntrospectionSource extends ModelerSource
                 // just a marker, we don't use the value
                 attMap.put(name, method);
 
-            }
-            else if (name.startsWith("set") && params.length == 1) {
+            } else if (name.startsWith("set") && params.length == 1) {
                 if (!supportedType(params[0])) {
                     if (log.isDebugEnabled()) {
                         log.debug("Unsupported type " + method + " " + params[0]);
diff --git a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
index 9f2d1ca..8ab720c 100644
--- a/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
+++ b/java/org/apache/tomcat/util/net/openssl/OpenSSLConf.java
@@ -70,8 +70,7 @@ public class OpenSSLConf implements Serializable {
                 log.error(sm.getString("opensslconf.failedCommand", name, value,
                         Integer.toString(rc)));
                 result = false;
-            }
-            else if (log.isDebugEnabled()) {
+            } else if (log.isDebugEnabled()) {
                 log.debug(sm.getString("opensslconf.resultCommand", name, value,
                         Integer.toString(rc)));
             }
@@ -111,8 +110,7 @@ public class OpenSSLConf implements Serializable {
                 log.error(sm.getString("opensslconf.failedCommand", name, value,
                         Integer.toString(rc)));
                 result = false;
-            }
-            else if (log.isDebugEnabled()) {
+            } else if (log.isDebugEnabled()) {
                 log.debug(sm.getString("opensslconf.resultCommand", name, value,
                         Integer.toString(rc)));
             }
diff --git a/java/org/apache/tomcat/websocket/AuthenticatorFactory.java b/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
index 116ab67..0bc5e6b 100644
--- a/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
+++ b/java/org/apache/tomcat/websocket/AuthenticatorFactory.java
@@ -16,7 +16,6 @@
  */
 package org.apache.tomcat.websocket;
 
-import java.util.Iterator;
 import java.util.ServiceLoader;
 
 /**
diff --git a/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java b/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
index fb7c960..8d8dba1 100644
--- a/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
+++ b/test/org/apache/catalina/tribes/group/TestGroupChannelMemberArrival.java
@@ -64,8 +64,8 @@ public class TestGroupChannelMemberArrival {
             };
             threads[i] = t;
         }
-        for (Thread value : threads) {
-            value.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
diff --git a/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java b/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
index e03ddec..bd2be3c 100644
--- a/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
+++ b/test/org/apache/catalina/tribes/group/interceptors/TestDomainFilterInterceptor.java
@@ -73,7 +73,7 @@ public class TestDomainFilterInterceptor {
             };
             threads[i] = t;
         }
-        for (Thread value : threads) value.start();
+        for (Thread thread : threads) thread.start();
         for (Thread thread : threads) thread.join();
         System.out.println("All channels started.");
         for (int i=listeners.length-1; i>=0; i-- ) {
diff --git a/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java b/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
index c2e76a1..bfd707b 100644
--- a/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
+++ b/test/org/apache/catalina/tribes/group/interceptors/TestOrderInterceptor.java
@@ -118,8 +118,8 @@ public class TestOrderInterceptor {
         for (int i=0;i<threads.length;i++) {
             threads[i] = new Thread(run);
         }
-        for (Thread item : threads) {
-            item.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
diff --git a/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java b/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
index 30675d8..af192dc 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestDataIntegrity.java
@@ -78,8 +78,8 @@ public class TestDataIntegrity {
                 }
             };
         }
-        for (Thread value : threads) {
-            value.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
@@ -93,34 +93,34 @@ public class TestDataIntegrity {
 
     @Test
     public void testDataSendASYNCM() throws Exception {
-            System.err.println("Starting ASYNC MULTI THREAD");
-            Thread[] threads = new Thread[threadCount];
-            for (int x=0; x<threads.length; x++ ) {
-                threads[x] = new Thread() {
-                    @Override
-                    public void run() {
-                        try {
-                            long start = System.currentTimeMillis();
-                            for (int i = 0; i < msgCount; i++) channel1.send(new Member[] {channel2.getLocalMember(false)}, Data.createRandomData(),Channel.SEND_OPTIONS_ASYNCHRONOUS);
-                            System.out.println("Thread["+this.getName()+"] sent "+msgCount+" messages in "+(System.currentTimeMillis()-start)+" ms.");
-                        }catch ( Exception x ) {
-                            x.printStackTrace();
-                            return;
-                        }
+        System.err.println("Starting ASYNC MULTI THREAD");
+        Thread[] threads = new Thread[threadCount];
+        for (int x=0; x<threads.length; x++ ) {
+            threads[x] = new Thread() {
+                @Override
+                public void run() {
+                    try {
+                        long start = System.currentTimeMillis();
+                        for (int i = 0; i < msgCount; i++) channel1.send(new Member[] {channel2.getLocalMember(false)}, Data.createRandomData(),Channel.SEND_OPTIONS_ASYNCHRONOUS);
+                        System.out.println("Thread["+this.getName()+"] sent "+msgCount+" messages in "+(System.currentTimeMillis()-start)+" ms.");
+                    }catch ( Exception x ) {
+                        x.printStackTrace();
+                        return;
                     }
-                };
-            }
-        for (Thread value : threads) {
-            value.start();
+                }
+            };
+        }
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
         }
-            //sleep for 50 sec, let the other messages in
-            long start = System.currentTimeMillis();
-            while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count) Thread.sleep(500);
-            System.err.println("Finished ASYNC MULTI THREAD ["+listener1.count+"]");
-            Assert.assertEquals("Checking success messages.",msgCount*threadCount,listener1.count);
+        //sleep for 50 sec, let the other messages in
+        long start = System.currentTimeMillis();
+        while ( (System.currentTimeMillis()-start)<25000 && msgCount*threadCount!=listener1.count) Thread.sleep(500);
+        System.err.println("Finished ASYNC MULTI THREAD ["+listener1.count+"]");
+        Assert.assertEquals("Checking success messages.",msgCount*threadCount,listener1.count);
     }
 
     @Test
diff --git a/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java b/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
index 58d8b3d..e52c61d 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestMulticastPackages.java
@@ -131,8 +131,8 @@ public class TestMulticastPackages {
                 }
             };
         }
-        for (Thread value : threads) {
-            value.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
diff --git a/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java b/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
index fecefab..146c97d 100644
--- a/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
+++ b/test/org/apache/catalina/tribes/test/channel/TestUdpPackages.java
@@ -123,8 +123,8 @@ public class TestUdpPackages {
                 }
             };
         }
-        for (Thread value : threads) {
-            value.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
@@ -176,8 +176,8 @@ public class TestUdpPackages {
                 }
             };
         }
-        for (Thread value : threads) {
-            value.start();
+        for (Thread thread : threads) {
+            thread.start();
         }
         for (Thread thread : threads) {
             thread.join();
diff --git a/webapps/examples/jsp/checkbox/checkresult.jsp b/webapps/examples/jsp/checkbox/checkresult.jsp
index ecbbacf..4e64739 100644
--- a/webapps/examples/jsp/checkbox/checkresult.jsp
+++ b/webapps/examples/jsp/checkbox/checkresult.jsp
@@ -31,10 +31,10 @@ The checked fruits (got using request) are: <br>
     if (fruits != null) {
         for (String fruit : fruits) {
 %>
-    <li>
-            <%
-          out.println (util.HTMLFilter.filter(fruit));
-      }
+<li>
+<%
+            out.println (util.HTMLFilter.filter(fruit));
+        }
     } else out.println ("none selected");
 %>
 </ul>
@@ -51,11 +51,13 @@ The checked fruits (got using beans) are <br>
     if (!fruits[0].equals("1")) {
         for (String fruit : fruits) {
 %>
-    <li>
-            <%
-          out.println (util.HTMLFilter.filter(fruit));
-      }
-    } else out.println ("none selected");
+<li>
+<%
+            out.println (util.HTMLFilter.filter(fruit));
+        }
+    } else {
+        out.println ("none selected");
+    }
 %>
 </ul>
 </font>
diff --git a/webapps/examples/jsp/sessions/carts.jsp b/webapps/examples/jsp/sessions/carts.jsp
index b5dc606..dc51495 100644
--- a/webapps/examples/jsp/sessions/carts.jsp
+++ b/webapps/examples/jsp/sessions/carts.jsp
@@ -30,8 +30,8 @@
     String[] items = cart.getItems();
     for (String item : items) {
 %>
-    <li> <% out.print(util.HTMLFilter.filter(item)); %>
-            <%
+<li> <% out.print(util.HTMLFilter.filter(item)); %>
+<%
     }
 %>
 </ol>


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org