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 2019/08/15 15:01:04 UTC

[tomcat] 02/02: Back-port corrections and improvements to English i18n messages

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

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

commit 05806e7a6b00571313c8ce5052fe79f36ad3d09a
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Aug 15 16:00:43 2019 +0100

    Back-port corrections and improvements to English i18n messages
---
 java/javax/servlet/LocalStrings.properties         |   2 +-
 java/javax/servlet/http/LocalStrings.properties    |   6 +-
 .../apache/catalina/core/LocalStrings.properties   | 144 ++++++++++-----------
 .../catalina/ha/deploy/LocalStrings.properties     |  12 +-
 .../catalina/ha/session/LocalStrings.properties    |  72 +++++------
 .../apache/catalina/ha/tcp/LocalStrings.properties |  20 +--
 .../apache/catalina/loader/LocalStrings.properties |  18 +--
 .../catalina/manager/LocalStrings.properties       |  10 +-
 .../apache/catalina/mbeans/LocalStrings.properties |  10 +-
 .../apache/catalina/realm/LocalStrings.properties  |  94 +++++++-------
 .../catalina/session/LocalStrings.properties       |  54 ++++----
 .../catalina/startup/LocalStrings.properties       |  90 ++++++-------
 .../apache/catalina/users/LocalStrings.properties  |   6 +-
 .../apache/catalina/util/LocalStrings.properties   |   4 +-
 .../apache/catalina/valves/LocalStrings.properties |  10 +-
 java/org/apache/coyote/ajp/LocalStrings.properties |   6 +-
 .../apache/coyote/http11/LocalStrings.properties   |   2 +-
 .../tomcat/util/http/LocalStrings.properties       |   2 +-
 .../util/http/parser/LocalStrings.properties       |   2 +-
 .../tomcat/util/scan/LocalStrings.properties       |  10 +-
 .../util/threads/res/LocalStrings.properties       |   2 +-
 .../websocket/server/LocalStrings.properties       |   2 +-
 webapps/docs/changelog.xml                         |   4 +
 23 files changed, 293 insertions(+), 289 deletions(-)

diff --git a/java/javax/servlet/LocalStrings.properties b/java/javax/servlet/LocalStrings.properties
index 0c880a3..b57cb4c 100644
--- a/java/javax/servlet/LocalStrings.properties
+++ b/java/javax/servlet/LocalStrings.properties
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-err.not_iso8859_1=Not an ISO 8859-1 character: {0}
+err.not_iso8859_1=Not an ISO 8859-1 character: [{0}]
 
 httpConstraintElement.invalidRolesDeny=Roles may not be specified when using DENY
 
diff --git a/java/javax/servlet/http/LocalStrings.properties b/java/javax/servlet/http/LocalStrings.properties
index 6c69cec..8f71d86 100644
--- a/java/javax/servlet/http/LocalStrings.properties
+++ b/java/javax/servlet/http/LocalStrings.properties
@@ -14,13 +14,13 @@
 # limitations under the License.
 
 err.cookie_name_blank=Cookie name may not be null or zero length
-err.cookie_name_is_token=Cookie name "{0}" is a reserved token
+err.cookie_name_is_token=Cookie name [{0}] is a reserved token
 err.io.indexOutOfBounds=Invalid offset [{0}] and / or length [{1}] specified for array of size [{2}]
 err.io.nullArray=Null passed for byte array in write method
 err.io.short_read=Short Read
 
-http.method_delete_not_supported=Http method DELETE is not supported by this URL
+http.method_delete_not_supported=HTTP method DELETE is not supported by this URL
 http.method_get_not_supported=HTTP method GET is not supported by this URL
-http.method_not_implemented=Method {0} is not implemented by this servlet for this URI
+http.method_not_implemented=Method [{0}] is not implemented by this Servlet for this URI
 http.method_post_not_supported=HTTP method POST is not supported by this URL
 http.method_put_not_supported=HTTP method PUT is not supported by this URL
diff --git a/java/org/apache/catalina/core/LocalStrings.properties b/java/org/apache/catalina/core/LocalStrings.properties
index 3d40c12..8c78f97 100644
--- a/java/org/apache/catalina/core/LocalStrings.properties
+++ b/java/org/apache/catalina/core/LocalStrings.properties
@@ -13,14 +13,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-applicationContext.addFilter.ise=Filters can not be added to context {0} as the context has been initialised
+applicationContext.addFilter.ise=Filters cannot be added to context [{0}] as the context has been initialised
 applicationContext.addListener.iae.cnfe=Unable to create an instance of type [{0}]
 applicationContext.addListener.iae.init=Unable to add an instance of type [{0}] as a listener
 applicationContext.addListener.iae.sclNotAllowed=Once the first ServletContextListener has been called, no more ServletContextListeners may be added.
 applicationContext.addListener.iae.wrongType=The type specified [{0}] is not one of the expected listener types
-applicationContext.addListener.ise=Listeners can not be added to context {0} as the context has been initialised
-applicationContext.addRole.ise=Roles can not be added to context {0} as the context has been initialised
-applicationContext.addServlet.ise=Servlets can not be added to context {0} as the context has been initialised
+applicationContext.addListener.ise=Listeners cannot be added to context [{0}] as the context has been initialised
+applicationContext.addRole.ise=Roles cannot be added to context [{0}] as the context has been initialised
+applicationContext.addServlet.ise=Servlets cannot be added to context [{0}] as the context has been initialised
 applicationContext.addSessionCookieConfig.ise=Session Cookie configuration cannot be set for context {0} as the context has been initialised
 applicationContext.attributeEvent=Exception thrown by attributes event listener
 applicationContext.illegalDispatchPath=An application attempted to obtain a request dispatcher with an illegal path [{0}] that was rejected because it contained an encoded directory traversal attempt
@@ -28,23 +28,23 @@ applicationContext.invalidFilterName=Unable to add filter definition due to inva
 applicationContext.invalidServletName=Unable to add servlet definition due to invalid servlet name [{0}].
 applicationContext.lookup.error=Failed to locate resource [{0}] in context [{1}]
 applicationContext.mapping.error=Error during mapping
-applicationContext.requestDispatcher.iae=Path {0} does not start with a "/" character
-applicationContext.resourcePaths.iae=Path {0} does not start with a "/" character
+applicationContext.requestDispatcher.iae=Path [{0}] does not start with a "/" character
+applicationContext.resourcePaths.iae=Path [{0}] does not start with a "/" character
 applicationContext.role.iae=An individual role to declare for context [{0}] may not be null nor the empty string
 applicationContext.roles.iae=Array of roles to declare for context [{0}] cannot be null
 applicationContext.setAttribute.namenull=Name cannot be null
-applicationContext.setInitParam.ise=Initialization parameters can not be set after the context has been initialized
-applicationContext.setSessionTracking.iae.invalid=The session tracking mode {0} requested for context {1} is not supported by that context
-applicationContext.setSessionTracking.iae.ssl=The session tracking modes requested for context {0} included SSL and at least one other mode. SSL may not be configured with other modes.
-applicationContext.setSessionTracking.ise=The session tracking modes for context {0} cannot be set whilst the context is running
+applicationContext.setInitParam.ise=Initialization parameters cannot be set after the context has been initialized
+applicationContext.setSessionTracking.iae.invalid=The session tracking mode [{0}] requested for context [{1}] is not supported by that context
+applicationContext.setSessionTracking.iae.ssl=The session tracking modes requested for context [{0}] included SSL and at least one other mode. SSL may not be configured with other modes.
+applicationContext.setSessionTracking.ise=The session tracking modes for context [{0}] cannot be set whilst the context is running
 
-applicationDispatcher.allocateException=Allocate exception for servlet {0}
-applicationDispatcher.deallocateException=Deallocate exception for servlet {0}
+applicationDispatcher.allocateException=Allocate exception for servlet [{0}]
+applicationDispatcher.deallocateException=Deallocate exception for servlet [{0}]
 applicationDispatcher.forward.ise=Cannot forward after response has been committed
 applicationDispatcher.forward.throw=Forwarded resource threw an exception
 applicationDispatcher.include.throw=Included resource threw an exception
-applicationDispatcher.isUnavailable=Servlet {0} is currently unavailable
-applicationDispatcher.serviceException=Servlet.service() for servlet {0} threw exception
+applicationDispatcher.isUnavailable=Servlet [{0}] is currently unavailable
+applicationDispatcher.serviceException=Servlet.service() for servlet [{0}] threw exception
 applicationDispatcher.specViolation.request=Original ServletRequest or wrapped original ServletRequest not passed to RequestDispatcher in violation of SRV.8.2 and SRV.14.2.5.1
 applicationDispatcher.specViolation.response=Original ServletResponse or wrapped original ServletResponse not passed to RequestDispatcher in violation of SRV.8.2 and SRV.14.2.5.1
 
@@ -68,29 +68,29 @@ applicationResponse.badResponse=Response is not a javax.servlet.ServletResponseW
 applicationServletRegistration.setServletSecurity.iae=Null constraint specified for servlet [{0}] deployed to context with name [{1}]
 applicationServletRegistration.setServletSecurity.ise=Security constraints can''t be added to servlet [{0}] deployed to context with name [{1}] as the context has already been initialised
 
-applicationSessionCookieConfig.ise=Property {0} can not be added to SessionCookieConfig for context {1} as the context has been initialised
+applicationSessionCookieConfig.ise=Property [{0}] cannot be added to SessionCookieConfig for context [{1}] as the context has been initialised
 
 aprListener.aprDestroy=Failed shutdown of APR based Apache Tomcat Native library
-aprListener.aprInit=The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: {0}
+aprListener.aprInit=The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [{0}]
 aprListener.aprInitDebug=The APR based Apache Tomcat Native library could not be found using names [{0}] on the java.library.path [{1}]. The errors reported were [{2}]
 aprListener.aprInitError=The APR based Apache Tomcat Native library failed to load. The error reported was [{0}]
-aprListener.currentFIPSMode=Current FIPS mode: {0}
-aprListener.enterAlreadyInFIPSMode=AprLifecycleListener is configured to force entering FIPS mode, but library is already in FIPS mode ({0})
+aprListener.currentFIPSMode=Current FIPS mode: [{0}]
+aprListener.enterAlreadyInFIPSMode=AprLifecycleListener is configured to force entering FIPS mode, but library is already in FIPS mode [{0}]
 aprListener.flags=APR capabilities: IPv6 [{0}], sendfile [{1}], accept filters [{2}], random [{3}].
 aprListener.initializeFIPSFailed=Failed to enter FIPS mode
 aprListener.initializeFIPSSuccess=Successfully entered FIPS mode
-aprListener.initializedOpenSSL=OpenSSL successfully initialized ({0})
+aprListener.initializedOpenSSL=OpenSSL successfully initialized [{0}]
 aprListener.initializingFIPS=Initializing FIPS mode...
 aprListener.requireNotInFIPSMode=AprLifecycleListener is configured to require the library to already be in FIPS mode, but it was not in FIPS mode
 aprListener.skipFIPSInitialization=Already in FIPS mode; skipping FIPS initialization.
 aprListener.sslInit=Failed to initialize the SSLEngine.
-aprListener.tcnInvalid=An incompatible version {0} of the APR based Apache Tomcat Native library is installed, while Tomcat requires version {1}
-aprListener.tcnValid=Loaded APR based Apache Tomcat Native library {0} using APR version {1}.
-aprListener.tcnVersion=An older version {0} of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of {1}
+aprListener.tcnInvalid=An incompatible version [{0}] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [{1}]
+aprListener.tcnValid=Loaded APR based Apache Tomcat Native library [{0}] using APR version [{1}].
+aprListener.tcnVersion=An older version [{0}] of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of [{1}]
 aprListener.tooLateForFIPSMode=Cannot setFIPSMode: SSL has already been initialized
 aprListener.tooLateForSSLEngine=Cannot setSSLEngine: SSL has already been initialized
 aprListener.tooLateForSSLRandomSeed=Cannot setSSLRandomSeed: SSL has already been initialized
-aprListener.wrongFIPSMode=Unexpected value of FIPSMode option of AprLifecycleListener: "{0}"
+aprListener.wrongFIPSMode=Unexpected value of FIPSMode option of AprLifecycleListener: [{0}]
 
 asyncContextImpl.asyncDispachError=Error during asynchronous dispatch
 asyncContextImpl.asyncRunnableError=Error during processing of asynchronous Runnable via AsyncContext.start()
@@ -104,12 +104,12 @@ asyncContextImpl.request.ise=It is illegal to call getRequest() after complete()
 asyncContextImpl.requestEnded=The request associated with the AsyncContext has already completed processing.
 asyncContextImpl.response.ise=It is illegal to call getResponse() after complete() or any of the dispatch() methods has been called
 
-containerBase.backgroundProcess.cluster=Exception processing cluster {0} background process
+containerBase.backgroundProcess.cluster=Exception processing cluster [{0}] background process
 containerBase.backgroundProcess.loader=Exception processing loader {0} background process
 containerBase.backgroundProcess.manager=Exception processing manager {0} background process
