You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Marc Theisen (JIRA)" <ji...@apache.org> on 2016/08/24 15:30:23 UTC

[jira] [Created] (LOG4NET-524) OnlyOnceErrorHandler might cause StackOverflowError

Marc Theisen created LOG4NET-524:
------------------------------------

             Summary: OnlyOnceErrorHandler might cause StackOverflowError
                 Key: LOG4NET-524
                 URL: https://issues.apache.org/jira/browse/LOG4NET-524
             Project: Log4net
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.2.15
            Reporter: Marc Theisen


I am referring to the solution in https://bz.apache.org/bugzilla/show_bug.cgi?id=42151.

I am suggesting another approach instead of placing a bad hack into com.csfb.fao.carat.util.file.LoggingOutputStream.

Why not change the error() method of class OnlyOnceErrorHandler from

public void error(String message, Exception e, int errorCode, LoggingEvent event) {
  if (e instanceof InterruptedIOException || e instanceof InterruptedException)
  {
    Thread.currentThread().interrupt();
  }
  if(firstTime)
  {
    LogLog.error(message, e);
    firstTime = false;           // yikes, too late if stdout/stderr has been
  }                              // redirected
}

to

public void error(String message, Exception e, int errorCode, LoggingEvent event) {
  if (e instanceof InterruptedIOException || e instanceof InterruptedException)
  {
    Thread.currentThread().interrupt();
  }
  if(firstTime)
  {
    firstTime = false;
    LogLog.error(message, e);
  }
}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)