[
https://issues.apache.org/jira/browse/LOG4J2-1068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14622834#comment-14622834
]
Hüseyin Kartal commented on LOG4J2-1068:
----------------------------------------
I got more. The applied patch seems not enough to fix.
Please ReOpen.
Below a stackTrace for better understanding.
As you can see i use also a Patched version of the
ExtendedThrowablePatternConverter.
In the following processing the ThrowableProxy try to access
this.causeProxy.getThrowable() which is also null because its transient.
2015-07-10 21:01:59,395 ERROR An exception occurred processing Appender OUT
java.lang.NullPointerException
at
org.apache.logging.log4j.core.impl.ThrowableProxy.formatCause(ThrowableProxy.java:190)
at
org.apache.logging.log4j.core.impl.ThrowableProxy.getExtendedStackTraceAsString(ThrowableProxy.java:347)
-> at
org.apache.logging.log4j.extending.PatchedExtendedThrowablePatternConverter.format(PatchedExtendedThrowablePatternConverter.java:54)
at
org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:36)
at
org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:196)
at
org.apache.logging.log4j.core.layout.PatternLayout.toSerializable(PatternLayout.java:55)
at
org.apache.logging.log4j.core.layout.AbstractStringLayout.toByteArray(AbstractStringLayout.java:71)
at
org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:108)
at
org.apache.logging.log4j.core.appender.RollingRandomAccessFileAppender.append(RollingRandomAccessFileAppender.java:98)
at
org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:99)
at
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.callAppenders(AsyncAppender.java:290)
at
org.apache.logging.log4j.core.appender.AsyncAppender$AsyncThread.run(AsyncAppender.java:241)
For Unit test log the following Exception to a SocketAppender. Maybe u can use
Andy's test case.
Configuration of my the SocketAppender
<Appender type="Socket" name="OUT-SOCKET" host="${sys:log.host}"
port="${sys:log.port}" protocol="${sys:log.protocol}">
<Layout type="JsonLayout" compact="true" eventEol="true"
complete="true" properties="true" />
</Appender>
@Test
public final void testThrowableProxyOnServer() {
Logger logger = LogManager.getLogger();
IllegalArgumentException cause = new IllegalArgumentException();
cause.setStackTrace(Thread.currentThread().getStackTrace());
IllegalArgumentException exception = new
IllegalArgumentException(cause.getMessage(), cause);
exception.setStackTrace(Thread.currentThread().getStackTrace());
logger.catching(exception);
}
I sorry, but i have no patch for this issue, but i assume ThrowableProxy should
not use Throwable instances direct at all.
Hüseyin
> Exceptions not logged when using TcpSocketServer + SerializedLayout
> -------------------------------------------------------------------
>
> Key: LOG4J2-1068
> URL: https://issues.apache.org/jira/browse/LOG4J2-1068
> Project: Log4j 2
> Issue Type: Bug
> Components: Pattern Converters
> Affects Versions: 2.1, 2.2, 2.3
> Reporter: Andy McMullan
> Fix For: 2.4
>
> Attachments: patch.txt
>
>
> This issue was reported in BugZilla bug 57036:
> https://bz.apache.org/bugzilla/show_bug.cgi?id=57036. The description there
> covers the problem well:
> "... in the Method format(final LogEvent event, final StringBuilder
> toAppendTo) in ExtendedThrowablePatternConverter writing the Stacktrace in
> the logfile on condition that the Throwable throwable from Log4jLogEvent is
> not null, but on the Socketserver the Throwable throwable is always null,
> because it's defined as transient."
> I couldn't find the bug here in Jira, so I'm reporting again in case it has
> been lost in the migration.
> It's a major problem with a simple fix, so seems like it should be a high
> priority.
> I've worked around it for now by plugging in my own
> ExtendedThrowablePatternConverter. My fix is to change this line:
> if (throwable != null && options.anyLines() {
> to this:
> if ((throwable != null || proxy != null) && options.anyLines()) {
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]