-containerBase.backgroundProcess.realm=Exception processing realm {0} background process
-containerBase.backgroundProcess.unexpectedThreadDeath=Unexpected death of background thread {0}
-containerBase.backgroundProcess.valve=Exception processing valve {0} background process
+containerBase.backgroundProcess.realm=Exception processing realm [{0}] background process
+containerBase.backgroundProcess.unexpectedThreadDeath=Unexpected death of background thread [{0}]
+containerBase.backgroundProcess.valve=Exception processing valve [{0}] background process
 containerBase.nullName=Container name cannot be null
 containerBase.threadedStartFailed=A child container failed during start
 containerBase.threadedStopFailed=A child container failed during stop
@@ -126,7 +126,7 @@ filterChain.filter=Filter execution threw an exception
 filterChain.servlet=Servlet execution threw an exception
 
 jreLeakListener.authPolicyFail=Error whilst attempting to prevent memory leak in javax.security.auth.Policy class
-jreLeakListener.classToInitializeFail=Failed to load class {0} during Tomcat start to prevent possible memory leaks.
+jreLeakListener.classToInitializeFail=Failed to load class [{0}] during Tomcat start to prevent possible memory leaks.
 jreLeakListener.gcDaemonFail=Failed to trigger creation of the GC Daemon thread during Tomcat start to prevent possible memory leaks. This is expected on non-Sun JVMs.
 jreLeakListener.jarUrlConnCacheFail=Failed to disable Jar URL connection caching by default
 jreLeakListener.keepAliveFail=Failed to trigger creation of the sun.net.www.http.HttpClient class during Tomcat start to prevent possible memory leaks. This is expected on non-Sun JVMs.
@@ -145,35 +145,35 @@ naming.unbindFailed=Failed to unbind object: [{0}]
 noPluggabilityServletContext.notAllowed=Section 4.4 of the Servlet 3.0 specification does not permit this method to be called from a ServletContextListener that was not defined in web.xml, a web-fragment.xml file nor annotated with @WebListener
 
 standardContext.alreadyStarted=Context has already been started
-standardContext.applicationListener=Error configuring application listener of class {0}
+standardContext.applicationListener=Error configuring application listener of class [{0}]
 standardContext.applicationSkipped=Skipped installing application listeners due to previous error(s)
-standardContext.backgroundProcess.instanceManager=Exception processing instance manager {0} background process
+standardContext.backgroundProcess.instanceManager=Exception processing instance manager [{0}] background process
 standardContext.badRequest=Invalid request path ({0}).
 standardContext.cluster.noManager=No manager found. Checking if cluster manager should be used. Cluster configured: [{0}], Application distributable: [{1}]
 standardContext.configurationFail=One or more components marked the context as not correctly configured
 standardContext.crlfinurl=The URL pattern "{0}" contains a CR or LF and so can never be matched.
-standardContext.duplicateListener=The listener "{0}" is already configured for this context. The duplicate definition has been ignored.
-standardContext.errorPage.error=Error page location {0} must start with a ''/''
+standardContext.duplicateListener=The listener [{0}] is already configured for this context. The duplicate definition has been ignored.
+standardContext.errorPage.error=Error page location [{0}] must start with a ''/''
 standardContext.errorPage.required=ErrorPage cannot be null
-standardContext.errorPage.warning=WARNING: Error page location {0} must start with a ''/'' in Servlet 2.4
+standardContext.errorPage.warning=WARNING: Error page location [{0}] must start with a ''/'' in Servlet 2.4
 standardContext.extensionValidationError=Error while attempting to validate required application extensions
 standardContext.filterFail=One or more Filters failed to start. Full details will be found in the appropriate container log file
 standardContext.filterMap.either=Filter mapping must specify either a <url-pattern> or a <servlet-name>
-standardContext.filterMap.name=Filter mapping specifies an unknown filter name {0}
-standardContext.filterMap.pattern=Invalid <url-pattern> {0} in filter mapping
-standardContext.filterStart=Exception starting filter {0}
+standardContext.filterMap.name=Filter mapping specifies an unknown filter name [{0}]
+standardContext.filterMap.pattern=Invalid <url-pattern> [{0}] in filter mapping
+standardContext.filterStart=Exception starting filter [{0}]
 standardContext.filterStartFailed=Failed to start application Filters successfully
-standardContext.invalidWrapperClass={0} is not a subclass of StandardWrapper
+standardContext.invalidWrapperClass=[{0}] is not a subclass of StandardWrapper
 standardContext.isUnavailable=This application is not currently available
 standardContext.listenerFail=One or more listeners failed to start. Full details will be found in the appropriate container log file
-standardContext.listenerStart=Exception sending context initialized event to listener instance of class {0}
+standardContext.listenerStart=Exception sending context initialized event to listener instance of class [{0}]
 standardContext.listenerStartFailed=Failed to start application Listeners successfully
-standardContext.listenerStop=Exception sending context destroyed event to listener instance of class {0}
+standardContext.listenerStop=Exception sending context destroyed event to listener instance of class [{0}]
 standardContext.loadOnStartup.loadException=Servlet [{1}] in web application [{0}] threw load() exception
-standardContext.loginConfig.errorPage=Form error page {0} must start with a ''/''
-standardContext.loginConfig.errorWarning=WARNING: Form error page {0} must start with a ''/'' in Servlet 2.4
-standardContext.loginConfig.loginPage=Form login page {0} must start with a ''/''
-standardContext.loginConfig.loginWarning=WARNING: Form login page {0} must start with a ''/'' in Servlet 2.4
+standardContext.loginConfig.errorPage=Form error page [{0}] must start with a ''/''
+standardContext.loginConfig.errorWarning=WARNING: Form error page [{0}] must start with a ''/'' in Servlet 2.4
+standardContext.loginConfig.loginPage=Form login page [{0}] must start with a ''/''
+standardContext.loginConfig.loginWarning=WARNING: Form login page [{0}] must start with a ''/'' in Servlet 2.4
 standardContext.loginConfig.required=LoginConfig cannot be null
 standardContext.manager=Configured a manager of class [{0}]
 standardContext.managerFail=The session manager failed to start
@@ -185,18 +185,18 @@ standardContext.notFound=The requested resource ({0}) is not available.
 standardContext.notReloadable=Reloading is disabled on this Context
 standardContext.notStarted=Context with name [{0}] has not yet been started
 standardContext.notWrapper=Child of a Context must be a Wrapper
-standardContext.parameter.duplicate=Duplicate context initialization parameter {0}
+standardContext.parameter.duplicate=Duplicate context initialization parameter [{0}]
 standardContext.parameter.required=Both parameter name and parameter value are required
 standardContext.pathInvalid=A context path must either be an empty string or start with a ''/'' and do not end with a ''/''. The path [{0}] does not meet these criteria and has been changed to [{1}]
-standardContext.postconstruct.duplicate=Duplicate post construct method definition for class {0}
+standardContext.postconstruct.duplicate=Duplicate post construct method definition for class [{0}]
 standardContext.postconstruct.required=Both fully qualified class name and method name are required
-standardContext.predestroy.duplicate=Duplicate pre destroy method definition for class {0}
+standardContext.predestroy.duplicate=Duplicate @PreDestroy method definition for class [{0}]
 standardContext.predestroy.required=Both fully qualified class name and method name are required
 standardContext.reloadingCompleted=Reloading Context with name [{0}] is completed
 standardContext.reloadingFailed=Reloading this Context failed due to previous errors
 standardContext.reloadingStarted=Reloading Context with name [{0}] has started
 standardContext.requestListener.requestDestroy=Exception sending request destroyed lifecycle event to listener instance of class {0}
-standardContext.requestListener.requestInit=Exception sending request initialized lifecycle event to listener instance of class {0}
+standardContext.requestListener.requestInit=Exception sending request initialized lifecycle event to listener instance of class [{0}]
 standardContext.requestListenerConfig.added=Added request listener Valve
 standardContext.requestListenerConfig.error=Exception adding request listener Valve: {0}
 standardContext.requestListenerStartFailed=Failed to start request listener valve successfully
@@ -205,10 +205,10 @@ standardContext.resourcesStart=Error starting static Resources
 standardContext.resourcesStop=Error stopping static Resources
 standardContext.sciFail=Error during ServletContainerInitializer processing
 standardContext.securityConstraint.mixHttpMethod=It is not permitted to mix <http-method> and <http-method-omission> in the same web resource collection
-standardContext.securityConstraint.pattern=Invalid <url-pattern> {0} in security constraint
+standardContext.securityConstraint.pattern=Invalid <url-pattern> [{0}] in security constraint
 standardContext.servletFail=One or more Servlets failed to load on startup. Full details will be found in the appropriate container log file
-standardContext.servletMap.name=Servlet mapping specifies an unknown servlet name {0}
-standardContext.servletMap.pattern=Invalid <url-pattern> {0} in servlet mapping
+standardContext.servletMap.name=Servlet mapping specifies an unknown servlet name [{0}]
+standardContext.servletMap.pattern=Invalid <url-pattern> [{0}] in servlet mapping
 standardContext.startCleanup=Exception during cleanup after start failed
 standardContext.startFailed=Context [{0}] startup failed due to previous errors
 standardContext.startingContext=Exception starting Context with name [{0}]
@@ -221,7 +221,7 @@ standardContext.stoppingLoader=Exception stopping Loader
 standardContext.stoppingManager=Exception stopping Manager
 standardContext.stoppingWrapper=Exception stopping Wrapper for servlet {0}
 standardContext.urlDecode=Cannot URL decode request path {0}
-standardContext.urlPattern.patternWarning=WARNING: URL pattern {0} must start with a ''/'' in Servlet 2.4
+standardContext.urlPattern.patternWarning=WARNING: URL pattern [{0}] must start with a ''/'' in Servlet 2.4
 standardContext.urlValidate=Cannot validate URL decoded request path {0}
 standardContext.workCreateException=Failed to determine absolute work directory from directory [{0}] and CATALINA_HOME [{1}] for context [{2}]
 standardContext.workCreateFail=Failed to create work directory [{0}] for context [{1}]
@@ -232,7 +232,7 @@ standardContextValve.acknowledgeException=Failed to acknowledge request with a 1
 standardEngine.alreadyStarted=Engine has already been started
 standardEngine.jvmRouteFail=Failed to set Engine's jvmRoute attribute from system property
 standardEngine.mappingError=MAPPING configuration error for server name {0}
-standardEngine.noHost=No Host matches server name {0}
+standardEngine.noHost=No Host matches server name [{0}]
 standardEngine.noHostHeader=HTTP/1.1 request with no Host: header
 standardEngine.notHost=Child of an Engine must be a Host
 standardEngine.notParent=Engine cannot have a parent Container
@@ -245,7 +245,7 @@ standardHost.accessBase=Cannot access document base directory {0}
 standardHost.alreadyStarted=Host has already been started
 standardHost.appBase=Application base directory {0} does not exist
 standardHost.asyncStateError=An asynchronous request was received for processing that was neither an async dispatch nor an error to process
-standardHost.clientAbort=Remote Client Aborted Request, IOException: {0}
+standardHost.clientAbort=Remote Client Aborted Request, IOException: [{0}]
 standardHost.configNotAllowed=Use of configuration file is not allowed
 standardHost.configRequired=URL to configuration file is required
 standardHost.docBase=Document base directory {0} already exists
@@ -254,7 +254,7 @@ standardHost.installError=Error deploying application at context path {0}
 standardHost.installing=Installing web application at context path {0} from URL {1}
 standardHost.installingWAR=Installing web application from URL {0}
 standardHost.installingXML=Processing Context configuration file URL {0}
-standardHost.invalidErrorReportValveClass=Couldn''t load specified error report valve class: {0}
+standardHost.invalidErrorReportValveClass=Couldn''t load specified error report valve class: [{0}]
 standardHost.mappingError=MAPPING configuration error for request URI {0}
 standardHost.noContext=No Context configured to process this request
 standardHost.noHost=No Host configured to process this request
@@ -289,43 +289,43 @@ standardService.connector.stopFailed=Failed to stop connector [{0}]
 standardService.initialize.failed=Service initializing at {0} failed
 standardService.onameFail=MBean name specified for Service [{0}] is not valid
 standardService.register.failed=Error registering Service at domain {0}
-standardService.start.name=Starting service {0}
-standardService.stop.name=Stopping service {0}
+standardService.start.name=Starting service [{0}]
+standardService.stop.name=Stopping service [{0}]
 
 standardThreadExecutor.onameFail=MBean name specified for Thread Executor [{0}] is not valid
 
 standardWrapper.allocate=Error allocating a servlet instance
-standardWrapper.allocateException=Allocate exception for servlet {0}
+standardWrapper.allocateException=Allocate exception for servlet [{0}]
 standardWrapper.containerServlet=Loading container servlet {0}
 standardWrapper.createFilters=Create filters exception for servlet {0}
