You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2023/01/19 17:04:40 UTC
[tomcat] branch main updated: Use a switch now SecurityManager constraint is not a concern
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new 19bd0ef48e Use a switch now SecurityManager constraint is not a concern
19bd0ef48e is described below
commit 19bd0ef48eae6a417adc9f972f42d569851a2c08
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Jan 19 17:00:44 2023 +0000
Use a switch now SecurityManager constraint is not a concern
---
.../catalina/valves/AbstractAccessLogValve.java | 77 ++++++++++------------
1 file changed, 36 insertions(+), 41 deletions(-)
diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
index 879da82d5d..73852569fa 100644
--- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java
+++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java
@@ -1140,58 +1140,53 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access
}
@Override
- public void addElement(CharArrayWriter buf, Date date, Request request,
- Response response, long time) {
+ public void addElement(CharArrayWriter buf, Date date, Request request, Response response, long time) {
long timestamp = date.getTime();
long frac;
if (!usesBegin) {
timestamp += TimeUnit.NANOSECONDS.toMillis(time);
}
- /* Implementation note: This is deliberately not implemented using
- * switch. If a switch is used the compiler (at least the Oracle
- * one) will use a synthetic class to implement the switch. The
- * problem is that this class needs to be pre-loaded when using a
- * SecurityManager and the name of that class will depend on any
- * anonymous inner classes and any other synthetic classes. As such
- * the name is not constant and keeping the pre-loading up to date
- * as the name changes is error prone.
- */
- if (type == FormatType.CLF) {
- buf.append(localDateCache.get().getFormat(timestamp));
- } else if (type == FormatType.SEC) {
- buf.append(Long.toString(timestamp / 1000));
- } else if (type == FormatType.MSEC) {
- buf.append(Long.toString(timestamp));
- } else if (type == FormatType.MSEC_FRAC) {
- frac = timestamp % 1000;
- if (frac < 100) {
- if (frac < 10) {
- buf.append('0');
- buf.append('0');
- } else {
- buf.append('0');
- }
- }
- buf.append(Long.toString(frac));
- } else {
- // FormatType.SDF
- String temp = localDateCache.get().getFormat(format, locale, timestamp);
- if (usesMsecs) {
+ switch (type) {
+ case CLF:
+ buf.append(localDateCache.get().getFormat(timestamp));
+ break;
+ case SEC:
+ buf.append(Long.toString(timestamp / 1000));
+ break;
+ case MSEC:
+ buf.append(Long.toString(timestamp));
+ break;
+ case MSEC_FRAC:
frac = timestamp % 1000;
- StringBuilder tripleMsec = new StringBuilder(4);
if (frac < 100) {
if (frac < 10) {
- tripleMsec.append('0');
- tripleMsec.append('0');
+ buf.append('0');
+ buf.append('0');
} else {
- tripleMsec.append('0');
+ buf.append('0');
}
}
- tripleMsec.append(frac);
- temp = temp.replace(tripleMsecPattern, tripleMsec);
- temp = temp.replace(msecPattern, Long.toString(frac));
- }
- buf.append(temp);
+ buf.append(Long.toString(frac));
+ break;
+ case SDF:
+ String temp = localDateCache.get().getFormat(format, locale, timestamp);
+ if (usesMsecs) {
+ frac = timestamp % 1000;
+ StringBuilder tripleMsec = new StringBuilder(4);
+ if (frac < 100) {
+ if (frac < 10) {
+ tripleMsec.append('0');
+ tripleMsec.append('0');
+ } else {
+ tripleMsec.append('0');
+ }
+ }
+ tripleMsec.append(frac);
+ temp = temp.replace(tripleMsecPattern, tripleMsec);
+ temp = temp.replace(msecPattern, Long.toString(frac));
+ }
+ buf.append(temp);
+ break;
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org