[ 
https://issues.apache.org/jira/browse/LOG4J2-3177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17433567#comment-17433567
 ] 

Richard Eckart de Castilho commented on LOG4J2-3177:
----------------------------------------------------

Beats me. I imported the repo into Eclipse and it doesn't built (as said 
above). 

 !Screenshot 2021-10-25 at 07.39.17.png! 

I imported it into IntelliJ (which I normally do not use). I did so by opening 
the repo folder in IntelliJ and importing the project as a Maven project.
Then I went to the {{LoggerTest}} class and tried running the 
{{debugWithParams}} test method. Then I am greeted with lots of errors as well:

{noformat}
Executing pre-compile tasks...
Loading Ant configuration...
Running Ant tasks...
Running 'before' tasks
Checking sources
Copying resources... [log4j-to-slf4j]
Copying resources... [log4j-slf4j-impl]
Copying resources... [log4j-plugins]
Copying resources... [log4j-core]
Copying resources... [log4j-api]
Cannot build maven-annotations-production:log4j-api because it is included into 
a circular dependency (module 'log4j-api' production, 
maven-annotations-production:log4j-api, module 'log4j-plugins' production, 
maven-annotations-production:log4j-plugins)
Parsing java... [log4j-to-slf4j]
Checking dependencies... [log4j-to-slf4j]
Dependency analysis found 0 affected files
Errors occurred while compiling module 'log4j-to-slf4j'
javac 14.0.1 was used to compile java sources
Finished, saving caches...
Compilation failed: errors: 79; warnings: 0
Executing post-compile tasks...
Loading Ant configuration...
Running Ant tasks...
Synchronizing output directories...
25.10.21, 07:31 - Build completed with 80 errors and 0 warnings in 11 sec, 399 
ms
{noformat}

 !Screenshot 2021-10-25 at 07.36.19.png! 



> Log4jLogger swallows stack trace if throwable is only present in parameter 
> list and not given explicitly
> --------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-3177
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3177
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: SLF4J Bridge
>    Affects Versions: 2.14.1
>            Reporter: Richard Eckart de Castilho
>            Priority: Major
>         Attachments: Screenshot 2021-10-25 at 07.36.19.png, Screenshot 
> 2021-10-25 at 07.39.17.png
>
>
> I have the feeling that this code below from the Log4jLogger class has a bug. 
> I believe the intention of the code is to use the throwable extracted from 
> the message params of the parametrized message if the {{throwable}} parameter 
> was not explicitly provided to the method. But to accomplish this, the 
> condition would need to be {{if (throwable == null)}} in the code snippet 
> below. This seems to cause exception stack traces to be swallowed if the 
> throwable is only provided in the params array but not explicitly in the 
> {{throwable}} argument.
> {code}
> public void log(final Marker marker, final String fqcn, final int level, 
> final String message, final Object[] params, Throwable throwable) {
>   ...
>   msg = new ParameterizedMessage(message, params, throwable);
>   if (throwable != null) { // I am pretty sure the idea was to use a "==" 
> here and not a "!="
>     throwable = msg.getThrowable();
>   }
>   ...
> }
> {code}
> Source (permalink master at reporting time): 
> https://github.com/apache/logging-log4j2/blob/1a62186816bdd05ba420e01f6ee5a2b139a41816/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java#L371-L374
> Source (latest master): 
> https://github.com/apache/logging-log4j2/blob/master/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java#L371-L374
> I hit the issue in Log4J 2.10.0 but checking the GitHub repo, it appears that 
> this code is still present on the current master branch (see permalink above).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to