[JIRA] Created: (LBCORE-158) Interleaved lines in sysout due to synchronization issue with System.out

Interleaved lines in sysout due to synchronization issue with System.out ------------------------------------------------------------------------ Key: LBCORE-158 URL: http://jira.qos.ch/browse/LBCORE-158 Project: logback-core Issue Type: Bug Components: Joran Affects Versions: 0.9.20, 0.9.21, 0.9.22 Environment: java 1.6.0 on Windows XP Reporter: David Roussel Assignee: Logback dev list As described in http://stackoverflow.com/questions/2974857/log-back-and-thirdparty-writing-t... I've been having problems with both logback and another library both writing to System.out. Lines from the other library always appear whole, but lines from logback are sometimes broken in two by lines from the other library. Investigating how writing to console logging works in logback I can see the root of the problem in in ConsileTarget.java. The problem seems to be that although PrintStream.write(byte buf[], int off, int len) is synchronized, I can see in ch.qos.logback.core.joran.spi.ConsoleTarget that System.out.write(int b) is the only write method called. So in between logback outputting each byte, the thirdparty library is managing to write a whole string to the stdout. Patch provided: http://gist.github.com/434516 Please apply to an up coming release. I have tested the patch in my application and can confirm that the interleaving of lines is fixed and no other side effects were observed. David -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira

[ http://jira.qos.ch/browse/LBCORE-158?page=com.atlassian.jira.plugin.system.i... ] David Roussel commented on LBCORE-158: -------------------------------------- This change has been included in logback 0.9.22.
Interleaved lines in sysout due to synchronization issue with System.out ------------------------------------------------------------------------
Key: LBCORE-158 URL: http://jira.qos.ch/browse/LBCORE-158 Project: logback-core Issue Type: Bug Components: Joran Affects Versions: 0.9.20, 0.9.21, 0.9.22 Environment: java 1.6.0 on Windows XP Reporter: David Roussel Assignee: Logback dev list
As described in http://stackoverflow.com/questions/2974857/log-back-and-thirdparty-writing-t... I've been having problems with both logback and another library both writing to System.out. Lines from the other library always appear whole, but lines from logback are sometimes broken in two by lines from the other library. Investigating how writing to console logging works in logback I can see the root of the problem in in ConsileTarget.java. The problem seems to be that although PrintStream.write(byte buf[], int off, int len) is synchronized, I can see in ch.qos.logback.core.joran.spi.ConsoleTarget that System.out.write(int b) is the only write method called. So in between logback outputting each byte, the thirdparty library is managing to write a whole string to the stdout. Patch provided: http://gist.github.com/434516 Please apply to an up coming release. I have tested the patch in my application and can confirm that the interleaving of lines is fixed and no other side effects were observed. David
-- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
participants (1)
-
David Roussel (JIRA)