-standardWrapper.deallocateException=Deallocate exception for servlet {0}
-standardWrapper.destroyException=Servlet.destroy() for servlet {0} threw exception
+standardWrapper.deallocateException=Deallocate exception for servlet [{0}]
+standardWrapper.destroyException=Servlet.destroy() for servlet [{0}] threw exception
 standardWrapper.destroyInstance=InstanceManager.destroy() for servlet [{0}] threw exception
 standardWrapper.exception0=Tomcat Exception Report
 standardWrapper.exception1=A Servlet Exception Has Occurred
 standardWrapper.exception2=Exception Report:
 standardWrapper.exception3=Root Cause:
-standardWrapper.initException=Servlet.init() for servlet {0} threw exception
-standardWrapper.instantiate=Error instantiating servlet class {0}
-standardWrapper.isUnavailable=Servlet {0} is currently unavailable
+standardWrapper.initException=Servlet.init() for servlet [{0}] threw exception
+standardWrapper.instantiate=Error instantiating servlet class [{0}]
+standardWrapper.isUnavailable=Servlet [{0}] is currently unavailable
 standardWrapper.jasperLoader=Using Jasper classloader for servlet {0}
 standardWrapper.jspFile.format=JSP file {0} does not start with a ''/'' character
 standardWrapper.missingClass=Wrapper cannot find servlet class {0} or a class it depends on
 standardWrapper.missingLoader=Wrapper cannot find Loader for servlet {0}
 standardWrapper.notChild=Wrapper container may not have child containers
-standardWrapper.notClass=No servlet class has been specified for servlet {0}
+standardWrapper.notClass=No servlet class has been specified for servlet [{0}]
 standardWrapper.notContext=Parent container of a Wrapper must be a Context
-standardWrapper.notFound=Servlet {0} is not available
-standardWrapper.notServlet=Class {0} is not a Servlet
-standardWrapper.releaseFilters=Release filters exception for servlet {0}
+standardWrapper.notFound=Servlet [{0}] is not available
+standardWrapper.notServlet=Class [{0}] is not a Servlet
+standardWrapper.releaseFilters=Release filters exception for servlet [{0}]
 standardWrapper.serviceException=Servlet.service() for servlet [{0}] in context with path [{1}] threw exception
 standardWrapper.serviceExceptionRoot=Servlet.service() for servlet [{0}] in context with path [{1}] threw exception [{2}] with root cause
 standardWrapper.statusHeader=HTTP Status {0} - {1}
 standardWrapper.statusTitle=Tomcat Error Report
-standardWrapper.unavailable=Marking servlet {0} as unavailable
-standardWrapper.unloadException=Servlet {0} threw unload() exception
-standardWrapper.unloading=Cannot allocate servlet {0} because it is being unloaded
-standardWrapper.waiting=Waiting for {0} instance(s) to be deallocated for Servlet [{1}]
+standardWrapper.unavailable=Marking servlet [{0}] as unavailable
+standardWrapper.unloadException=Servlet [{0}] threw unload() exception
+standardWrapper.unloading=Cannot allocate servlet [{0}] because it is being unloaded
+standardWrapper.waiting=Waiting for [{0}] instance(s) to be deallocated for Servlet [{1}]
 
-threadLocalLeakPreventionListener.containerEvent.error=Exception processing container event {0}
-threadLocalLeakPreventionListener.lifecycleEvent.error=Exception processing lifecycle event {0}
+threadLocalLeakPreventionListener.containerEvent.error=Exception processing container event [{0}]
+threadLocalLeakPreventionListener.lifecycleEvent.error=Exception processing lifecycle event [{0}]
diff --git a/java/org/apache/catalina/ha/deploy/LocalStrings.properties b/java/org/apache/catalina/ha/deploy/LocalStrings.properties
index a94ae34..c84a00d 100644
--- a/java/org/apache/catalina/ha/deploy/LocalStrings.properties
+++ b/java/org/apache/catalina/ha/deploy/LocalStrings.properties
@@ -19,7 +19,7 @@ farmWarDeployer.deployEnd=Deployment from [{0}] finished.
 farmWarDeployer.fileCopyFail=Unable to copy from [{0}] to [{1}]
 farmWarDeployer.hostOnly=FarmWarDeployer can only work as host cluster subelement!
 farmWarDeployer.hostParentEngine=FarmWarDeployer can only work if parent of [{0}] is an engine!
-farmWarDeployer.mbeanNameFail=Can''t construct MBean object name for engine [{0}] and host [{1}]
+farmWarDeployer.mbeanNameFail=Cannot construct MBean object name for engine [{0}] and host [{1}]
 farmWarDeployer.modInstall=Installing webapp [{0}] from [{1}]
 farmWarDeployer.modInstallFail=Unable to install WAR file
 farmWarDeployer.modRemoveFail=No removal
@@ -48,8 +48,8 @@ farmWarDeployer.watchDir=Cluster deployment is watching [{0}] for changes.
 
 fileNewFail=Unable to create [{0}]
 
-warWatcher.cantListWatchDir=Cannot list files in WatchDir "{0}": check to see if it is a directory and has read permissions.
-warWatcher.checkWarResult=WarInfo.check() returned {0} for {1}
-warWatcher.checkingWar=Checking WAR file {0}
-warWatcher.checkingWars=Checking WARs in {0}
-warWatcher.listedFileDoesNotExist={0} was detected in {1} but does not exist. Check directory permissions on {1}?
+warWatcher.cantListWatchDir=Cannot list files in WatchDir [{0}]: check to see if it is a directory and has read permissions.
+warWatcher.checkWarResult=WarInfo.check() returned [{0}] for [{1}]
+warWatcher.checkingWar=Checking WAR file [{0}]
+warWatcher.checkingWars=Checking WARs in [{0}]
+warWatcher.listedFileDoesNotExist=[{0}] was detected in [{1}] but does not exist. Check directory permissions on [{1}]?
diff --git a/java/org/apache/catalina/ha/session/LocalStrings.properties b/java/org/apache/catalina/ha/session/LocalStrings.properties
index 43510a4..50aea12 100644
--- a/java/org/apache/catalina/ha/session/LocalStrings.properties
+++ b/java/org/apache/catalina/ha/session/LocalStrings.properties
@@ -18,54 +18,54 @@ backupManager.startFailed=Failed to start BackupManager: [{0}]
 backupManager.startUnable=Unable to start BackupManager: [{0}]
 backupManager.stopped=Manager [{0}] is stopping
 
-deltaManager.createMessage.access=Manager [{0}]: create session message [{1}] access.
-deltaManager.createMessage.accessChangePrimary=Manager [{0}]: create session message [{1}] access to change primary.
-deltaManager.createMessage.allSessionData=Manager [{0}] send all session data.
-deltaManager.createMessage.allSessionTransfered=Manager [{0}] send all session data transfered
-deltaManager.createMessage.delta=Manager [{0}]: create session message [{1}] delta request.
-deltaManager.createMessage.expire=Manager [{0}]: create session message [{1}] expire.
+deltaManager.createMessage.access=Manager [{0}]: create session access message for session [{1}]
+deltaManager.createMessage.accessChangePrimary=Manager [{0}]: create change primary node message for session [{1}]
+deltaManager.createMessage.allSessionData=Manager [{0}] sent all session data.
+deltaManager.createMessage.allSessionTransfered=Manager [{0}] sent all session data transferred
+deltaManager.createMessage.delta=Manager [{0}]: create delta request message for session [{1}]
+deltaManager.createMessage.expire=Manager [{0}]: create session expire message for session [{1}]
 deltaManager.createMessage.unableCreateDeltaRequest=Unable to serialize delta request for sessionid [{0}]
-deltaManager.createSession.newSession=Created a DeltaSession with Id [{0}] Total count={1}
-deltaManager.dropMessage=Manager [{0}]: Drop message {1} inside GET_ALL_SESSIONS sync phase start date {2} message date {3}
+deltaManager.createSession.newSession=Created a new DeltaSession with Id [{0}] Total count=[{1}]
+deltaManager.dropMessage=Manager [{0}]: Drop message [{1}] inside GET_ALL_SESSIONS sync phase start date [{2}] message date [{3}]
 deltaManager.expireSessions=Manager [{0}] expiring sessions upon shutdown
 deltaManager.foundMasterMember=Found for context [{0}] the replication master member [{1}]
-deltaManager.loading.cnfe=ClassNotFoundException while loading persisted sessions: {0}
-deltaManager.loading.existing.session=overload existing session {0}
-deltaManager.loading.ioe=IOException while loading persisted sessions: {0}
+deltaManager.loading.cnfe=ClassNotFoundException while loading persisted sessions: [{0}]
+deltaManager.loading.existing.session=overload existing session [{0}]
+deltaManager.loading.ioe=IOException while loading persisted sessions: [{0}]
 deltaManager.loading.withContextClassLoader=Manager [{0}]: Loading the object data with a context class loader.
 deltaManager.loading.withoutClassLoader=Manager [{0}]: Loading the object data without a context class loader.
 deltaManager.managerLoad=Exception loading sessions from persistent storage
 deltaManager.noCluster=Starting... no cluster associated with this context: [{0}]
-deltaManager.noContextManager=Manager [{0}]: No context manager send at {1} received in {2} ms.
+deltaManager.noContextManager=Manager [{0}]: In reply to the ''Get all session data'' message sent at [{1}], a ''No matching context manager'' message was received after [{2}] ms.
 deltaManager.noMasterMember=Starting... with no other member for context [{0}] at domain [{1}]
 deltaManager.noMembers=Manager [{0}]: skipping state transfer. No members active in cluster group.
-deltaManager.noSessionState=Manager [{0}]: No session state send at {1} received, timing out after {2} ms.
-deltaManager.receiveMessage.accessed=Manager [{0}]: received session [{1}] accessed.
-deltaManager.receiveMessage.allSessionDataAfter=Manager [{0}]: session state deserialized
-deltaManager.receiveMessage.allSessionDataBegin=Manager [{0}]: received session state data
-deltaManager.receiveMessage.createNewSession=Manager [{0}]: received session [{1}] created.
-deltaManager.receiveMessage.delta=Manager [{0}]: received session [{1}] delta.
-deltaManager.receiveMessage.delta.unknown=Manager [{0}]: received unknown session [{1}] delta.
+deltaManager.noSessionState=Manager [{0}]: No session state sent at [{1}] received, timing out after [{2}] ms.
+deltaManager.receiveMessage.accessed=Manager [{0}]: received session accessed message for session [{1}]
+deltaManager.receiveMessage.allSessionDataAfter=Manager [{0}]: all session state deserialized
+deltaManager.receiveMessage.allSessionDataBegin=Manager [{0}]: received all session state data
+deltaManager.receiveMessage.createNewSession=Manager [{0}]: received session created message for session [{1}]
+deltaManager.receiveMessage.delta=Manager [{0}]: received session delta message for session [{1}]
+deltaManager.receiveMessage.delta.unknown=Manager [{0}]: received session delta for unknown session [{1}]
 deltaManager.receiveMessage.error=Manager [{0}]: Unable to receive message through TCP channel
-deltaManager.receiveMessage.eventType=Manager [{0}]: Received SessionMessage of type=({1}) from [{2}]
-deltaManager.receiveMessage.expired=Manager [{0}]: received session [{1}] expired.
+deltaManager.receiveMessage.eventType=Manager [{0}]: Received SessionMessage of type=[{1}] from [{2}]
+deltaManager.receiveMessage.expired=Manager [{0}]: received session expired message for session [{1}]
 deltaManager.receiveMessage.noContextManager=Manager [{0}] received from node [{1}:{2}] no context manager.
 deltaManager.receiveMessage.transfercomplete=Manager [{0}] received from node [{1}:{2}] session state transfered.
 deltaManager.receiveMessage.unloadingAfter=Manager [{0}]: unloading sessions complete
 deltaManager.receiveMessage.unloadingBegin=Manager [{0}]: start unloading sessions
-deltaManager.registerCluster=Register manager {0} to cluster element {1} with name {2}
-deltaManager.sendMessage.newSession=Manager [{0}] send new session ({1})
-deltaManager.sessionReceived=Manager [{0}]; session state send at {1} received in {2} ms.
-deltaManager.startClustering=Starting clustering manager at {0}
+deltaManager.registerCluster=Register manager [{0}] to cluster element [{1}] with name [{2}]
+deltaManager.sendMessage.newSession=Manager [{0}] send new session [{1}]
+deltaManager.sessionReceived=Manager [{0}]; session state sent at [{1}] received in [{2}] ms.
+deltaManager.startClustering=Starting clustering manager at [{0}]
 deltaManager.stopped=Manager [{0}] is stopping
 deltaManager.unableSerializeSessionID=Unable to serialize sessionID [{0}]
-deltaManager.unloading.ioe=IOException while saving persisted sessions: {0}
-deltaManager.waitForSessionState=Manager [{0}], requesting session state from {1}. This operation will timeout if no session state has been received within {2} seconds.
+deltaManager.unloading.ioe=IOException while saving persisted sessions: [{0}]
+deltaManager.waitForSessionState=Manager [{0}], requesting session state from [{1}]. This operation will timeout if no session state has been received within [{2}] seconds.
 
