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
The following commit(s) were added to refs/heads/7.0.x by this push: new 00aef66 Align more closely with 8.5.x 00aef66 is described below commit 00aef66ae661d5650e7f09e632aadbcd60784282 Author: Mark Thomas <ma...@apache.org> AuthorDate: Thu Jan 16 19:35:31 2020 +0000 Align more closely with 8.5.x --- java/org/apache/juli/AsyncFileHandler.java | 36 +++++++++++++--------- java/org/apache/juli/ClassLoaderLogManager.java | 15 +++++---- java/org/apache/juli/DateFormatCache.java | 7 ++--- java/org/apache/juli/FileHandler.java | 24 +++++++++------ java/org/apache/juli/JdkLoggerFormatter.java | 4 --- java/org/apache/juli/logging/DirectJDKLog.java | 30 ++++++------------ .../juli/logging/LogConfigurationException.java | 26 ++-------------- java/org/apache/juli/logging/package.html | 2 +- 8 files changed, 59 insertions(+), 85 deletions(-) diff --git a/java/org/apache/juli/AsyncFileHandler.java b/java/org/apache/juli/AsyncFileHandler.java index 44aa826..8429d2f 100644 --- a/java/org/apache/juli/AsyncFileHandler.java +++ b/java/org/apache/juli/AsyncFileHandler.java @@ -43,16 +43,27 @@ import java.util.logging.LogRecord; */ public class AsyncFileHandler extends FileHandler { - public static final int OVERFLOW_DROP_LAST = 1; - public static final int OVERFLOW_DROP_FIRST = 2; - public static final int OVERFLOW_DROP_FLUSH = 3; + public static final int OVERFLOW_DROP_LAST = 1; + public static final int OVERFLOW_DROP_FIRST = 2; + public static final int OVERFLOW_DROP_FLUSH = 3; public static final int OVERFLOW_DROP_CURRENT = 4; - public static final int OVERFLOW_DROP_TYPE = Integer.parseInt(System.getProperty("org.apache.juli.AsyncOverflowDropType", "1")); - public static final int DEFAULT_MAX_RECORDS = Integer.parseInt(System.getProperty("org.apache.juli.AsyncMaxRecordCount", "10000")); - public static final int LOGGER_SLEEP_TIME = Integer.parseInt(System.getProperty("org.apache.juli.AsyncLoggerPollInterval", "1000")); + public static final int DEFAULT_OVERFLOW_DROP_TYPE = 1; + public static final int DEFAULT_MAX_RECORDS = 10000; + public static final int DEFAULT_LOGGER_SLEEP_TIME = 1000; - protected static LinkedBlockingDeque<LogEntry> queue = new LinkedBlockingDeque<LogEntry>(DEFAULT_MAX_RECORDS); + public static final int OVERFLOW_DROP_TYPE = Integer.parseInt( + System.getProperty("org.apache.juli.AsyncOverflowDropType", + Integer.toString(DEFAULT_OVERFLOW_DROP_TYPE))); + public static final int MAX_RECORDS = Integer.parseInt( + System.getProperty("org.apache.juli.AsyncMaxRecordCount", + Integer.toString(DEFAULT_MAX_RECORDS))); + public static final int LOGGER_SLEEP_TIME = Integer.parseInt( + System.getProperty("org.apache.juli.AsyncLoggerPollInterval", + Integer.toString(DEFAULT_LOGGER_SLEEP_TIME))); + + protected static LinkedBlockingDeque<LogEntry> queue = + new LinkedBlockingDeque<LogEntry>(DEFAULT_MAX_RECORDS); protected static LoggerThread logger = new LoggerThread(); @@ -137,7 +148,6 @@ public class AsyncFileHandler extends FileHandler { } protected static class LoggerThread extends Thread { - protected boolean run = true; public LoggerThread() { this.setDaemon(true); this.setName("AsyncFileHandlerWriter-" + System.identityHashCode(this)); @@ -145,7 +155,7 @@ public class AsyncFileHandler extends FileHandler { @Override public void run() { - while (run) { + while (true) { try { LogEntry entry = queue.poll(LOGGER_SLEEP_TIME, TimeUnit.MILLISECONDS); if (entry != null) { @@ -156,13 +166,13 @@ public class AsyncFileHandler extends FileHandler { } catch (Exception x) { x.printStackTrace(); } - }//while + } } } protected static class LogEntry { - private LogRecord record; - private AsyncFileHandler handler; + private final LogRecord record; + private final AsyncFileHandler handler; public LogEntry(LogRecord record, AsyncFileHandler handler) { super(); this.record = record; @@ -177,7 +187,5 @@ public class AsyncFileHandler extends FileHandler { return true; } } - } - } diff --git a/java/org/apache/juli/ClassLoaderLogManager.java b/java/org/apache/juli/ClassLoaderLogManager.java index 8cb7d07..e4c6886 100644 --- a/java/org/apache/juli/ClassLoaderLogManager.java +++ b/java/org/apache/juli/ClassLoaderLogManager.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.juli; import java.io.File; @@ -328,7 +327,6 @@ public class ClassLoaderLogManager extends LogManager { return result; } - @Override public void readConfiguration() throws IOException, SecurityException { @@ -411,6 +409,7 @@ public class ClassLoaderLogManager extends LogManager { * * @param classLoader The classloader for which we will retrieve or build the * configuration + * @return the log configuration */ protected synchronized ClassLoaderLogInfo getClassLoaderInfo(ClassLoader classLoader) { @@ -440,8 +439,8 @@ public class ClassLoaderLogManager extends LogManager { /** * Read configuration for the specified classloader. * - * @param classLoader - * @throws IOException Error + * @param classLoader The classloader + * @throws IOException Error reading configuration */ protected synchronized void readConfiguration(ClassLoader classLoader) throws IOException { @@ -591,8 +590,8 @@ public class ClassLoaderLogManager extends LogManager { } try { this.prefix.set(prefix); - Handler handler = - (Handler) classLoader.loadClass(handlerClassName).newInstance(); + Handler handler = (Handler) classLoader.loadClass( + handlerClassName).getConstructor().newInstance(); // The specification strongly implies all configuration should be done // during the creation of the handler object. // This includes setting level, filter, formatter and encoding. @@ -616,8 +615,8 @@ public class ClassLoaderLogManager extends LogManager { /** * Set parent child relationship between the two specified loggers. * - * @param logger - * @param parent + * @param logger The logger + * @param parent The parent logger */ protected static void doSetParentLogger(final Logger logger, final Logger parent) { diff --git a/java/org/apache/juli/DateFormatCache.java b/java/org/apache/juli/DateFormatCache.java index 6f1e373..a311472 100644 --- a/java/org/apache/juli/DateFormatCache.java +++ b/java/org/apache/juli/DateFormatCache.java @@ -49,9 +49,9 @@ public class DateFormatCache { private final String format; /* Number of cached entries */ - private int cacheSize = 0; + private final int cacheSize; - private Cache cache; + private final Cache cache; /** * Replace the millisecond formatting character 'S' by @@ -122,9 +122,6 @@ public class DateFormatCache { private Cache(Cache parent) { cache = new String[cacheSize]; - for (int i = 0; i < cacheSize; i++) { - cache[i] = null; - } formatter = new SimpleDateFormat(format, Locale.US); formatter.setTimeZone(TimeZone.getDefault()); this.parent = parent; diff --git a/java/org/apache/juli/FileHandler.java b/java/org/apache/juli/FileHandler.java index fde18a2..3b4c06d 100644 --- a/java/org/apache/juli/FileHandler.java +++ b/java/org/apache/juli/FileHandler.java @@ -94,20 +94,25 @@ import java.util.regex.Pattern; * </ul> */ public class FileHandler extends Handler { + public static final int DEFAULT_MAX_DAYS = -1; private static final ExecutorService DELETE_FILES_SERVICE = Executors.newSingleThreadExecutor(new ThreadFactory() { + private static final String NAME_PREFIX = "FileHandlerLogFilesCleaner-"; private final boolean isSecurityEnabled; private final ThreadGroup group; private final AtomicInteger threadNumber = new AtomicInteger(1); - private final String namePrefix = "FileHandlerLogFilesCleaner-"; { SecurityManager s = System.getSecurityManager(); - this.isSecurityEnabled = s != null; - this.group = isSecurityEnabled ? s.getThreadGroup() - : Thread.currentThread().getThreadGroup(); + if (s == null) { + this.isSecurityEnabled = false; + this.group = Thread.currentThread().getThreadGroup(); + } else { + this.isSecurityEnabled = true; + this.group = s.getThreadGroup(); + } } @Override @@ -130,7 +135,7 @@ public class FileHandler extends Handler { .setContextClassLoader(getClass().getClassLoader()); } Thread t = new Thread(group, r, - namePrefix + threadNumber.getAndIncrement()); + NAME_PREFIX + threadNumber.getAndIncrement()); t.setDaemon(true); return t; } finally { @@ -365,8 +370,7 @@ public class FileHandler extends Handler { private void configure() { Timestamp ts = new Timestamp(System.currentTimeMillis()); - String tsString = ts.toString().substring(0, 19); - date = tsString.substring(0, 10); + date = ts.toString().substring(0, 10); String className = this.getClass().getName(); //allow classes to override @@ -410,6 +414,7 @@ public class FileHandler extends Handler { } catch (NumberFormatException ignore) { //no op } + // Get encoding for the logging file String encoding = getProperty(className + ".encoding", null); if (encoding != null && encoding.length() > 0) { @@ -427,7 +432,7 @@ public class FileHandler extends Handler { String filterName = getProperty(className + ".filter", null); if (filterName != null) { try { - setFilter((Filter) cl.loadClass(filterName).newInstance()); + setFilter((Filter) cl.loadClass(filterName).getConstructor().newInstance()); } catch (Exception e) { // Ignore } @@ -437,7 +442,8 @@ public class FileHandler extends Handler { String formatterName = getProperty(className + ".formatter", null); if (formatterName != null) { try { - setFormatter((Formatter) cl.loadClass(formatterName).newInstance()); + setFormatter((Formatter) cl.loadClass( + formatterName).getConstructor().newInstance()); } catch (Exception e) { // Ignore and fallback to defaults setFormatter(new SimpleFormatter()); diff --git a/java/org/apache/juli/JdkLoggerFormatter.java b/java/org/apache/juli/JdkLoggerFormatter.java index e689979..48f61ac 100644 --- a/java/org/apache/juli/JdkLoggerFormatter.java +++ b/java/org/apache/juli/JdkLoggerFormatter.java @@ -14,14 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.juli; import java.util.logging.Formatter; import java.util.logging.LogRecord; - - /** * A more compact formatter. * @@ -109,5 +106,4 @@ public class JdkLoggerFormatter extends Formatter { // Print to the appropriate destination return buf.toString(); } - } diff --git a/java/org/apache/juli/logging/DirectJDKLog.java b/java/org/apache/juli/logging/DirectJDKLog.java index 0b407c1..5fd6aba 100644 --- a/java/org/apache/juli/logging/DirectJDKLog.java +++ b/java/org/apache/juli/logging/DirectJDKLog.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.juli.logging; import java.util.logging.ConsoleHandler; @@ -24,43 +23,34 @@ import java.util.logging.Level; import java.util.logging.Logger; /** - * Hardcoded java.util.logging commons-logging implementation. - * - * In addition, it curr - * + * Hard-coded java.util.logging commons-logging implementation. */ class DirectJDKLog implements Log { // no reason to hide this - but good reasons to not hide public Logger logger; - /** Alternate config reader and console format - */ + // Alternate config reader and console format private static final String SIMPLE_FMT="java.util.logging.SimpleFormatter"; - private static final String SIMPLE_CFG="org.apache.juli.JdkLoggerConfig"; //doesn't exist private static final String FORMATTER="org.apache.juli.formatter"; static { - if( System.getProperty("java.util.logging.config.class") ==null && - System.getProperty("java.util.logging.config.file") ==null ) { + if (System.getProperty("java.util.logging.config.class") == null && + System.getProperty("java.util.logging.config.file") == null) { // default configuration - it sucks. Let's override at least the // formatter for the console try { - Class.forName(SIMPLE_CFG).newInstance(); - } catch( Throwable t ) { - } - try { - Formatter fmt=(Formatter)Class.forName(System.getProperty(FORMATTER, SIMPLE_FMT)).newInstance(); + Formatter fmt= (Formatter) Class.forName(System.getProperty( + FORMATTER, SIMPLE_FMT)).getConstructor().newInstance(); // it is also possible that the user modified jre/lib/logging.properties - // but that's really stupid in most cases Logger root=Logger.getLogger(""); - Handler handlers[]=root.getHandlers(); - for( int i=0; i< handlers.length; i++ ) { + for (Handler handler : root.getHandlers()) { // I only care about console - that's what's used in default config anyway - if( handlers[i] instanceof ConsoleHandler ) { - handlers[i].setFormatter(fmt); + if (handler instanceof ConsoleHandler) { + handler.setFormatter(fmt); } } - } catch( Throwable t ) { + } catch (Throwable t) { // maybe it wasn't included - the ugly default will be used. } diff --git a/java/org/apache/juli/logging/LogConfigurationException.java b/java/org/apache/juli/logging/LogConfigurationException.java index af418f0..50301ee 100644 --- a/java/org/apache/juli/logging/LogConfigurationException.java +++ b/java/org/apache/juli/logging/LogConfigurationException.java @@ -56,7 +56,7 @@ public class LogConfigurationException extends RuntimeException { * @param cause The underlying cause */ public LogConfigurationException(Throwable cause) { - this( ((cause == null) ? null : cause.toString()), cause); + super(cause); } @@ -67,28 +67,6 @@ public class LogConfigurationException extends RuntimeException { * @param cause The underlying cause */ public LogConfigurationException(String message, Throwable cause) { - - super(message); - this.cause = cause; // Two-argument version requires JDK 1.4 or later - - } - - - /** - * The underlying cause of this exception. - */ - protected Throwable cause = null; - - - /** - * Return the underlying cause of this exception (if any). - */ - @Override - public Throwable getCause() { - - return (this.cause); - + super(message, cause); } - - } diff --git a/java/org/apache/juli/logging/package.html b/java/org/apache/juli/logging/package.html index 30afa40..99ab816 100644 --- a/java/org/apache/juli/logging/package.html +++ b/java/org/apache/juli/logging/package.html @@ -32,6 +32,6 @@ logging and use commons-logging-jdk.jar.</p> </p> <p>This package generates commons-logging-jdk14.jar - i.e. the java.util implementation -of commons-logging api.<p> +of commons-logging api.</p> </body> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org