This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/10.1.x by this push:
new ee246168da Missing strings mostly
ee246168da is described below
commit ee246168dacc262f5ca87718ab913b48499194e5
Author: remm <[email protected]>
AuthorDate: Fri Feb 16 12:19:09 2024 +0100
Missing strings mostly
---
java/org/apache/catalina/filters/CorsFilter.java | 11 +------
.../catalina/filters/LocalStrings.properties | 1 +
java/org/apache/catalina/servlets/CGIServlet.java | 5 ++--
.../catalina/servlets/LocalStrings.properties | 2 ++
.../apache/catalina/session/DataSourceStore.java | 35 +++++++++++-----------
.../catalina/session/LocalStrings.properties | 1 +
.../catalina/storeconfig/LocalStrings.properties | 1 +
.../apache/catalina/storeconfig/StoreRegistry.java | 2 +-
.../membership/cloud/AbstractStreamProvider.java | 7 ++---
.../membership/cloud/CloudMembershipProvider.java | 3 +-
.../membership/cloud/DNSMembershipProvider.java | 2 +-
.../cloud/KubernetesMembershipProvider.java | 2 +-
.../membership/cloud/LocalStrings.properties | 6 ++++
.../valves/CrawlerSessionManagerValve.java | 8 ++---
.../valves/rewrite/LocalStrings.properties | 5 ++++
.../catalina/valves/rewrite/Substitution.java | 23 +++++++-------
.../tomcat/websocket/LocalStrings.properties | 1 +
17 files changed, 62 insertions(+), 53 deletions(-)
diff --git a/java/org/apache/catalina/filters/CorsFilter.java
b/java/org/apache/catalina/filters/CorsFilter.java
index 1f063aa4c4..bdc97ddb12 100644
--- a/java/org/apache/catalina/filters/CorsFilter.java
+++ b/java/org/apache/catalina/filters/CorsFilter.java
@@ -350,16 +350,7 @@ public class CorsFilter extends GenericFilter {
response.resetBuffer();
if (log.isDebugEnabled()) {
- // Debug so no need for i18n
- StringBuilder message = new StringBuilder("Invalid CORS request;
Origin=");
- message.append(origin);
- message.append(";Method=");
- message.append(method);
- if (accessControlRequestHeaders != null) {
- message.append(";Access-Control-Request-Headers=");
- message.append(accessControlRequestHeaders);
- }
- log.debug(message.toString());
+ sm.getString("corsFilter.invalidRequest", origin, method,
accessControlRequestHeaders);
}
}
diff --git a/java/org/apache/catalina/filters/LocalStrings.properties
b/java/org/apache/catalina/filters/LocalStrings.properties
index be56650ae2..aab53ede4f 100644
--- a/java/org/apache/catalina/filters/LocalStrings.properties
+++ b/java/org/apache/catalina/filters/LocalStrings.properties
@@ -16,6 +16,7 @@
addDefaultCharset.unsupportedCharset=Specified character set [{0}] is not
supported
corsFilter.invalidPreflightMaxAge=Unable to parse preflightMaxAge
+corsFilter.invalidRequest=Invalid CORS request; Origin [{0}] Method [{1}]
Access-Control-Request-Headers [{2}]
corsFilter.invalidSupportsCredentials=It is not allowed to configure
supportsCredentials=[true] when allowedOrigins=[*]
corsFilter.nullRequest=HttpServletRequest object is null
corsFilter.nullRequestType=CORSRequestType object is null
diff --git a/java/org/apache/catalina/servlets/CGIServlet.java
b/java/org/apache/catalina/servlets/CGIServlet.java
index 30b2097b36..7458b5aab2 100644
--- a/java/org/apache/catalina/servlets/CGIServlet.java
+++ b/java/org/apache/catalina/servlets/CGIServlet.java
@@ -1433,7 +1433,7 @@ public final class CGIServlet extends HttpServlet {
*/
if (!isReady()) {
- throw new IOException(this.getClass().getName() + ": not ready
to run.");
+ throw new IOException(sm.getString("cgiServlet.notReady"));
}
if (log.isTraceEnabled()) {
@@ -1442,8 +1442,7 @@ public final class CGIServlet extends HttpServlet {
if ((command.contains(File.separator + "." + File.separator)) ||
(command.contains(File.separator + "..")) ||
(command.contains(".." + File.separator))) {
- throw new IOException(this.getClass().getName() + "Illegal
Character in CGI command path " +
- "('.' or '..') detected. Not running CGI [" + command
+ "].");
+ throw new
IOException(sm.getString("cgiServlet.invalidCommand", command));
}
/*
diff --git a/java/org/apache/catalina/servlets/LocalStrings.properties
b/java/org/apache/catalina/servlets/LocalStrings.properties
index 1ce4990490..38807654a3 100644
--- a/java/org/apache/catalina/servlets/LocalStrings.properties
+++ b/java/org/apache/catalina/servlets/LocalStrings.properties
@@ -25,6 +25,8 @@ cgiServlet.find.location=Looking for a file at [{0}]
cgiServlet.find.path=CGI script requested at path [{0}] relative to CGI
location [{1}]
cgiServlet.invalidArgumentDecoded=The decoded command line argument [{0}] did
not match the configured cmdLineArgumentsDecoded pattern [{1}]
cgiServlet.invalidArgumentEncoded=The encoded command line argument [{0}] did
not match the configured cmdLineArgumentsEncoded pattern [{1}]
+cgiServlet.invalidCommand=Illegal Character in CGI command path ('.' or '..')
detected, not running CGI [{0}]
+cgiServlet.notReady=CGI Servlet is not ready to run
cgiServlet.runBadHeader=Bad header line [{0}]
cgiServlet.runFail=I/O problems processing CGI
cgiServlet.runHeaderReaderFail=I/O problems closing header reader
diff --git a/java/org/apache/catalina/session/DataSourceStore.java
b/java/org/apache/catalina/session/DataSourceStore.java
index 77f282ff62..b6c489aec6 100644
--- a/java/org/apache/catalina/session/DataSourceStore.java
+++ b/java/org/apache/catalina/session/DataSourceStore.java
@@ -366,7 +366,7 @@ public class DataSourceStore extends StoreBase {
}
}
} catch (SQLException e) {
-
manager.getContext().getLogger().error(sm.getString(getStoreName() +
".SQLException", e));
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.SQLException",
e));
keys = new String[0];
// Close the connection so that it gets reopened next time
} finally {
@@ -408,7 +408,7 @@ public class DataSourceStore extends StoreBase {
numberOfTries = 0;
}
} catch (SQLException e) {
-
manager.getContext().getLogger().error(sm.getString(getStoreName() +
".SQLException", e));
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.SQLException",
e));
} finally {
release(_conn);
}
@@ -452,7 +452,7 @@ public class DataSourceStore extends StoreBase {
if (rst.next()) {
try (ObjectInputStream ois =
getObjectInputStream(rst.getBinaryStream(2))) {
if (contextLog.isTraceEnabled()) {
- contextLog.trace(sm.getString(getStoreName() +
".loading", id, sessionTable));
+
contextLog.trace(sm.getString("dataSourceStore.loading", id, sessionTable));
}
_session = (StandardSession)
manager.createEmptySession();
@@ -460,13 +460,13 @@ public class DataSourceStore extends StoreBase {
_session.setManager(manager);
}
} else if (context.getLogger().isDebugEnabled()) {
- contextLog.debug(getStoreName() + ": No persisted data
object found");
+
contextLog.debug(sm.getString("dataSourceStore.noObject", id));
}
// Break out after the finally block
numberOfTries = 0;
}
} catch (SQLException e) {
- contextLog.error(sm.getString(getStoreName() +
".SQLException", e));
+ contextLog.error(sm.getString("dataSourceStore.SQLException",
e));
} finally {
context.unbind(Globals.IS_SECURITY_ENABLED,
oldThreadContextCL);
release(_conn);
@@ -500,7 +500,7 @@ public class DataSourceStore extends StoreBase {
// Break out after the finally block
numberOfTries = 0;
} catch (SQLException e) {
-
manager.getContext().getLogger().error(sm.getString(getStoreName() +
".SQLException", e));
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.SQLException",
e));
} finally {
release(_conn);
}
@@ -508,7 +508,7 @@ public class DataSourceStore extends StoreBase {
}
if (manager.getContext().getLogger().isTraceEnabled()) {
- manager.getContext().getLogger().trace(sm.getString(getStoreName()
+ ".removing", id, sessionTable));
+
manager.getContext().getLogger().trace(sm.getString("dataSourceStore.removing",
id, sessionTable));
}
}
@@ -553,7 +553,7 @@ public class DataSourceStore extends StoreBase {
// Break out after the finally block
numberOfTries = 0;
} catch (SQLException e) {
-
manager.getContext().getLogger().error(sm.getString(getStoreName() +
".SQLException", e));
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.SQLException",
e));
} finally {
release(_conn);
}
@@ -609,7 +609,7 @@ public class DataSourceStore extends StoreBase {
numberOfTries = 0;
}
} catch (SQLException e) {
-
manager.getContext().getLogger().error(sm.getString(getStoreName() +
".SQLException", e));
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.SQLException",
e));
} catch (IOException e) {
// Ignore
} finally {
@@ -621,7 +621,7 @@ public class DataSourceStore extends StoreBase {
if (manager.getContext().getLogger().isTraceEnabled()) {
manager.getContext().getLogger()
- .trace(sm.getString(getStoreName() + ".saving",
session.getIdInternal(), sessionTable));
+ .trace(sm.getString("dataSourceStore.saving",
session.getIdInternal(), sessionTable));
}
}
@@ -639,16 +639,16 @@ public class DataSourceStore extends StoreBase {
try {
conn = open();
if (conn == null || conn.isClosed()) {
-
manager.getContext().getLogger().info(sm.getString(getStoreName() +
".checkConnectionDBClosed"));
+
manager.getContext().getLogger().info(sm.getString("dataSourceStore.checkConnectionDBClosed"));
conn = open();
if (conn == null || conn.isClosed()) {
manager.getContext().getLogger()
- .info(sm.getString(getStoreName() +
".checkConnectionDBReOpenFail"));
+
.info(sm.getString("dataSourceStore.checkConnectionDBReOpenFail"));
}
}
} catch (SQLException ex) {
manager.getContext().getLogger()
- .error(sm.getString(getStoreName() +
".checkConnectionSQLException", ex.toString()));
+
.error(sm.getString("dataSourceStore.checkConnectionSQLException", ex));
}
return conn;
@@ -675,7 +675,7 @@ public class DataSourceStore extends StoreBase {
Context envCtx = (Context) initCtx.lookup("java:comp/env");
this.dataSource = (DataSource)
envCtx.lookup(this.dataSourceName);
} catch (NamingException e) {
- context.getLogger().error(sm.getString(getStoreName() +
".wrongDataSource", this.dataSourceName), e);
+
context.getLogger().error(sm.getString("dataSourceStore.wrongDataSource",
this.dataSourceName), e);
} finally {
if (getLocalDataSource()) {
context.unbind(Globals.IS_SECURITY_ENABLED,
oldThreadContextCL);
@@ -686,7 +686,7 @@ public class DataSourceStore extends StoreBase {
if (dataSource != null) {
return dataSource.getConnection();
} else {
- throw new IllegalStateException(sm.getString(getStoreName() +
".missingDataSource"));
+ throw new
IllegalStateException(sm.getString("dataSourceStore.missingDataSource"));
}
}
@@ -708,15 +708,14 @@ public class DataSourceStore extends StoreBase {
dbConnection.commit();
}
} catch (SQLException e) {
- manager.getContext().getLogger().error(sm.getString(getStoreName()
+ ".commitSQLException"), e);
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.commitSQLException"),
e);
}
// Close this database connection, and log any errors
try {
dbConnection.close();
} catch (SQLException e) {
- manager.getContext().getLogger().error(sm.getString(getStoreName()
+ ".close", e.toString())); // Just log
-
// it here
+
manager.getContext().getLogger().error(sm.getString("dataSourceStore.close",
e));
}
}
diff --git a/java/org/apache/catalina/session/LocalStrings.properties
b/java/org/apache/catalina/session/LocalStrings.properties
index 40896868fc..b5f654f228 100644
--- a/java/org/apache/catalina/session/LocalStrings.properties
+++ b/java/org/apache/catalina/session/LocalStrings.properties
@@ -22,6 +22,7 @@ dataSourceStore.commitSQLException=SQLException committing
connection before clo
dataSourceStore.loading=Loading Session [{0}] from database [{1}]
dataSourceStore.missingDataSource=No data source available
dataSourceStore.missingDataSourceName=No valid JNDI name was given
+dataSourceStore.noObject=No persisted data object found for session [{0}]
dataSourceStore.removing=Removing Session [{0}] at database [{1}]
dataSourceStore.saving=Saving Session [{0}] to database [{1}]
dataSourceStore.wrongDataSource=Cannot open JNDI DataSource [{0}]
diff --git a/java/org/apache/catalina/storeconfig/LocalStrings.properties
b/java/org/apache/catalina/storeconfig/LocalStrings.properties
index 4067b860b8..2facbe157c 100644
--- a/java/org/apache/catalina/storeconfig/LocalStrings.properties
+++ b/java/org/apache/catalina/storeconfig/LocalStrings.properties
@@ -26,6 +26,7 @@ globalNamingResourcesSF.noFactory=Cannot find NamingResources
store factory
globalNamingResourcesSF.wrongElement=Wrong element [{0}]
registry.loadClassFailed=Failed to load class [{0}]
+registry.noDescriptor=Can't find descriptor for key [{0}]
standardContextSF.cannotWriteFile=Cannot write file at [{0}]
standardContextSF.canonicalPathError=Failed to obtain the canonical path of
the configuration file [{0}]
diff --git a/java/org/apache/catalina/storeconfig/StoreRegistry.java
b/java/org/apache/catalina/storeconfig/StoreRegistry.java
index a4dea64261..4865171d14 100644
--- a/java/org/apache/catalina/storeconfig/StoreRegistry.java
+++ b/java/org/apache/catalina/storeconfig/StoreRegistry.java
@@ -132,7 +132,7 @@ public class StoreRegistry {
log.trace("find descriptor " + id + "#" + desc.getTag() + "#"
+ desc.getStoreFactoryClass());
} else {
- log.debug(("Can't find descriptor for key " + id));
+ log.debug(sm.getString("registry.noDescriptor", id));
}
}
return desc;
diff --git
a/java/org/apache/catalina/tribes/membership/cloud/AbstractStreamProvider.java
b/java/org/apache/catalina/tribes/membership/cloud/AbstractStreamProvider.java
index 2c283890a7..68785e3243 100644
---
a/java/org/apache/catalina/tribes/membership/cloud/AbstractStreamProvider.java
+++
b/java/org/apache/catalina/tribes/membership/cloud/AbstractStreamProvider.java
@@ -75,7 +75,7 @@ public abstract class AbstractStreamProvider implements
StreamProvider {
*/
public URLConnection openConnection(String url, Map<String, String>
headers, int connectTimeout, int readTimeout) throws IOException {
if (log.isDebugEnabled()) {
- log.debug(String.format("%s opening connection: url [%s], headers
[%s], connectTimeout [%s], readTimeout [%s]",
+ log.debug(sm.getString("abstractStream.connection",
getClass().getSimpleName(), url, headers,
Integer.toString(connectTimeout), Integer.toString(readTimeout)));
}
URLConnection connection;
@@ -91,9 +91,8 @@ public abstract class AbstractStreamProvider implements
StreamProvider {
}
}
if (connectTimeout < 0 || readTimeout < 0) {
- throw new IllegalArgumentException(
- String.format("Neither connectTimeout [%s] nor readTimeout
[%s] can be less than 0 for URLConnection.",
- Integer.toString(connectTimeout),
Integer.toString(readTimeout)));
+ throw new
IllegalArgumentException(sm.getString("abstractStream.invalidTimeout",
+ Integer.toString(connectTimeout),
Integer.toString(readTimeout)));
}
connection.setConnectTimeout(connectTimeout);
connection.setReadTimeout(readTimeout);
diff --git
a/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipProvider.java
b/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipProvider.java
index 67300cc454..fe5e193583 100644
---
a/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipProvider.java
+++
b/java/org/apache/catalina/tribes/membership/cloud/CloudMembershipProvider.java
@@ -152,7 +152,8 @@ public abstract class CloudMembershipProvider extends
MembershipProviderBase imp
return;
}
if (log.isDebugEnabled()) {
- String message = add ? "Member added: " + member : "Member
disappeared: " + member;
+ String message = add ? sm.getString("cloudMembershipProvider.add",
member)
+ : sm.getString("cloudMembershipProvider.remove", member);
log.debug(message);
}
Runnable r = () -> {
diff --git
a/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
b/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
index f5a6874496..9822487cb1 100644
---
a/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
+++
b/java/org/apache/catalina/tribes/membership/cloud/DNSMembershipProvider.java
@@ -106,7 +106,7 @@ public class DNSMembershipProvider extends
CloudMembershipProvider {
}
if (log.isDebugEnabled()) {
- log.debug(String.format("Namespace [%s] set; clustering enabled",
dnsServiceName));
+ log.debug(sm.getString("cloudMembershipProvider.start",
dnsServiceName));
}
dnsServiceName = URLEncoder.encode(dnsServiceName, "UTF-8");
diff --git
a/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
b/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
index 98dd6eccd8..6f0f4f244e 100644
---
a/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
+++
b/java/org/apache/catalina/tribes/membership/cloud/KubernetesMembershipProvider.java
@@ -57,7 +57,7 @@ public class KubernetesMembershipProvider extends
CloudMembershipProvider {
String namespace = getNamespace();
if (log.isDebugEnabled()) {
- log.debug(String.format("Namespace [%s] set; clustering enabled",
namespace));
+ log.debug(sm.getString("cloudMembershipProvider.start",
namespace));
}
String protocol = getEnv(CUSTOM_ENV_PREFIX + "MASTER_PROTOCOL",
"KUBERNETES_MASTER_PROTOCOL");
diff --git
a/java/org/apache/catalina/tribes/membership/cloud/LocalStrings.properties
b/java/org/apache/catalina/tribes/membership/cloud/LocalStrings.properties
index 33816e5b2f..77bc9bbdcc 100644
--- a/java/org/apache/catalina/tribes/membership/cloud/LocalStrings.properties
+++ b/java/org/apache/catalina/tribes/membership/cloud/LocalStrings.properties
@@ -14,11 +14,17 @@
# limitations under the License.
abstractStream.CACertUndefined=CA cert file undefined
+abstractStream.connection=[{0}] opening connection: url [{1}], headers [{2}],
connectTimeout [{3}], readTimeout [{4}]
abstractStream.fileNotFound=CA cert file [{0}] not found
+abstractStream.invalidTimeout=Neither connectTimeout [{0}] nor readTimeout
[{1}] can be less than 0 for URLConnection
abstractStream.trustManagerError=Could not create trust manager for [{0}]
certificateStream.clientCertError=Could not create key manager for [{0}]
([{1}])
+cloudMembershipProvider.add=Member [{0}] added
+cloudMembershipProvider.remove=Member [{0}] disappeared
+cloudMembershipProvider.start=Namespace [{0}] set; clustering enabled
+
cloudMembershipService.stopFail=Unable to stop the cloud membership service,
level: [{0}]
dnsMembershipProvider.dnsError=Error getting hosts address list for namespace
[{0}]
diff --git a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
index 18cd9a26b4..21f032847f 100644
--- a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
+++ b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java
@@ -245,13 +245,13 @@ public class CrawlerSessionManagerValve extends ValveBase
{
new
CrawlerHttpSessionBindingListener(clientIdSessionId, clientIdentifier));
s.setMaxInactiveInterval(sessionInactiveInterval);
- if (log.isDebugEnabled()) {
- log.debug(request.hashCode() + ": New bot session.
SessionID=" + s.getId());
+ if (log.isTraceEnabled()) {
+ log.trace(request.hashCode() + ": New bot session.
SessionID=" + s.getId());
}
}
} else {
- if (log.isDebugEnabled()) {
- log.debug(request.hashCode() + ": Bot session accessed.
SessionID=" + sessionId);
+ if (log.isTraceEnabled()) {
+ log.trace(request.hashCode() + ": Bot session accessed.
SessionID=" + sessionId);
}
}
}
diff --git a/java/org/apache/catalina/valves/rewrite/LocalStrings.properties
b/java/org/apache/catalina/valves/rewrite/LocalStrings.properties
index db07290ebb..ffb6009f6d 100644
--- a/java/org/apache/catalina/valves/rewrite/LocalStrings.properties
+++ b/java/org/apache/catalina/valves/rewrite/LocalStrings.properties
@@ -26,3 +26,8 @@ rewriteValve.invalidMapClassName=Invalid map class name [{0}]
rewriteValve.noConfiguration=No configuration resource found [{0}]
rewriteValve.readConfiguration=Read configuration from [/WEB-INF/{0}]
rewriteValve.readError=Error reading configuration
+
+substitution.badType=Bad type [{0}] in substitution [{1}]
+substitution.invalid=Invalid substitution [{0}]
+substitution.missingDigit=Substitution [{0}] is missing digit or curly brace
+substitution.noMap=Map [{0}] not found in substitution [{1}]
diff --git a/java/org/apache/catalina/valves/rewrite/Substitution.java
b/java/org/apache/catalina/valves/rewrite/Substitution.java
index 1e70de2fcd..b7e39158e6 100644
--- a/java/org/apache/catalina/valves/rewrite/Substitution.java
+++ b/java/org/apache/catalina/valves/rewrite/Substitution.java
@@ -22,9 +22,12 @@ import java.util.Map;
import java.util.regex.Matcher;
import org.apache.catalina.util.URLEncoder;
+import org.apache.tomcat.util.res.StringManager;
public class Substitution {
+ protected static final StringManager sm =
StringManager.getManager(Substitution.class);
+
public abstract static class SubstitutionElement {
public abstract String evaluate(Matcher rule, Matcher cond, Resolver
resolver);
}
@@ -148,7 +151,7 @@ public class Substitution {
elements.add(newElement);
} else if (isFirstPos(backslashPos, dollarPos, percentPos)) {
if (backslashPos + 1 == sub.length()) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
StaticElement newElement = new StaticElement();
newElement.value = sub.substring(pos, backslashPos) +
sub.substring(backslashPos + 1, backslashPos + 2);
@@ -157,7 +160,7 @@ public class Substitution {
} else if (isFirstPos(dollarPos, percentPos)) {
// $: back reference to rule or map lookup
if (dollarPos + 1 == sub.length()) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
if (pos < dollarPos) {
// Static text
@@ -179,17 +182,17 @@ public class Substitution {
int def = findMatchingColonOrBar(false, sub, open);
int close = findMatchingBrace(sub, open);
if (!(-1 < open && open < colon && colon < close)) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
newElement.map = maps.get(sub.substring(open + 1, colon));
if (newElement.map == null) {
- throw new IllegalArgumentException(sub + ": No map: "
+ sub.substring(open + 1, colon));
+ throw new
IllegalArgumentException(sm.getString("substitution.noMap", sub.substring(open
+ 1, colon), sub));
}
String key = null;
String defaultValue = null;
if (def > -1) {
if (!(colon < def && def < close)) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
key = sub.substring(colon + 1, def);
defaultValue = sub.substring(def + 1, close);
@@ -203,12 +206,12 @@ public class Substitution {
pos = close + 1;
elements.add(newElement);
} else {
- throw new IllegalArgumentException(sub + ": missing digit
or curly brace.");
+ throw new
IllegalArgumentException(sm.getString("substitution.missingDigit", sub));
}
} else {
// %: back reference to condition or server variable
if (percentPos + 1 == sub.length()) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
if (pos < percentPos) {
// Static text
@@ -229,7 +232,7 @@ public class Substitution {
int colon = findMatchingColonOrBar(true, sub, open);
int close = findMatchingBrace(sub, open);
if (!(-1 < open && open < close)) {
- throw new IllegalArgumentException(sub);
+ throw new
IllegalArgumentException(sm.getString("substitution.invalid", sub));
}
if (colon > -1 && open < colon && colon < close) {
String type = sub.substring(open + 1, colon);
@@ -243,7 +246,7 @@ public class Substitution {
newElement = new ServerVariableHttpElement();
((ServerVariableHttpElement) newElement).key =
sub.substring(colon + 1, close);
} else {
- throw new IllegalArgumentException(sub + ": Bad
type: " + type);
+ throw new
IllegalArgumentException(sm.getString("substitution.badType", type, sub));
}
} else {
newElement = new ServerVariableElement();
@@ -252,7 +255,7 @@ public class Substitution {
pos = close + 1;
elements.add(newElement);
} else {
- throw new IllegalArgumentException(sub + ": missing digit
or curly brace.");
+ throw new
IllegalArgumentException(sm.getString("substitution.missingDigit", sub));
}
}
}
diff --git a/java/org/apache/tomcat/websocket/LocalStrings.properties
b/java/org/apache/tomcat/websocket/LocalStrings.properties
index a24e32610d..79b8472007 100644
--- a/java/org/apache/tomcat/websocket/LocalStrings.properties
+++ b/java/org/apache/tomcat/websocket/LocalStrings.properties
@@ -94,6 +94,7 @@ wsRemoteEndpoint.closedDuringMessage=The remainder of the
message will not be se
wsRemoteEndpoint.closedOutputStream=This method may not be called as the
OutputStream has been closed
wsRemoteEndpoint.closedWriter=This method may not be called as the Writer has
been closed
wsRemoteEndpoint.encoderDestoryFailed=Failed to destroy the encoder of type
[{0}]
+wsRemoteEndpoint.encoderError=Encoding error [{0}]
wsRemoteEndpoint.flushOnCloseFailed=Batched messages still enabled after
session has been closed. Unable to flush remaining batched message.
wsRemoteEndpoint.invalidEncoder=The specified encoder of type [{0}] could not
be instantiated
wsRemoteEndpoint.noEncoder=No encoder specified for object of class [{0}]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]