-deltaRequest.showPrincipal=Principal [{0}] is set to session {1}
-deltaRequest.wrongPrincipalClass=ClusterManager only support GenericPrincipal. Your realm used principal class {0}.
+deltaRequest.showPrincipal=Principal [{0}] is set to session [{1}]
+deltaRequest.wrongPrincipalClass=ClusterManager only support GenericPrincipal. Your realm used principal class [{0}].
 
-deltaSession.notifying=Notifying cluster of expiration primary={0} sessionId [{1}]
+deltaSession.notifying=Notifying cluster of session expiration: primary=[{0}], sessionId [{1}]
 deltaSession.readAttribute=session [{0}] loading attribute [{1}] with value [{2}]
 deltaSession.readSession=readObject() loading session [{0}]
 deltaSession.valueBinding.ex=Session binding listener throw an exception
@@ -73,14 +73,14 @@ deltaSession.valueBound.ex=Session bound listener throw an exception
 deltaSession.valueUnbound.ex=Session unbound listener throw an exception
 deltaSession.writeSession=writeObject() storing session [{0}]
 
-jvmRoute.cannotFindSession=Can''t find session [{0}]
+jvmRoute.cannotFindSession=Cannot find session [{0}]
 jvmRoute.changeSession=Changed session from [{0}] to [{1}]
 jvmRoute.clusterListener.started=Cluster JvmRouteSessionIDBinderListener started
 jvmRoute.clusterListener.stopped=Cluster JvmRouteSessionIDBinderListener stopped
 jvmRoute.configure.warn=Please, setup your JvmRouteBinderValve at host valve, not at context valve!
 jvmRoute.contextNotFound=Context [{0}] not found at node [{1}]!
 jvmRoute.failover=Detected a failover with different jvmRoute - orginal route: [{0}] new one: [{1}] at session id [{2}]
-jvmRoute.foundManager=Found Cluster Manager {0} at {1}
+jvmRoute.foundManager=Found Cluster Manager [{0}] at [{1}]
 jvmRoute.hostNotFound=No host found [{0}]
 jvmRoute.listener.started=SessionID Binder Listener started
 jvmRoute.listener.stopped=SessionID Binder Listener stopped
@@ -88,17 +88,17 @@ jvmRoute.lostSession=Lost Session [{0}] at path [{1}]
 jvmRoute.missingJvmRouteAttribute=No engine jvmRoute attribute configured!
 jvmRoute.newSessionCookie=Setting cookie with session id [{0}] name: [{1}] path: [{2}] secure: [{3}] httpOnly: [{4}]
 jvmRoute.noCluster=The JvmRouterBinderValve is configured, but clustering is not being used. Fail over will still work, providing a PersistentManager is used.
-jvmRoute.notFoundManager=Not found Cluster Manager at {0}
+jvmRoute.notFoundManager=Not found Cluster Manager at [{0}]
 jvmRoute.receiveMessage.sessionIDChanged=Cluster JvmRouteSessionIDBinderListener received orginal session ID [{0}] set to new id [{1}] for context path [{2}]
 jvmRoute.run.already=jvmRoute SessionID receiver run already
-jvmRoute.set.orignalsessionid=Set Orginal Session id at request attribute {0} value: {1}
+jvmRoute.set.orignalsessionid=Set Orginal Session id at request attribute [{0}] value: [{1}]
 jvmRoute.skipURLSessionIDs=Skip reassign jvm route check, sessionid comes from URL!
-jvmRoute.turnoverInfo=Turnover Check time {0} msec
+jvmRoute.turnoverInfo=Turnover Check time [{0}] msec
 jvmRoute.valve.started=JvmRouteBinderValve started
 jvmRoute.valve.stopped=JvmRouteBinderValve stopped
 
 serializablePrincipal.readPrincipal.cnfe=readPrincipal: Failed to recreate user Principal
 
-standardSession.notSerializable=Cannot serialize session attribute {0} for session {1}
+standardSession.notSerializable=Cannot serialize session attribute [{0}] for session [{1}]
 standardSession.removeAttribute.ise=removeAttribute: Session already invalidated
 standardSession.setAttribute.namenull=setAttribute: name parameter cannot be null
diff --git a/java/org/apache/catalina/ha/tcp/LocalStrings.properties b/java/org/apache/catalina/ha/tcp/LocalStrings.properties
index db38b8d..18f36f8 100644
--- a/java/org/apache/catalina/ha/tcp/LocalStrings.properties
+++ b/java/org/apache/catalina/ha/tcp/LocalStrings.properties
@@ -14,20 +14,20 @@
 # limitations under the License.
 
 ReplicationValve.crossContext.add=add Cross Context session replication container to replicationValve threadlocal
-ReplicationValve.crossContext.registerSession=register Cross context session id={0} from context {1}
+ReplicationValve.crossContext.registerSession=register Cross context session id=[{0}] from context [{1}]
 ReplicationValve.crossContext.remove=remove Cross Context session replication container from replicationValve threadlocal
-ReplicationValve.crossContext.sendDelta=send Cross Context session delta from context {0}.
-ReplicationValve.filter.failure=Unable to compile filter={0}
-ReplicationValve.filter.loading=Loading request filter={0}
-ReplicationValve.invoke.uri=Invoking replication request on {0}
+ReplicationValve.crossContext.sendDelta=send Cross Context session delta from context [{0}].
+ReplicationValve.filter.failure=Unable to compile filter=[{0}]
+ReplicationValve.filter.loading=Loading request filter=[{0}]
+ReplicationValve.invoke.uri=Invoking replication request on [{0}]
 ReplicationValve.nocluster=No cluster configured for this request.
-ReplicationValve.resetDeltaRequest=Cluster is standalone: reset Session Request Delta at context {0}
+ReplicationValve.resetDeltaRequest=Cluster is standalone: reset Session Request Delta at context [{0}]
 ReplicationValve.send.failure=Unable to perform replication request.
 ReplicationValve.send.invalid.failure=Unable to send session [id={0}] invalid message over cluster.
-ReplicationValve.session.found=Context {0}: Found session {1} but it isn''t a ClusterSession.
-ReplicationValve.session.indicator=Context {0}: Primarity of session {0} in request attribute {1} is {2}.
-ReplicationValve.session.invalid=Context {0}: Requested session {1} is invalid, removed or not replicated at this node.
-ReplicationValve.stats=Average request time= {0} ms for Cluster overhead time={1} ms for {2} requests {3} filter requests {4} send requests {5} cross context requests (Request={6} ms Cluster={7} ms).
+ReplicationValve.session.found=Context [{0}]: Found session [{1}] but it isn''t a ClusterSession.
+ReplicationValve.session.indicator=Context [{0}]: Primarity of session [{1}] in request attribute [{2}] is [{3}].
+ReplicationValve.session.invalid=Context [{0}]: Requested session [{1}] is invalid, removed or not replicated at this node.
+ReplicationValve.stats=Average request time=[{0}] ms with cluster overhead time=[{1}] ms for [{2}] requests, [{3}] send requests, [{4}] cross context requests, and [{5}] filter requests (Total request=[{6}] ms, total cluster request=[{7}] ms).
 
 SimpleTcpCluster.default.addClusterListener=Add Default ClusterListener at cluster {0}
 SimpleTcpCluster.default.addClusterReceiver=Add Default ClusterReceiver at cluster {0}
diff --git a/java/org/apache/catalina/loader/LocalStrings.properties b/java/org/apache/catalina/loader/LocalStrings.properties
index 4ac8f64..a4bbe80 100644
--- a/java/org/apache/catalina/loader/LocalStrings.properties
+++ b/java/org/apache/catalina/loader/LocalStrings.properties
@@ -58,40 +58,40 @@ webappClassLoader.clearRmi=Found RMI Target with stub class class [{0}] and valu
 webappClassLoader.clearRmiFail=Failed to clear context class loader referenced from sun.rmi.transport.Target for web application [{0}]
 webappClassLoader.clearRmiInfo=Failed to find class sun.rmi.transport.Target to clear context class loader for web application [{0}]. This is expected on non-Sun JVMs.
 webappClassLoader.getThreadGroupError=Unable to obtain the parent for ThreadGroup [{0}]. It will not be possible to check all threads for potential memory leaks
-webappClassLoader.illegalJarPath=Illegal JAR entry detected with name {0}
+webappClassLoader.illegalJarPath=Illegal JAR entry detected with name [{0}]
 webappClassLoader.jarOpenFail=Failed to open JAR [{0}]
 webappClassLoader.javaseClassLoaderNull=The j2seClassLoader attribute may not be null
 webappClassLoader.jdbcRemoveFailed=JDBC driver de-registration failed for web application [{0}]
 webappClassLoader.jdbcRemoveStreamError=Exception closing input stream during JDBC driver de-registration for web application [{0}]
 webappClassLoader.loadedByThisOrChildFail=Failed to fully check the entries in an instance of [{0}] for potential memory leaks in context [{1}]
-webappClassLoader.readError=Resource read error: Could not load {0}.
+webappClassLoader.readError=Resource read error: Could not load [{0}].
 webappClassLoader.removeTransformer=Removed class file transformer [{0}] from web application [{1}].
 webappClassLoader.stopThreadFail=Failed to terminate thread named [{0}] for web application [{1}]
 webappClassLoader.stopTimerThreadFail=Failed to terminate TimerThread named [{0}] for web application [{1}]
-webappClassLoader.stopped=Illegal access: this web application instance has been stopped already.  Could not load {0}.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
+webappClassLoader.stopped=Illegal access: this web application instance has been stopped already. Could not load [{0}]. The following stack trace is thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access.
 webappClassLoader.transformError=Instrumentation error: could not transform class [{0}] because its class file format is not legal.
-webappClassLoader.validationErrorJarPath=Unable to validate JAR entry with name {0}
+webappClassLoader.validationErrorJarPath=Unable to validate JAR entry with name [{0}]
 webappClassLoader.warnRequestThread=The web application [{0}] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
 webappClassLoader.warnThread=The web application [{0}] appears to have started a thread named [{1}] but has failed to stop it. This is very likely to create a memory leak.
 webappClassLoader.warnTimerThread=The web application [{0}] appears to have started a TimerThread named [{1}] via the java.util.Timer API but has failed to stop it. To prevent a memory leak, the timer (and hence the associated thread) has been forcibly canceled.
-webappClassLoader.wrongVersion=(unable to load class {0})
+webappClassLoader.wrongVersion=(unable to load class [{0}])
 
 webappClassLoaderParallel.registrationFailed=Registration of org.apache.catalina.loader.ParallelWebappClassLoader as capable of loading classes in parallel failed
 
 webappLoader.addRepository=Adding repository {0}
 webappLoader.alreadyStarted=Loader has already been started
 webappLoader.checkInterval=Cannot set reload check interval to {0} seconds
-webappLoader.classDeploy=Deploy class files {0} to {1}
+webappLoader.classDeploy=Deploy class files [{0}] to [{1}]
 webappLoader.copyFailure=Failed to copy resources
-webappLoader.deploy=Deploying class repositories to work directory {0}
+webappLoader.deploy=Deploying class repositories to work directory [{0}]
 webappLoader.failModifiedCheck=Error tracking modifications
-webappLoader.jarDeploy=Deploy JAR {0} to {1}
+webappLoader.jarDeploy=Deploy JAR [{0}] to [{1}]
 webappLoader.mkdirFailure=Failed to create destination directory to copy resources
 webappLoader.namingFailure=Failed to access resource {0}
 webappLoader.notContext=Cannot auto-reload unless our Container is a Context
 webappLoader.notReloadabe=Reloadable property is set to false
 webappLoader.notStarted=Loader has not yet been started
-webappLoader.reloadable=Cannot set reloadable property to {0}
+webappLoader.reloadable=Cannot set reloadable property to [{0}]
 webappLoader.reloading=Reloading checks are enabled for this Context
 webappLoader.removeRepository=Removing repository {0}
 webappLoader.starting=Starting this Loader
diff --git a/java/org/apache/catalina/manager/LocalStrings.properties b/java/org/apache/catalina/manager/LocalStrings.properties
index b4eda73..d561f50 100644
--- a/java/org/apache/catalina/manager/LocalStrings.properties
+++ b/java/org/apache/catalina/manager/LocalStrings.properties
@@ -34,18 +34,18 @@ htmlManagerServlet.connectorStateMaxProcessingTime=Max processing time:
 htmlManagerServlet.connectorStateMaxThreads=Max threads:
 htmlManagerServlet.connectorStateProcessingTime=Processing time:
 htmlManagerServlet.connectorStateRequestCount=Request count:
