Index: log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/InputStreamLogEventBridge.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/InputStreamLogEventBridge.java (revision cc37ea67085aeb6b15c474a66c7ebb62c8b1e2ec) +++ log4j-core/src/main/java/org/apache/logging/log4j/core/net/server/InputStreamLogEventBridge.java (revision ) @@ -52,47 +52,42 @@ @Override public void logEvents(final InputStream inputStream, final LogEventListener logEventListener) throws IOException { - String workingText = Strings.EMPTY; - try { - // Allocate buffer once - final byte[] buffer = new byte[bufferSize]; + // Allocate buffer once + final byte[] buffer = new byte[bufferSize]; - String textRemains = workingText = Strings.EMPTY; + String textRemains = Strings.EMPTY; - while (true) { - // Process until the stream is EOF. - final int streamReadLength = inputStream.read(buffer); - if (streamReadLength == END) { - // The input stream is EOF - break; - } + while (true) { + // Process until the stream is EOF. + final int streamReadLength = inputStream.read(buffer); + if (streamReadLength == END) { + // The input stream is EOF + break; + } - final String text = workingText = textRemains + new String(buffer, 0, streamReadLength, charset); + final String text = textRemains + new String(buffer, 0, streamReadLength, charset); - int beginIndex = 0; - while (true) { - // Extract and log all XML events in the buffer - final int[] pair = getEventIndices(text, beginIndex); - final int eventStartMarkerIndex = pair[0]; - if (eventStartMarkerIndex < 0) { - // No more events or partial XML only in the buffer. - // Save the unprocessed string part - textRemains = text.substring(beginIndex); - break; - } - final int eventEndMarkerIndex = pair[1]; - if (eventEndMarkerIndex > 0) { - final int eventEndXmlIndex = eventEndMarkerIndex + eventEndMarker.length(); + int beginIndex = 0; + while (true) { + // Extract and log all XML events in the buffer + final int[] pair = getEventIndices(text, beginIndex); + final int eventStartMarkerIndex = pair[0]; + if (eventStartMarkerIndex < 0) { + // No more events or partial XML only in the buffer. + // Save the unprocessed string part + textRemains = text.substring(beginIndex); + break; + } + final int eventEndMarkerIndex = pair[1]; + if (eventEndMarkerIndex > 0) { + final int eventEndXmlIndex = eventEndMarkerIndex + eventEndMarker.length(); - final String textEvent = workingText = text.substring(eventStartMarkerIndex, eventEndXmlIndex); + final String textEvent = text.substring(eventStartMarkerIndex, eventEndXmlIndex); - final LogEvent logEvent = unmarshal(textEvent); - logEventListener.log(logEvent); - beginIndex = eventEndXmlIndex; - } else { - // No more events or partial XML only in the buffer. - // Save the unprocessed string part - textRemains = text.substring(beginIndex); - break; - } - } + final LogEvent logEvent = unmarshal(textEvent); + logEventListener.log(logEvent); + beginIndex = eventEndXmlIndex; + } else { + // No more events or partial XML only in the buffer. + // Save the unprocessed string part + textRemains = text.substring(beginIndex); + break; + } + } - } - } catch (final IOException ex) { - logger.error(workingText, ex); } }