harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Qiu" <sean.xx....@gmail.com>
Subject [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread
Date Thu, 11 Sep 2008 13:05:10 GMT
When we are trying to publish the log information by a Filehandler
into a same rotating set of files,
it will introduce multi-thread defect.

As a result, it will throw such exception[1] while logging.
The root cause is that the destination file may be deleted by other
thread if they are not synchronized.

I have created a jira[3] and attached a workaround for this problem.

I am concerned that the test case of this kind will bring performance
issue for our unit test,
since it is time-consuming and uncertainty.
My question is do we have any testing mechanism for this situation?

[1] Error message
java.util.logging.ErrorManager: WRITE_FAILURE
Error message - Exception occurred when writing to the output stream.
Exception - java.io.IOException: Writer is closed.

[2] Testcase
package logging;

import java.io.File;
import java.util.logging.FileHandler;
import java.util.logging.Logger;

public class FileHandlerTest {

    static class LoggingThread implements Runnable {
        private Logger logger;

        public LoggingThread(Logger logger){
            this.logger = logger;
        }
        public void run() {
            while (true) {
                logger.info("Test");
            }
        }
    }

    public static void main(String[] args) throws Exception {
        Logger logger = Logger.getLogger("test");
        String path = new File(".").getAbsolutePath();
        FileHandler fh = new FileHandler(path, 3000000, 12, false);
        logger.setUseParentHandlers(false);
        logger.addHandler(fh);

        Thread[] threads = new Thread[12];
        for (Thread thread : threads) {
            thread = new Thread(new LoggingThread(logger));
            thread.start();
        }
    }
}

[3] https://issues.apache.org/jira/browse/HARMONY-5981
-- 
Best Regards
Sean, Xiao Xia Qiu

China Software Development Lab, IBM

Mime
View raw message