-htmlManagerServlet.connectorStateTableTitleBRecv=B Recv
-htmlManagerServlet.connectorStateTableTitleBSent=B Sent
+htmlManagerServlet.connectorStateTableTitleBRecv=Bytes Recv
+htmlManagerServlet.connectorStateTableTitleBSent=Bytes Sent
 htmlManagerServlet.connectorStateTableTitleClientAct=Client (Actual)
 htmlManagerServlet.connectorStateTableTitleClientForw=Client (Forwarded)
 htmlManagerServlet.connectorStateTableTitleRequest=Request
 htmlManagerServlet.connectorStateTableTitleStage=Stage
 htmlManagerServlet.connectorStateTableTitleTime=Time
 htmlManagerServlet.connectorStateTableTitleVHost=VHost
-htmlManagerServlet.connectorStateThreadBusy=Current thread busy:
+htmlManagerServlet.connectorStateThreadBusy=Current threads busy:
 htmlManagerServlet.connectorStateThreadCount=Current thread count:
 htmlManagerServlet.deployButton=Deploy
-htmlManagerServlet.deployConfig=XML Configuration file URL:
+htmlManagerServlet.deployConfig=XML Configuration file path:
 htmlManagerServlet.deployPath=Context Path (required):
 htmlManagerServlet.deployServer=Deploy directory or WAR file located on server
 htmlManagerServlet.deployTitle=Deploy
@@ -56,7 +56,7 @@ htmlManagerServlet.deployUploadInServerXml=FAIL - War file [{0}] cannot be uploa
 htmlManagerServlet.deployUploadNoFile=FAIL - File upload failed, no file
 htmlManagerServlet.deployUploadNotWar=FAIL - File uploaded [{0}] must be a .war
 htmlManagerServlet.deployUploadWarExists=FAIL - War file [{0}] already exists on server
-htmlManagerServlet.deployWar=WAR or Directory URL:
+htmlManagerServlet.deployWar=WAR or Directory path:
 htmlManagerServlet.diagnosticsLeak=Check to see if a web application has caused a memory leak on stop, reload or undeploy
 htmlManagerServlet.diagnosticsLeakButton=Find leaks
 htmlManagerServlet.diagnosticsLeakWarning=This diagnostic check will trigger a full garbage collection. Use it with extreme caution on production systems.
diff --git a/java/org/apache/catalina/mbeans/LocalStrings.properties b/java/org/apache/catalina/mbeans/LocalStrings.properties
index 70ae653..b77cfec 100644
--- a/java/org/apache/catalina/mbeans/LocalStrings.properties
+++ b/java/org/apache/catalina/mbeans/LocalStrings.properties
@@ -13,9 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-jmxRemoteLifecycleListener.createRegistryFailed=Unable to create the RMI registry for the {0} server using port {1}
-jmxRemoteLifecycleListener.createServerFailed=The JMX connector server could not be created or failed to start for the {0} server
-jmxRemoteLifecycleListener.destroyServerFailed=The JMX connector server could not be stopped for the {0} server
+jmxRemoteLifecycleListener.createRegistryFailed=Unable to create the RMI registry for the [{0}] server using port [{1}]
+jmxRemoteLifecycleListener.createServerFailed=The JMX connector server could not be created or failed to start for the [{0}] server
+jmxRemoteLifecycleListener.destroyServerFailed=The JMX connector server could not be stopped for the [{0}] server
 jmxRemoteLifecycleListener.invalidRmiBindAddress=Invalid RMI bind address [{0}]
-jmxRemoteLifecycleListener.invalidURL=The JMX Service URL requested for the {0} server, "{1}", was invalid
-jmxRemoteLifecycleListener.start=The JMX Remote Listener has configured the registry on port {0} and the server on port {1} for the {2} server
+jmxRemoteLifecycleListener.invalidURL=The JMX Service URL requested for the [{0}] server, [{1}], was invalid
+jmxRemoteLifecycleListener.start=The JMX Remote Listener has configured the registry on port [{0}] and the server on port [{1}] for the [{2}] server
diff --git a/java/org/apache/catalina/realm/LocalStrings.properties b/java/org/apache/catalina/realm/LocalStrings.properties
index 66189e5..af7fbff 100644
--- a/java/org/apache/catalina/realm/LocalStrings.properties
+++ b/java/org/apache/catalina/realm/LocalStrings.properties
@@ -13,106 +13,106 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-combinedRealm.addRealm=Add "{0}" realm, making a total of "{1}" realms
-combinedRealm.authFail=Failed to authenticate user "{0}" with realm "{1}"
-combinedRealm.authStart=Attempting to authenticate user "{0}" with realm "{1}"
-combinedRealm.authSuccess=Authenticated user "{0}" with realm "{1}"
+combinedRealm.addRealm=Add [{0}] realm, making a total of [{1}] realms
+combinedRealm.authFail=Failed to authenticate user [{0}] with realm [{1}]
+combinedRealm.authStart=Attempting to authenticate user [{0}] with realm [{1}]
+combinedRealm.authSuccess=Authenticated user [{0}] with realm [{1}]
 combinedRealm.getName=The getName() method should never be called
 combinedRealm.getPassword=The getPassword() method should never be called
 combinedRealm.getPrincipal=The getPrincipal() method should never be called
-combinedRealm.realmStartFail=Failed to start "{0}" realm
+combinedRealm.realmStartFail=Failed to start [{0}] realm
 combinedRealm.unexpectedMethod=An unexpected call was made to a method on the combined realm
 
-dataSourceRealm.authenticateFailure=Username {0} NOT successfully authenticated
-dataSourceRealm.authenticateSuccess=Username {0} successfully authenticated
+dataSourceRealm.authenticateFailure=Username [{0}] NOT successfully authenticated
+dataSourceRealm.authenticateSuccess=Username [{0}] successfully authenticated
 dataSourceRealm.close=Exception closing database connection
 dataSourceRealm.exception=Exception performing authentication
-dataSourceRealm.getPassword.exception=Exception retrieving password for "{0}"
-dataSourceRealm.getRoles.exception=Exception retrieving roles for "{0}"
+dataSourceRealm.getPassword.exception=Exception retrieving password for [{0}]
+dataSourceRealm.getRoles.exception=Exception retrieving roles for [{0}]
 dataSourceRealm.open=Exception opening database connection
 
 jaasCallback.digestpassword=Digested password "{0}" as "{1}"
 jaasCallback.password=Returned password "{0}"
-jaasCallback.username=Returned username "{0}"
+jaasCallback.username=Returned username [{0}]
 
-jaasRealm.accountExpired=Username "{0}" NOT authenticated due to expired account
-jaasRealm.authenticateFailure=Username "{0}" NOT successfully authenticated
-jaasRealm.authenticateSuccess=Username "{0}" successfully authenticated as Principal "{1}" -- Subject was created too
-jaasRealm.beginLogin=JAASRealm login requested for username "{0}" using LoginContext for application "{1}"
+jaasRealm.accountExpired=Username [{0}] NOT authenticated due to expired account
+jaasRealm.authenticateFailure=Username [{0}] NOT successfully authenticated
+jaasRealm.authenticateSuccess=Username [{0}] successfully authenticated as Principal [{1}] -- Subject was created too
+jaasRealm.beginLogin=JAASRealm login requested for username [{0}] using LoginContext for application [{1}]
 jaasRealm.cachePrincipal=User Principal "{0}" cached; has {1} role Principal(s)
-jaasRealm.checkPrincipal=Checking Principal "{0}" [{1}]
-jaasRealm.credentialExpired=Username "{0}" NOT authenticated due to expired credential
-jaasRealm.failedLogin=Username "{0}" NOT authenticated due to failed login
+jaasRealm.checkPrincipal=Checking Principal [{0}] [{1}]
+jaasRealm.credentialExpired=Username [{0}] NOT authenticated due to expired credential
+jaasRealm.failedLogin=Username [{0}] NOT authenticated due to failed login
 jaasRealm.isInRole.match=Matching role Principal found.
 jaasRealm.isInRole.noMatch=Matching role Principal NOT found.
 jaasRealm.isInRole.noPrincipalOrRole=No roles Principals found. User Principal or Subject is null, or user Principal not in cache
 jaasRealm.isInRole.possessesRole=User Principal has a role Principal called "{0}"
 jaasRealm.isInRole.principalCached=User Principal has {0} role Principal(s)
 jaasRealm.isInRole.start=Checking if user Principal "{0}" possesses role "{1}"
-jaasRealm.loginContextCreated=JAAS LoginContext created for username "{0}"
-jaasRealm.loginException=Login exception authenticating username "{0}"
-jaasRealm.rolePrincipalAdd=Adding role Principal "{0}" to this user Principal''s roles
+jaasRealm.loginContextCreated=JAAS LoginContext created for username [{0}]
+jaasRealm.loginException=Login exception authenticating username [{0}]
+jaasRealm.rolePrincipalAdd=Adding role Principal [{0}] to this user Principal''s roles
 jaasRealm.rolePrincipalFailure=No valid role Principals found.
 jaasRealm.rolePrincipalSuccess={0} role Principal(s) found
 jaasRealm.unexpectedError=Unexpected error
 jaasRealm.userPrincipalFailure=No valid user Principal found
-jaasRealm.userPrincipalSuccess=Principal "{0}" is a valid user class. We will use this as the user Principal.
+jaasRealm.userPrincipalSuccess=Principal [{0}] is a valid user class. We will use this as the user Principal.
 
-jdbcRealm.authenticateFailure=Username {0} NOT successfully authenticated
-jdbcRealm.authenticateSuccess=Username {0} successfully authenticated
+jdbcRealm.authenticateFailure=Username [{0}] NOT successfully authenticated
+jdbcRealm.authenticateSuccess=Username [{0}] successfully authenticated
 jdbcRealm.close=Exception closing database connection
 jdbcRealm.exception=Exception performing authentication
 jdbcRealm.getPassword.exception=Exception retrieving password for "{0}"
 jdbcRealm.getRoles.exception=Exception retrieving roles for "{0}"
 jdbcRealm.open=Exception opening database connection
-jdbcRealm.open.invalidurl=Driver "{0}" does not support the url "{1}"
+jdbcRealm.open.invalidurl=Driver [{0}] does not support the url [{1}]
 
-jndiRealm.authenticateFailure=Username {0} NOT successfully authenticated
-jndiRealm.authenticateSuccess=Username {0} successfully authenticated
+jndiRealm.authenticateFailure=Username [{0}] NOT successfully authenticated
+jndiRealm.authenticateSuccess=Username [{0}] successfully authenticated
 jndiRealm.cipherSuites=Enable [{0}] as cipher suites for tls connection.
 jndiRealm.close=Exception closing directory server connection
 jndiRealm.emptyCipherSuites=Empty String for cipher suites given. Using default cipher suites.
 jndiRealm.exception=Exception performing authentication
 jndiRealm.exception.retry=Exception performing authentication. Retrying...
-jndiRealm.invalidHostnameVerifier="{0}" not a valid class name for a HostnameVerifier
-jndiRealm.invalidSslProtocol=Given protocol "{0}" is invalid. It has to be one of {1}
-jndiRealm.invalidSslSocketFactory="{0}" not a valid class name for a SSLSocketFactory
-jndiRealm.negotiatedTls=Negotiated tls connection using protocol "{0}"
+jndiRealm.invalidHostnameVerifier=[{0}] not a valid class name for a HostnameVerifier
+jndiRealm.invalidSslProtocol=Given protocol [{0}] is invalid. It has to be one of [{1}]
+jndiRealm.invalidSslSocketFactory=[{0}] not a valid class name for a SSLSocketFactory
+jndiRealm.negotiatedTls=Negotiated tls connection using protocol [{0}]
 jndiRealm.open=Exception opening directory server connection
 jndiRealm.tlsClose=Exception closing tls response
 
-lockOutRealm.authLockedUser=An attempt was made to authenticate the locked user "{0}"
-lockOutRealm.removeWarning=User "{0}" was removed from the failed users cache after {1} seconds to keep the cache size within the limit set
+lockOutRealm.authLockedUser=An attempt was made to authenticate the locked user [{0}]
+lockOutRealm.removeWarning=User [{0}] was removed from the failed users cache after [{1}] seconds to keep the cache size within the limit set
 
-memoryRealm.authenticateFailure=Username {0} NOT successfully authenticated
-memoryRealm.authenticateSuccess=Username {0} successfully authenticated
-memoryRealm.loadExist=Memory database file {0} cannot be read
-memoryRealm.loadPath=Loading users from memory database file {0}
+memoryRealm.authenticateFailure=Username [{0}] NOT successfully authenticated
+memoryRealm.authenticateSuccess=Username [{0}] successfully authenticated
+memoryRealm.loadExist=Memory database file [{0}] cannot be read
+memoryRealm.loadPath=Loading users from memory database file [{0}]
 memoryRealm.readXml=Exception while reading memory database file
 memoryRealm.xmlFeatureEncoding=Exception configuring digester to permit java encoding names in XML files. Only IANA encoding names will be supported.
 
-realmBase.algorithm=Invalid message digest algorithm {0} specified
+realmBase.algorithm=Invalid message digest algorithm [{0}] specified
 realmBase.alreadyStarted=This Realm has already been started
