Author: carnold Date: Mon Feb 15 01:45:20 2010 New Revision: 910151 URL: http://svn.apache.org/viewvc?rev=910151&view=rev Log: Bug 48704: Reverting commits 909868,909918 to defer issue post 1.2.16
Modified: logging/log4j/trunk/src/changes/changes.xml logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/PrudentWriter.java logging/log4j/trunk/tests/src/java/org/apache/log4j/FileAppenderTest.java logging/log4j/trunk/tests/src/java/org/apache/log4j/MinimumTestCase.java logging/log4j/trunk/tests/witness/prudent Modified: logging/log4j/trunk/src/changes/changes.xml URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/src/changes/changes.xml (original) +++ logging/log4j/trunk/src/changes/changes.xml Mon Feb 15 01:45:20 2010 @@ -94,7 +94,6 @@ <action action="add" issue="48187">Typo ("two three goals") in log4j FAQ</action> <action action="fix" issue="48531">Unit tests fail for system dates after 2009-12-31</action> <action action="fix" issue="48604">Download page does not have link to KEYS file</action> - <action action="add" issue="48704">Add purient mode to FileAppender.</action> </release> Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java (original) +++ logging/log4j/trunk/src/main/java/org/apache/log4j/FileAppender.java Mon Feb 15 01:45:20 2010 @@ -65,12 +65,6 @@ * Determines the size of IO buffer be. Default is 8K. */ protected int bufferSize = 8*1024; - - /** - * Determines whether "prudent" mode used. - * @since 1.2.16 - */ - private boolean prudent = false; /** @@ -265,44 +259,6 @@ void setBufferSize(int bufferSize) { this.bufferSize = bufferSize; } - - /** - * Determines if the FileAppender should attempt to use - * java.nio.FileChannel.lock to gain exclusive access - * to the file during write operations. The effectiveness - * and performance impact is JVM and operating system dependent. - * Avoiding concurrent writes to the same file by appenders - * and streams either within or outside a single JVM - * is recommended. - * - * Prudent mode requires JDK 1.4 or later. - * - * @return true if prudent mode is enabled. - * @since 1.2.16 - */ - public final boolean isPrudent() { - return prudent; - } - - /** - * Sets if the FileAppender should attempt to use - * java.nio.FileChannel.lock to gain exclusive access - * to the file during write operations. The effectiveness - * and performance impact is JVM and operating system dependent. - * Avoiding concurrent writes to the same file by appenders - * and streams either within or outside a single JVM - * is recommended. - * - * Prudent mode requires JDK 1.4 or later. - * - * @param value true to enable prudent mode on next call to - * activateOptions or setFile. - * - * @since 1.2.16 - */ - public void setPrudent(final boolean value) { - prudent = value; - } /** <p>Sets and <i>opens</i> the file where the log output will @@ -355,9 +311,7 @@ } } Writer fw = createWriter(ostream); - if (prudent) { - fw = new org.apache.log4j.helpers.PrudentWriter(fw, ostream); - } else if(bufferedIO) { + if(bufferedIO) { fw = new BufferedWriter(fw, bufferSize); } this.setQWForFiles(fw); Modified: logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/PrudentWriter.java URL: http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/PrudentWriter.java?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/PrudentWriter.java (original) +++ logging/log4j/trunk/src/main/java/org/apache/log4j/helpers/PrudentWriter.java Mon Feb 15 01:45:20 2010 @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.log4j.helpers; - -import java.io.FileOutputStream; -import java.io.FilterWriter; -import java.io.IOException; -import java.io.Writer; -import java.nio.channels.FileChannel; -import java.nio.channels.FileLock; - -/** - * An implementation of the "prudent" mode where file locking and - * repositioning are used to minimize the consequences of - * concurrent writes to a log file multiple appenders or - * programs. The effectiveness is operating system and - * Java platform dependent. Avoiding concurrent writing - * of log files is recommended. - * - * @since 1.2.16 - */ -public final class PrudentWriter extends FilterWriter { - /** - * File channel associated with encapsulated writer. - */ - private final FileChannel channel; - - /** - * Constructs a new instance. - * @param out writer to encapsulate, may not be null. - * @param ostream file stream corresponding to writer, may not be null. - */ - public PrudentWriter(final Writer out, final FileOutputStream ostream) { - super(out); - channel = ostream.getChannel(); - } - - /** - * Write string to encapsulated writer within a lock - * on the associated FileChannel. Channel will be - * repositioned to the end of the file if necessary. - */ - public void write(final String str) throws IOException { - FileLock lock = null; - try { - lock = channel.lock(); - long size = channel.size(); - if (size != channel.position()) { - channel.position(size); - } - super.write(str); - super.flush(); - } finally { - if (lock != null) { - lock.release(); - } - } - } - -} Modified: logging/log4j/trunk/tests/src/java/org/apache/log4j/FileAppenderTest.java URL: http://svn.apache.org/viewvc/logging/log4j/trunk/tests/src/java/org/apache/log4j/FileAppenderTest.java?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/tests/src/java/org/apache/log4j/FileAppenderTest.java (original) +++ logging/log4j/trunk/tests/src/java/org/apache/log4j/FileAppenderTest.java Mon Feb 15 01:45:20 2010 @@ -84,17 +84,4 @@ Priority debug = Level.DEBUG; assertTrue(appender.isAsSevereAsThreshold(debug)); } - - /** - * Tests prudent mutator and accessor. - * See bug 48704. - */ - public void testIsPrudent() { - FileAppender appender = new FileAppender(); - assertFalse(appender.isPrudent()); - appender.setPrudent(true); - assertTrue(appender.isPrudent()); - appender.setPrudent(false); - assertFalse(appender.isPrudent()); - } } Modified: logging/log4j/trunk/tests/src/java/org/apache/log4j/MinimumTestCase.java URL: http://svn.apache.org/viewvc/logging/log4j/trunk/tests/src/java/org/apache/log4j/MinimumTestCase.java?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/tests/src/java/org/apache/log4j/MinimumTestCase.java (original) +++ logging/log4j/trunk/tests/src/java/org/apache/log4j/MinimumTestCase.java Mon Feb 15 01:45:20 2010 @@ -79,32 +79,6 @@ assertTrue(Compare.compare(FILTERED, "witness/simple")); } - public void prudent() throws Exception { - try { - java.io.FileOutputStream.class.getMethod("getChannel", (Class[]) null); - } catch(NoSuchMethodException ex) { - // earlier than JDK 1.4 - return; - } - Layout layout = new SimpleLayout(); - FileAppender appender = new FileAppender(); - - appender.setPrudent(true); - appender.setFile("output/prudent"); - appender.setLayout(layout); - appender.activateOptions(); - root.addAppender(appender); - common(); - - Transformer.transform( - "output/prudent", FILTERED, - new Filter[] { new LineNumberFilter(), - new SunReflectFilter(), - new JunitTestRunnerFilter() }); - assertTrue(Compare.compare(FILTERED, "witness/prudent")); - } - - public void ttcc() throws Exception { Layout layout = new TTCCLayout(AbsoluteTimeDateFormat.DATE_AND_TIME_DATE_FORMAT); @@ -226,7 +200,6 @@ TestSuite suite = new TestSuite(); suite.addTest(new MinimumTestCase("simple")); suite.addTest(new MinimumTestCase("ttcc")); - suite.addTest(new MinimumTestCase("prudent")); return suite; } Modified: logging/log4j/trunk/tests/witness/prudent URL: http://svn.apache.org/viewvc/logging/log4j/trunk/tests/witness/prudent?rev=910151&r1=910150&r2=910151&view=diff ============================================================================== --- logging/log4j/trunk/tests/witness/prudent (original) +++ logging/log4j/trunk/tests/witness/prudent Mon Feb 15 01:45:20 2010 @@ -1,42 +0,0 @@ -FATAL - Message 0 -ERROR - Message 1 -FATAL - Message 2 -ERROR - Message 3 -WARN - Message 4 -INFO - Message 5 -FATAL - Message 6 -ERROR - Message 7 -WARN - Message 8 -INFO - Message 9 -FATAL - Message 10 -ERROR - Message 11 -FATAL - Message 12 -ERROR - Message 13 -FATAL - Message 14 -ERROR - Message 15 -WARN - Message 16 -INFO - Message 17 -DEBUG - Message 18 -FATAL - Message 19 -ERROR - Message 20 -WARN - Message 21 -INFO - Message 22 -DEBUG - Message 23 -TRACE - Message 24 -FATAL - Message 25 -ERROR - Message 26 -WARN - Message 27 -INFO - Message 28 -DEBUG - Message 29 -java.lang.Exception: Just testing. - at org.apache.log4j.MinimumTestCase.common(MinimumTestCase.java:XXX) - at org.apache.log4j.MinimumTestCase.prudent(MinimumTestCase.java:XXX) - at junit.framework.TestCase.runTest(TestCase.java:XXX) - at junit.framework.TestCase.runBare(TestCase.java:XXX) - at junit.framework.TestResult$1.protect(TestResult.java:XXX) - at junit.framework.TestResult.runProtected(TestResult.java:XXX) - at junit.framework.TestResult.run(TestResult.java:XXX) - at junit.framework.TestCase.run(TestCase.java:XXX) - at junit.framework.TestSuite.runTest(TestSuite.java:XXX) - at junit.framework.TestSuite.run(TestSuite.java:XXX) -INFO - Messages should bear numbers 0 through 29. --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org