You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Sean Qiu (JIRA)" <ji...@apache.org> on 2009/07/08 11:14:14 UTC
[jira] Closed: (HARMONY-5981) [classlib][logging] FileHandler may
throw exception when logging to the same file by multiple thread
[ https://issues.apache.org/jira/browse/HARMONY-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sean Qiu closed HARMONY-5981.
-----------------------------
Close this pending issue.
> [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread
> ----------------------------------------------------------------------------------------------------
>
> Key: HARMONY-5981
> URL: https://issues.apache.org/jira/browse/HARMONY-5981
> Project: Harmony
> Issue Type: Bug
> Components: Classlib
> Affects Versions: 5.0M7
> Reporter: Sean Qiu
> Assignee: Sean Qiu
> Fix For: 5.0M11
>
> Attachments: HARMONY-5981.diff
>
>
> When we are trying to log by a Filehandler to publish the information into a same file,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.
> Below testcase[2] can reproduce the issue.
> [1]
> java.util.logging.ErrorManager: WRITE_FAILURE
> Error message - Exception occurred when writing to the output stream.
> Exception - java.io.IOException: Writer is closed.
> [2]
> 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();
> }
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.