-realmBase.authenticateFailure=Username {0} NOT successfully authenticated
-realmBase.authenticateSuccess=Username {0} successfully authenticated
-realmBase.createUsernameRetriever.ClassCastException=Class {0} is not an X509UsernameRetriever.
+realmBase.authenticateFailure=Username [{0}] NOT successfully authenticated
+realmBase.authenticateSuccess=Username [{0}] successfully authenticated
+realmBase.createUsernameRetriever.ClassCastException=Class [{0}] is not an X509UsernameRetriever.
 realmBase.createUsernameRetriever.ClassNotFoundException=Cannot find class {0}.
 realmBase.createUsernameRetriever.IllegalAccessException=Cannot create object of type {0}.
 realmBase.createUsernameRetriever.InstantiationException=Cannot create object of type {0}.
-realmBase.delegatedCredentialFail=Unable to obtain delegated credential for user {0}
-realmBase.credentialNotDelegated=Credential for user {0} has not been delegated though storing was requested
+realmBase.credentialNotDelegated=Credential for user [{0}] has not been delegated though storing was requested
+realmBase.delegatedCredentialFail=Unable to obtain delegated credential for user [{0}]
 realmBase.digest=Error digesting user credentials
 realmBase.forbidden=Access to the requested resource has been denied
-realmBase.gotX509Username=Got user name from X509 certificate: {0}
+realmBase.gotX509Username=Got user name from X509 certificate: [{0}]
 realmBase.gssContextNotEstablished=Authenticator implementation error: the passed security context is not fully established
 realmBase.gssNameFail=Failed to extract name from established GSSContext
-realmBase.hasRoleFailure=Username {0} does NOT have role {1}
-realmBase.hasRoleSuccess=Username {0} has role {1}
+realmBase.hasRoleFailure=Username [{0}] does NOT have role [{1}]
+realmBase.hasRoleSuccess=Username [{0}] has role [{1}]
 realmBase.notAuthenticated=Configuration error:  Cannot perform access control without an authenticated principal
 realmBase.notStarted=This Realm has not yet been started
 
 userDatabaseRealm.authenticateError=Login configuration error authenticating username {0}
-userDatabaseRealm.lookup=Exception looking up UserDatabase under key {0}
-userDatabaseRealm.noDatabase=No UserDatabase component found under key {0}
+userDatabaseRealm.lookup=Exception looking up UserDatabase under key [{0}]
+userDatabaseRealm.noDatabase=No UserDatabase component found under key [{0}]
 userDatabaseRealm.noEngine=No Engine component found in container hierarchy
 userDatabaseRealm.noGlobal=No global JNDI resources context found
diff --git a/java/org/apache/catalina/session/LocalStrings.properties b/java/org/apache/catalina/session/LocalStrings.properties
index a0f5972..1b429f6 100644
--- a/java/org/apache/catalina/session/LocalStrings.properties
+++ b/java/org/apache/catalina/session/LocalStrings.properties
@@ -13,17 +13,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-JDBCStore.SQLException=SQL Error {0}
-JDBCStore.checkConnectionClassNotFoundException=JDBC driver class not found {0}
+JDBCStore.SQLException=SQL Error [{0}]
+JDBCStore.checkConnectionClassNotFoundException=JDBC driver class not found [{0}]
 JDBCStore.checkConnectionDBClosed=The database connection is null or was found to be closed. Trying to re-open it.
 JDBCStore.checkConnectionDBReOpenFail=The re-open on the database failed. The database could be down.
-JDBCStore.checkConnectionSQLException=A SQL exception occurred {0}
-JDBCStore.close=Exception closing database connection {0}
+JDBCStore.checkConnectionSQLException=A SQL exception occurred [{0}]
+JDBCStore.close=Exception closing database connection [{0}]
 JDBCStore.commitSQLException=SQLException committing connection before closing
-JDBCStore.loading=Loading Session {0} from database {1}
+JDBCStore.loading=Loading Session [{0}] from database [{1}]
 JDBCStore.missingDataSourceName=No valid JNDI name was given.
-JDBCStore.removing=Removing Session {0} at database {1}
-JDBCStore.saving=Saving Session {0} to database {1}
+JDBCStore.removing=Removing Session [{0}] at database [{1}]
+JDBCStore.saving=Saving Session [{0}] to database [{1}]
 JDBCStore.wrongDataSource=Cannot open JNDI DataSource [{0}]
 
 applicationSession.session.ise=invalid session state
@@ -31,46 +31,46 @@ applicationSession.value.iae=null value
 
 fileStore.createFailed=Unable to create directory [{0}] for the storage of session data
 fileStore.deleteFailed=Unable to delete file [{0}] which is preventing the creation of the session storage location
-fileStore.loading=Loading Session {0} from file {1}
-fileStore.removing=Removing Session {0} at file {1}
-fileStore.saving=Saving Session {0} to file {1}
+fileStore.loading=Loading Session [{0}] from file [{1}]
+fileStore.removing=Removing Session [{0}] at file [{1}]
+fileStore.saving=Saving Session [{0}] to file [{1}]
 
 managerBase.contextNull=The Container must be set to a non-null Context instance before the Manager is used
 managerBase.createRandom=Created random number generator for session ID generation in {0}ms.
 managerBase.createSession.ise=createSession: Too many active sessions
 managerBase.sessionAttributeNameFilter=Skipped session attribute named [{0}] because it did not match the name filter [{1}]
 managerBase.sessionAttributeValueClassNameFilter=Skipped session attribute named [{0}] because the value type [{1}] did not match the filter [{2}]
-managerBase.sessionTimeout=Invalid session timeout setting {0}
+managerBase.sessionTimeout=Invalid session timeout setting [{0}]
 managerBase.setContextNotNew=It is illegal to call setContext() to change the Context associated with a Manager if the Manager is not in the NEW state
 managerBase.setMaxInactiveIntervalUnused=Manager.setMaxInactiveInterval() is deprecated and calls to this method are ignored. Session timeouts should be configured in web.xml or via Context.setSessionTimeout(int timeoutInMinutes)
 
 persistentManager.activeSession=Session {0} has been idle for {1} seconds
 persistentManager.backupException=Exception occurred when backing up Session {0}: {1}
-persistentManager.backupMaxIdle=Backing up session {0} to Store, idle for {1} seconds
-persistentManager.deserializeError=Error deserializing Session {0}: {1}
+persistentManager.backupMaxIdle=Backing up session [{0}] to Store, idle for [{1}] seconds
+persistentManager.deserializeError=Error deserializing Session [{0}]
 persistentManager.expiring=Expiring {0} sessions before saving them
-persistentManager.loading=Loading {0} persisted sessions
+persistentManager.loading=Loading [{0}] persisted sessions
 persistentManager.processSwaps=Checking for sessions to swap out, {0} active sessions in memory
-persistentManager.serializeError=Error serializing Session {0}: {1}
+persistentManager.serializeError=Error serializing Session [{0}]: [{1}]
 persistentManager.storeKeysException=Unable to determine the list of session IDs for sessions in the session store, assuming that the store is empty
 persistentManager.storeSizeException=Unable to determine the number of sessions in the session store, assuming that the store is empty
-persistentManager.swapIn=Swapping session {0} in from Store
-persistentManager.swapInException=Exception in the Store during swapIn: {0}
-persistentManager.swapInInvalid=Swapped session {0} is invalid
-persistentManager.swapMaxIdle=Swapping session {0} to Store, idle for {1} seconds
-persistentManager.swapTooManyActive=Swapping out session {0}, idle for {1} seconds too many sessions active
-persistentManager.tooManyActive=Too many active sessions, {0}, looking for idle sessions to swap out
-persistentManager.unloading=Saving {0} persisted sessions
+persistentManager.swapIn=Swapping session [{0}] in from Store
+persistentManager.swapInException=Exception in the Store during swapIn: [{0}]
+persistentManager.swapInInvalid=Swapped session [{0}] is invalid
+persistentManager.swapMaxIdle=Swapping session [{0}] to Store, idle for [{1}] seconds
+persistentManager.swapTooManyActive=Swapping out session [{0}], idle for [{1}] seconds too many sessions active
+persistentManager.tooManyActive=Too many active sessions, [{0}], looking for idle sessions to swap out
+persistentManager.unloading=Saving [{0}] persisted sessions
 
 serverSession.value.iae=null value
 
 standardManager.expireException=processsExpire:  Exception during session expiration
-standardManager.loading=Loading persisted sessions from {0}
+standardManager.loading=Loading persisted sessions from [{0}]
 standardManager.loading.cnfe=ClassNotFoundException while loading persisted sessions: {0}
 standardManager.loading.ioe=IOException while loading persisted sessions: {0}
 standardManager.managerLoad=Exception loading sessions from persistent storage
 standardManager.managerUnload=Exception unloading sessions to persistent storage
-standardManager.unloading=Saving persisted sessions to {0}
+standardManager.unloading=Saving persisted sessions to [{0}]
 standardManager.unloading.debug=Unloading persisted sessions
 standardManager.unloading.ioe=IOException while saving persisted sessions: {0}
 standardManager.unloading.nosessions=No persisted sessions to unload
@@ -88,11 +88,11 @@ standardSession.getValueNames.ise=getValueNames: Session already invalidated
 standardSession.invalidate.ise=invalidate: Session already invalidated
 standardSession.isNew.ise=isNew: Session already invalidated
 standardSession.logoutfail=Exception logging out user when expiring session
-standardSession.notDeserializable=Cannot deserialize session attribute {0} for session {1}
-standardSession.notSerializable=Cannot serialize session attribute {0} for session {1}
+standardSession.notDeserializable=Cannot deserialize session attribute [{0}] for session [{1}]
+standardSession.notSerializable=Cannot serialize session attribute [{0}] for session [{1}]
 standardSession.removeAttribute.ise=removeAttribute: Session already invalidated
 standardSession.sessionCreated=Created Session id = {0}
 standardSession.sessionEvent=Session event listener threw exception
-standardSession.setAttribute.iae=setAttribute: Non-serializable attribute {0}
+standardSession.setAttribute.iae=setAttribute: Non-serializable attribute [{0}]
 standardSession.setAttribute.ise=setAttribute: Session [{0}] has already been invalidated
 standardSession.setAttribute.namenull=setAttribute: name parameter cannot be null
diff --git a/java/org/apache/catalina/startup/LocalStrings.properties b/java/org/apache/catalina/startup/LocalStrings.properties
index ffcbd88..883484f 100644
--- a/java/org/apache/catalina/startup/LocalStrings.properties
+++ b/java/org/apache/catalina/startup/LocalStrings.properties
@@ -18,28 +18,28 @@ catalina.noCluster=Cluster RuleSet not found due to [{0}]. Cluster configuration
 catalina.serverStartFail=The required Server component failed to start so Tomcat is unable to start.
 catalina.shutdownHookFail=The shutdown hook experienced an error while trying to stop the server
 catalina.stopServer=No shutdown port configured. Shut down server through OS signal. Server not shut down.
-catalina.stopServer.connectException=Could not contact {0}:{1}. Tomcat may not be running.
+catalina.stopServer.connectException=Could not contact [{0}:{1}]. Tomcat may not be running.
 
-contextConfig.altDDNotFound=alt-dd file {0} not found
+contextConfig.altDDNotFound=alt-dd file [{0}] not found
 contextConfig.annotationsStackOverflow=Unable to complete the scan for annotations for web application [{0}] due to a StackOverflowError. Possible root causes include a too low setting for -Xss and illegal cyclic inheritance dependencies. The class hierarchy being processed was [{1}]
 contextConfig.applicationMissing=Missing application web.xml, using defaults only
-contextConfig.applicationParse=Parse error in application web.xml file at {0}
-contextConfig.applicationPosition=Occurred at line {0} column {1}
-contextConfig.applicationStart=Parsing application web.xml file at {0}
+contextConfig.applicationParse=Parse error in application web.xml file at [{0}]
+contextConfig.applicationPosition=Occurred at line [{0}] column [{1}]
+contextConfig.applicationStart=Parsing application web.xml file at [{0}]
 contextConfig.applicationUrl=Unable to determine URL for application web.xml
-contextConfig.authenticatorConfigured=Configured an authenticator for method {0}
-contextConfig.authenticatorInstantiate=Cannot instantiate an authenticator of class {0}
-contextConfig.authenticatorMissing=Cannot configure an authenticator for method {0}
+contextConfig.authenticatorConfigured=Configured an authenticator for method [{0}]
+contextConfig.authenticatorInstantiate=Cannot instantiate an authenticator of class [{0}]
+contextConfig.authenticatorMissing=Cannot configure an authenticator for method [{0}]
 contextConfig.authenticatorResources=Cannot load authenticators mapping list
 contextConfig.badUrl=Unable to process context descriptor [{0}]
 contextConfig.baseError=Unable to determine location of global configuration (usually $CATALINA_BASE/conf)
-contextConfig.cce=Lifecycle event data object {0} is not a Context
+contextConfig.cce=Lifecycle event data object [{0}] is not a Context
 contextConfig.contextClose=Error closing context.xml
