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-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to