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 2008/09/11 14:39:45 UTC

[jira] Created: (HARMONY-5981) [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread

[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.0M8


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.


[jira] Closed: (HARMONY-5981) [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
     [ 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.


[jira] Resolved: (HARMONY-5981) [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Qiu resolved HARMONY-5981.
-------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 5.0M8)
                   5.0M11

I've applied the fix at r792077.

> [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.


[jira] Updated: (HARMONY-5981) [classlib][logging] FileHandler may throw exception when logging to the same file by multiple thread

Posted by "Sean Qiu (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sean Qiu updated HARMONY-5981:
------------------------------

    Attachment: HARMONY-5981.diff

> [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.0M8
>
>         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.