-contextConfig.contextMissing=Missing context.xml: {0}
-contextConfig.contextParse=Parse error in context.xml for {0}
-contextConfig.defaultError=Error processed default web.xml named {0} at {1}
+contextConfig.contextMissing=Missing context.xml: [{0}]
+contextConfig.contextParse=Parse error in context.xml for [{0}]
+contextConfig.defaultError=Error processed default web.xml named [{0}] at [{1}]
 contextConfig.defaultMissing=No global web.xml found
-contextConfig.defaultPosition=Occurred at line {0} column {1}
+contextConfig.defaultPosition=Occurred at line [{0}] column [{1}]
 contextConfig.destroy=ContextConfig: Destroying
 contextConfig.fileUrl=Unable to create a File object from the URL [{0}]
 contextConfig.fixDocBase=Exception fixing docBase for context [{0}]
@@ -54,16 +54,16 @@ contextConfig.jarFile=Unable to process Jar [{0}] for annotations
 contextConfig.jarUrl=The connection created for URL [{0}] was not a JarUrlConnection
 contextConfig.jndiUrl=Unable to process JNDI URL [{0}] for annotations
 contextConfig.jndiUrlNotDirContextConn=The connection created for URL [{0}] was not a DirContextURLConnection
-contextConfig.jspFile.error=JSP file {0} must start with a ''/''
-contextConfig.jspFile.warning=WARNING: JSP file {0} must start with a ''/'' in Servlet 2.4
+contextConfig.jspFile.error=JSP file [{0}] must start with a ''/''
+contextConfig.jspFile.warning=WARNING: JSP file [{0}] must start with a ''/'' in Servlet 2.4
 contextConfig.missingRealm=No Realm has been configured to authenticate against
 contextConfig.processAnnotationsDir.debug=Scanning directory for class files with annotations [{0}]
 contextConfig.processAnnotationsJar.debug=Scanning jar file for class files with annotations [{0}]
 contextConfig.processAnnotationsWebDir.debug=Scanning web application directory for class files with annotations [{0}]
 contextConfig.resourceJarFail=Failed to process JAR found at URL [{0}] for static resources to be included in context with name [{1}]
-contextConfig.role.auth=Security role name {0} used in an <auth-constraint> without being defined in a <security-role>
-contextConfig.role.link=Security role name {0} used in a <role-link> without being defined in a <security-role>
-contextConfig.role.runas=Security role name {0} used in a <run-as> without being defined in a <security-role>
+contextConfig.role.auth=Security role name [{0}] used in an <auth-constraint> without being defined in a <security-role>
+contextConfig.role.link=Security role name [{0}] used in a <role-link> without being defined in a <security-role>
+contextConfig.role.runas=Security role name [{0}] used in a <run-as> without being defined in a <security-role>
 contextConfig.sci.debug=Unable to process ServletContainerInitializer for [{0}]. This is most likely due to a class defined in the @HandlesTypes annotation being missing
 contextConfig.sci.info=Unable to process ServletContainerInitializer for [{0}]. This is most likely due to a class defined in the @HandlesTypes annotation being missing. Enable DEBUG level logging for the full stack trace.
 contextConfig.servletContainerInitializerFail=Failed to detect ServletContainerInitializers for context with name [{0}]
@@ -71,53 +71,53 @@ contextConfig.start=ContextConfig: Processing START
 contextConfig.stop=ContextConfig: Processing STOP
 contextConfig.unavailable=Marking this application unavailable due to previous error(s)
 contextConfig.unknownUrlProtocol=The URL protocol [{0}] was not recognised during annotation processing. URL [{1}] was ignored.
-contextConfig.urlPatternValue=Both the urlPatterns and value attributes were set for the {0} annotation on class [{1}]
+contextConfig.urlPatternValue=Both the urlPatterns and value attributes were set for the [{0}] annotation on class [{1}]
 contextConfig.webinfClassesUrl=Unable to determine URL for [{0}]
-contextConfig.xmlSettings=Context [{0}] will parse web.xml and web-fragment.xml files with validation:{1} and namespaceAware:{2}
+contextConfig.xmlSettings=Context [{0}] will parse web.xml and web-fragment.xml files with validation:[{1}] and namespaceAware:[{2}]
 
 embedded.authenticatorNotInstanceOfValve=Specified Authenticator is not a Valve
 embedded.noEngines=No engines have been defined yet
-embedded.notmp=Cannot find specified temporary folder at {0}
+embedded.notmp=Cannot find specified temporary folder at [{0}]
 
-engineConfig.cce=Lifecycle event data object {0} is not an Engine
+engineConfig.cce=Lifecycle event data object [{0}] is not an Engine
 engineConfig.start=EngineConfig: Processing START
 engineConfig.stop=EngineConfig: Processing STOP
 
-expandWar.copy=Error copying {0} to {1}
+expandWar.copy=Error copying [{0}] to [{1}]
 expandWar.createFailed=Unable to create the directory [{0}]
 expandWar.deleteFailed=[{0}] could not be completely deleted. The presence of the remaining files may cause problems
 expandWar.illegalPath=The archive [{0}] is malformed and will be ignored: an entry contains an illegal path [{1}] which was not expanded to [{2}] since that is outside of the defined docBase [{3}]
-expandWar.missingJarEntry=Cannot get input stream for JarEntry "{0}" - broken WAR file?
+expandWar.missingJarEntry=Cannot get input stream for JarEntry [{0}] - broken WAR file?
 
 failedContext.start=Failed to process either the global, per-host or context-specific context.xml file therefore the [{0}] Context cannot be started.
 
 hostConfig.appBase=Application base [{1}] for host [{0}] does not exist or is not a directory. deployOnStartUp and autoDeploy have been set to false to prevent deployment errors. Other errors may still occur.
 hostConfig.canonicalizing=Unable to determine canonical path for [{0}] while attempting to undeploy [{1}]
-hostConfig.cce=Lifecycle event data object {0} is not a Host
+hostConfig.cce=Lifecycle event data object [{0}] is not a Host
 hostConfig.context.remove=Error while removing context [{0}]
 hostConfig.context.restart=Error during context [{0}] restart
-hostConfig.createDirs=Unable to create directory for deployment: {0}
+hostConfig.createDirs=Unable to create directory for deployment: [{0}]
 hostConfig.deploy=Deploying web application directory {0}
-hostConfig.deploy.error=Exception while deploying web application directory {0}
-hostConfig.deployDescriptor=Deploying configuration descriptor {0}
+hostConfig.deploy.error=Exception while deploying web application directory [{0}]
+hostConfig.deployDescriptor=Deploying deployment descriptor [{0}]
 hostConfig.deployDescriptor.blocked=The web application with context path [{0}] was not deployed because it contained a deployment descriptor [{1}] which may include configuration necessary for the secure deployment of the application but processing of deployment descriptors is prevented by the deployXML setting of this host. An appropriate descriptor should be created at [{2}] to deploy this application.
-hostConfig.deployDescriptor.error=Error deploying configuration descriptor {0}
-hostConfig.deployDescriptor.finished=Deployment of configuration descriptor {0} has finished in {1} ms
-hostConfig.deployDescriptor.localDocBaseSpecified=A docBase {0} inside the host appBase has been specified, and will be ignored
-hostConfig.deployDescriptor.threaded.error=Error waiting for multi-thread deployment of context descriptors to complete
-hostConfig.deployDir=Deploying web application directory {0}
-hostConfig.deployDir.error=Error deploying web application directory {0}
-hostConfig.deployDir.finished=Deployment of web application directory {0} has finished in {1} ms
+hostConfig.deployDescriptor.error=Error deploying deployment descriptor [{0}]
+hostConfig.deployDescriptor.finished=Deployment of deployment descriptor [{0}] has finished in [{1}] ms
+hostConfig.deployDescriptor.localDocBaseSpecified=A docBase [{0}] inside the host appBase has been specified, and will be ignored
+hostConfig.deployDescriptor.threaded.error=Error waiting for multi-thread deployment of deployment descriptors to complete
+hostConfig.deployDir=Deploying web application directory [{0}]
+hostConfig.deployDir.error=Error deploying web application directory [{0}]
+hostConfig.deployDir.finished=Deployment of web application directory [{0}] has finished in [{1}] ms
 hostConfig.deployDir.threaded.error=Error waiting for multi-thread deployment of directories to complete
-hostConfig.deployWar=Deploying web application archive {0}
-hostConfig.deployWar.error=Error deploying web application archive {0}
-hostConfig.deployWar.finished=Deployment of web application archive {0} has finished in {1} ms
+hostConfig.deployWar=Deploying web application archive [{0}]
+hostConfig.deployWar.error=Error deploying web application archive [{0}]
+hostConfig.deployWar.finished=Deployment of web application archive [{0}] has finished in [{1}] ms
 hostConfig.deployWar.hiddenDir=The directory [{0}] will be ignored because the WAR [{1}] takes priority and unpackWARs is false
 hostConfig.deployWar.threaded.error=Error waiting for multi-thread deployment of WAR files to complete
 hostConfig.deploying=Deploying discovered web applications
 hostConfig.docBaseUrlInvalid=The provided docBase cannot be expressed as a URL
-hostConfig.expand=Expanding web application archive {0}
-hostConfig.expand.error=Exception while expanding web application archive {0}
+hostConfig.expand=Expanding web application archive [{0}]
+hostConfig.expand.error=Exception while expanding web application archive [{0}]
 hostConfig.expanding=Expanding discovered web application archives
 hostConfig.ignorePath=Ignoring path [{0}] in appBase for automatic deployment
 hostConfig.illegalWarName=The war name [{0}] is invalid. The archive will be ignored.
@@ -127,7 +127,7 @@ hostConfig.reload=Reloading context [{0}]
 hostConfig.removeDIR=Directory {0} is undeployed
 hostConfig.removeWAR=War {0} is undeployed
 hostConfig.removeXML=Context [{0}] is undeployed
-hostConfig.resourceNotAbsolute=Unable to remove resource from context [{0}] since [{1}] is not absolute
+hostConfig.resourceNotAbsolute=Unable to remove resource from context [{0}] since [{1}] is not an absolute path
 hostConfig.start=HostConfig: Processing START
 hostConfig.stop=HostConfig: Processing STOP
 hostConfig.undeploy=Undeploying context [{0}]
@@ -156,10 +156,10 @@ tomcat.addWebapp.conflictChild=Unable to deploy WAR at [{0}] to context path [{1
 tomcat.addWebapp.conflictFile=Unable to deploy WAR at [{0}] to context path [{1}] because of existing file [{2}]
 
 userConfig.database=Exception loading user database
-userConfig.deploy=Deploying web application for user {0}
+userConfig.deploy=Deploying web application for user [{0}]
 userConfig.deploy.threaded.error=Error waiting for multi-thread deployment of user directories to complete
 userConfig.deploying=Deploying user web applications
-userConfig.error=Error deploying web application for user {0}
+userConfig.error=Error deploying web application for user [{0}]
 userConfig.start=UserConfig: Processing START
 userConfig.stop=UserConfig: Processing STOP
 
@@ -173,8 +173,8 @@ versionLoggerListener.os.name=OS Name:               {0}
 versionLoggerListener.os.version=OS Version:            {0}
 versionLoggerListener.prop=System property:       {0} = {1}
 versionLoggerListener.serverInfo.server.built=Server built:          {0}
-versionLoggerListener.serverInfo.server.number=Server number:         {0}
-versionLoggerListener.serverInfo.server.version=Server version:        {0}
+versionLoggerListener.serverInfo.server.number=Server version number: {0}
+versionLoggerListener.serverInfo.server.version=Server version name:   {0}
 versionLoggerListener.vm.vendor=JVM Vendor:            {0}
 versionLoggerListener.vm.version=JVM Version:           {0}
 
diff --git a/java/org/apache/catalina/users/LocalStrings.properties b/java/org/apache/catalina/users/LocalStrings.properties
index bef4ed5..7b76a1d 100644
--- a/java/org/apache/catalina/users/LocalStrings.properties
+++ b/java/org/apache/catalina/users/LocalStrings.properties
@@ -19,7 +19,7 @@ memoryUserDatabase.nullGroup=Null or zero length group name specified. The group
 memoryUserDatabase.nullRole=Null or zero length role name specified. The role will be ignored.
 memoryUserDatabase.nullUser=Null or zero length user name specified. The user will be ignored.
 memoryUserDatabase.readOnly=User database has been configured to be read only. Changes cannot be saved
-memoryUserDatabase.renameNew=Cannot rename new file to {0}
-memoryUserDatabase.renameOld=Cannot rename original file to {0}
-memoryUserDatabase.writeException=IOException writing to {0}
+memoryUserDatabase.renameNew=Cannot rename new file to [{0}]
+memoryUserDatabase.renameOld=Cannot rename original file to [{0}]
+memoryUserDatabase.writeException=IOException writing to [{0}]
 memoryUserDatabase.xmlFeatureEncoding=Exception configuring digester to permit java encoding names in XML files. Only IANA encoding names will be supported.
diff --git a/java/org/apache/catalina/util/LocalStrings.properties b/java/org/apache/catalina/util/LocalStrings.properties
index 32c539d..57866eb 100644
--- a/java/org/apache/catalina/util/LocalStrings.properties
+++ b/java/org/apache/catalina/util/LocalStrings.properties
@@ -19,7 +19,7 @@ customObjectInputStream.logRequired=A valid logger is required for class name fi
 customObjectInputStream.nomatch=The class [{0}] did not match the regular expression [{1}] for classes allowed to be deserialized
 
 extensionValidator.extension-not-found-error=ExtensionValidator[{0}][{1}]: Required extension [{2}] not found.
-extensionValidator.extension-validation-error=ExtensionValidator[{0}]: Failure to find [{1}] required extension(s).
+extensionValidator.extension-validation-error=ExtensionValidator[{0}]: Failed to find [{1}] required extension(s).
 extensionValidator.failload=Failure loading extension [{0}]
 extensionValidator.web-application-manifest=Web Application Manifest
 
@@ -32,7 +32,7 @@ lifecycleBase.alreadyDestroyed=The destroy() method was called on component [{0}
 lifecycleBase.alreadyStarted=The start() method was called on component [{0}] after start() had already been called. The second call will be ignored.
 lifecycleBase.alreadyStopped=The stop() method was called on component [{0}] after stop() had already been called. The second call will be ignored.
 lifecycleBase.destroyFail=Failed to destroy component [{0}]
-lifecycleBase.destroyStopFail=Calling stop() on failed component [{0}] to trigger clean-up did not complete.
+lifecycleBase.destroyStopFail=Called stop() on failed component [{0}] to trigger clean-up but it failed too
 lifecycleBase.initFail=Failed to initialize component [{0}]
 lifecycleBase.initMBeanFail=Failed to register component [{0}] with MBean name [{1}]
 lifecycleBase.invalidTransition=An invalid Lifecycle transition was attempted ([{0}]) for component [{1}] in state [{2}]
diff --git a/java/org/apache/catalina/valves/LocalStrings.properties b/java/org/apache/catalina/valves/LocalStrings.properties
index 087a6d5..94d5b57 100644
--- a/java/org/apache/catalina/valves/LocalStrings.properties
+++ b/java/org/apache/catalina/valves/LocalStrings.properties
@@ -108,7 +108,7 @@ http.504.desc=The server, while acting as a gateway or proxy, did not receive a
 http.504.reason=Gateway Timeout
 http.505.desc=The server does not support, or refuses to support, the major version of HTTP that was used in the request message.
 http.505.reason=HTTP Version Not Supported
-http.506.desc=The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is thereforenot a proper end point in the negotiation process.
+http.506.desc=The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.
 http.506.reason=Variant Also Negotiates
 http.507.desc=The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.
 http.507.reason=Insufficient Storage
@@ -119,7 +119,7 @@ http.510.reason=Not Extended
 http.511.desc=The client needs to authenticate to gain network access.
 http.511.reason=Network Authentication Required
 
-jdbcAccessLogValve.close=Exception closing database connection
+jdbcAccessLogValve.close=Failed to close database
 jdbcAccessLogValve.exception=Exception performing insert access entry
 
 remoteCidrValve.invalid=Invalid configuration provided for [{0}]. See previous messages for details.
@@ -138,8 +138,8 @@ requestFilterValve.syntax=Syntax error in request filter pattern {0}
 sslValve.certError=Failed to process certificate string [{0}] to create a java.security.cert.X509Certificate object
 sslValve.invalidProvider=The SSL provider specified on the connector associated with this request of [{0}] is invalid. The certificate data could not be processed.
 
-stuckThreadDetectionValve.notifyStuckThreadCompleted=Thread "{0}" (id={3}) was previously reported to be stuck but has completed. It was active for approximately {1} milliseconds.{2,choice,0#|0< There is/are still {2} thread(s) that are monitored by this Valve and may be stuck.}
-stuckThreadDetectionValve.notifyStuckThreadDetected=Thread "{0}" (id={6}) has been active for {1} milliseconds (since {2}) to serve the same request for {4} and may be stuck (configured threshold for this StuckThreadDetectionValve is {5} seconds). There is/are {3} thread(s) in total that are monitored by this Valve and may be stuck.
-stuckThreadDetectionValve.notifyStuckThreadInterrupted=Thread "{0}" (id={5}) has been interrupted because it was active for {1} milliseconds (since {2}) to serve the same request for {3} and was probably stuck (configured interruption threshold for this StuckThreadDetectionValve is {4} seconds).
+stuckThreadDetectionValve.notifyStuckThreadCompleted=Thread [{0}] (id=[{3}]) was previously reported to be stuck but has completed. It was active for approximately [{1}] milliseconds.{2,choice,0#|0< There is/are still [{2}] thread(s) that are monitored by this Valve and may be stuck.}
+stuckThreadDetectionValve.notifyStuckThreadDetected=Thread [{0}] (id=[{6}]) has been active for [{1}] milliseconds (since [{2}]) to serve the same request for [{4}] and may be stuck (configured threshold for this StuckThreadDetectionValve is [{5}] seconds). There is/are [{3}] thread(s) in total that are monitored by this Valve and may be stuck.
+stuckThreadDetectionValve.notifyStuckThreadInterrupted=Thread [{0}] (id=[{5}]) has been interrupted because it was active for [{1}] milliseconds (since [{2}]) to serve the same request for [{3}] and was probably stuck (configured interruption threshold for this StuckThreadDetectionValve is [{4}] seconds).
 
 valveBase.noNext=Configuration error: No ''next'' valve configured
diff --git a/java/org/apache/coyote/ajp/LocalStrings.properties b/java/org/apache/coyote/ajp/LocalStrings.properties
index fe816fa..ab2942a 100644
--- a/java/org/apache/coyote/ajp/LocalStrings.properties
+++ b/java/org/apache/coyote/ajp/LocalStrings.properties
@@ -15,10 +15,10 @@
 
 ajpMessage.invalidPos=Requested read of bytes at position [{0}] which is beyond the end of the AJP message
 
-ajpmessage.invalid=Invalid message received with signature {0}
-ajpmessage.invalidLength=Invalid message received with length {0}
+ajpmessage.invalid=Invalid message received with signature [{0}]
+ajpmessage.invalidLength=Invalid message received with length [{0}]
 ajpmessage.null=Cannot append null value
-ajpmessage.overflow=Overflow error for buffer adding {0} bytes at position {1}
+ajpmessage.overflow=Overflow error for buffer adding [{0}] bytes at position [{1}]
 ajpmessage.read=Requested {0} bytes exceeds message available data
 
 ajpprocessor.certs.fail=Certificate conversion failed
diff --git a/java/org/apache/coyote/http11/LocalStrings.properties b/java/org/apache/coyote/http11/LocalStrings.properties
index 035bf71..36d797a 100644
--- a/java/org/apache/coyote/http11/LocalStrings.properties
+++ b/java/org/apache/coyote/http11/LocalStrings.properties
@@ -17,7 +17,7 @@ http11Processor.upgrade=An internal error has occurred as upgraded connections s
 
 http11processor.comet.notsupported=The Comet protocol is not supported by this connector
 http11processor.fallToDebug=\n\
-\ Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
+\ Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
 http11processor.filter.error=Error intializing filter {0}
 http11processor.filter.unknown=Unknown filter {0}
 http11processor.header.parse=Error parsing HTTP request header
diff --git a/java/org/apache/tomcat/util/http/LocalStrings.properties b/java/org/apache/tomcat/util/http/LocalStrings.properties
index 71b871b..2c10150 100644
--- a/java/org/apache/tomcat/util/http/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/http/LocalStrings.properties
@@ -33,4 +33,4 @@ parameters.maxCountFail=More than the maximum number of request parameters (GET
 parameters.maxCountFail.fallToDebug=\n\
 \ Note: further occurrences of this error will be logged at DEBUG level.
 parameters.multipleDecodingFail=Character decoding failed. A total of [{0}] failures were detected but only the first was logged. Enable debug level logging for this logger to log all failures.
-parameters.noequal=Parameter starting at position [{0}] and ending at position [{1}] with a value of [{0}] was not followed by an ''='' character
+parameters.noequal=Parameter starting at position [{0}] and ending at position [{1}] with a value of [{2}] was not followed by an ''='' character
diff --git a/java/org/apache/tomcat/util/http/parser/LocalStrings.properties b/java/org/apache/tomcat/util/http/parser/LocalStrings.properties
index c201778..8af7cc0 100644
--- a/java/org/apache/tomcat/util/http/parser/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/http/parser/LocalStrings.properties
@@ -33,4 +33,4 @@ http.tooFewHextets=An IPv6 address must consist of 8 hextets but this address co
 http.tooManyColons=An IPv6 address may not contain more than 2 sequential colon characters.
 http.tooManyDoubleColons=An IPv6 address may only contain a single '::' sequence.
 http.tooManyHextets=The IPv6 address contains [{0}] hextets but a valid IPv6 address may not have more than 8.
-http.wrongOctetCount=An IPv4 address should have exactly 4 octets, not [{0}].>>>>>>> .merge-right.r1815790
+http.wrongOctetCount=An IPv4 address should have exactly 4 octets, not [{0}].
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings.properties b/java/org/apache/tomcat/util/scan/LocalStrings.properties
index 3c5b68f..929c10e 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings.properties
@@ -14,11 +14,11 @@
 # limitations under the License.
 
 jarScan.classloaderFail=Failed to scan [{0}] from classloader hierarchy
-jarScan.classloaderJarNoScan=Not scanning JAR [{0}] from classpath
+jarScan.classloaderJarNoScan=Not performing JAR scanning on file [{0}] from classpath
 jarScan.classloaderJarScan=Scanning JAR [{0}] from classpath
 jarScan.classloaderStart=Scanning for JARs in classloader hierarchy
 jarScan.jarUrlStart=Scanning JAR at URL [{0}]
-jarScan.webinflibFail=Failed to scan JAR [{0}] from WEB-INF/lib
-jarScan.webinflibJarNoScan=Not scanning JAR [{0}] from WEB-INF/lib
-jarScan.webinflibJarScan=Scanning JAR [{0}] from WEB-INF/lib
-jarScan.webinflibStart=Scanning WEB-INF/lib for JARs
+jarScan.webinflibFail=Failed to scan JAR [{0}] from /WEB-INF/lib
+jarScan.webinflibJarNoScan=Not performing JAR scanning on file [{0}] from /WEB-INF/lib
+jarScan.webinflibJarScan=Scanning JAR [{0}] from /WEB-INF/lib
+jarScan.webinflibStart=Scanning /WEB-INF/lib for JARs
diff --git a/java/org/apache/tomcat/util/threads/res/LocalStrings.properties b/java/org/apache/tomcat/util/threads/res/LocalStrings.properties
index b67afa5..938626f 100644
--- a/java/org/apache/tomcat/util/threads/res/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/threads/res/LocalStrings.properties
@@ -13,4 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Stopping thread {0} to avoid potential memory leaks after a context was stopped.
+threadPoolExecutor.threadStoppedToAvoidPotentialLeak=Stopping thread [{0}] to avoid potential memory leaks after a context was stopped.
diff --git a/java/org/apache/tomcat/websocket/server/LocalStrings.properties b/java/org/apache/tomcat/websocket/server/LocalStrings.properties
index 85cedd6..c002755 100644
--- a/java/org/apache/tomcat/websocket/server/LocalStrings.properties
+++ b/java/org/apache/tomcat/websocket/server/LocalStrings.properties
@@ -19,7 +19,7 @@ serverContainer.addNotAllowed=No further Endpoints may be registered once an att
 serverContainer.configuratorFail=Failed to create configurator of type [{0}] for POJO of type [{1}]
 serverContainer.duplicatePaths=Multiple Endpoints may not be deployed to the same path [{0}] : existing endpoint was [{1}] and new endpoint is [{2}]
 serverContainer.encoderFail=Unable to create encoder of type [{0}]
-serverContainer.failedDeployment=Deployment of WebSocket Endpoints to the web application with path [{0}] is not permitted due to the failure of a previous deployment
+serverContainer.failedDeployment=Deployment of WebSocket Endpoints to the web application with path [{0}] in host [{1}] is not permitted due to the failure of a previous deployment
 serverContainer.missingAnnotation=Cannot deploy POJO class [{0}] as it is not annotated with @ServerEndpoint
 serverContainer.missingEndpoint=An Endpoint instance has been request for path [{0}] but no matching Endpoint class was found
 serverContainer.pojoDeploy=POJO class [{0}] deploying to path [{1}] in ServletContext [{2}]
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index f49f6d2..3462548 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -156,6 +156,10 @@
         test suite to replace the keys and certificates that are about to
         expire. (markt)
       </update>
+      <fix>
+        Back-port various corrections and improvements to the English versions
+        of the i18n messages. (markt)
+      </fix>
     </changelog>
   </subsection>
 </section>


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