You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Gary Gregory (JIRA)" <ji...@apache.org> on 2019/02/27 14:59:00 UTC

[jira] [Resolved] (LOG4J2-2559) NullPointerException in JdbcAppender.createAppender()

     [ https://issues.apache.org/jira/browse/LOG4J2-2559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Gregory resolved LOG4J2-2559.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 2.12.0
                   3.0.0

[~leilei]

Thank you for your report.

Fixed in git master and release-2.x. 

Please try a SNAPSHOT build.

Gary

> NullPointerException in JdbcAppender.createAppender()
> -----------------------------------------------------
>
>                 Key: LOG4J2-2559
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2559
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Appenders, JDBC
>    Affects Versions: 2.10.0, 2.11.1, 2.11.2
>            Reporter: Li Lei
>            Priority: Major
>             Fix For: 3.0.0, 2.12.0
>
>
>  when I build the appender with 'JdbcAppender.createAppender' ,   
> in static class JdbcDatabaseManagerFactory, the method  createManager  has exception that is not catched.  The code as follows:
> {code:java}
> //代码占位符
> StringBuilder sb = (new StringBuilder("insert into ")).append(data.tableName).append(" (");
> JdbcDatabaseManager.appendColumnNames("INSERT", data, sb);
> sb.append(") values (");
> int i = 1;
> ColumnMapping[] arr$ = data.columnMappings;
> int len$ = arr$.length;
> int len$;
> for(len$ = 0; len$ < len$; ++len$) {
>     ColumnMapping mapping = arr$[len$];
>     String mappingName = mapping.getName();
>     if (Strings.isNotEmpty(mapping.getLiteralValue())) {
>         JdbcDatabaseManager.logger().trace("Adding INSERT VALUES literal for ColumnMapping[{}]: {}={} ", i, mappingName, mapping.getLiteralValue());
>         sb.append(mapping.getLiteralValue());
>     } else if (Strings.isNotEmpty(mapping.getParameter())) {
>         JdbcDatabaseManager.logger().trace("Adding INSERT VALUES parameter for ColumnMapping[{}]: {}={} ", i, mappingName, mapping.getParameter());
>         sb.append(mapping.getParameter());
>     } else {
>         JdbcDatabaseManager.logger().trace("Adding INSERT VALUES parameter marker for ColumnMapping[{}]: {}={} ", i, mappingName, '?');
>         sb.append('?');
>     }
>     sb.append(',');
>     ++i;
> }
> {code}
> because I wanto use columnConfig,  and  the variable 'columnMappings' is null,  so there mayby a NullPointerException here.....
>  
> the stack as follow
>  
> {code:java}
> //代码占位符
> Caused by: java.lang.NullPointerException
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.appendColumnNames(JdbcDatabaseManager.java:342) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.access$100(JdbcDatabaseManager.java:62) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager$JdbcDatabaseManagerFactory.createManager(JdbcDatabaseManager.java:113) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager$JdbcDatabaseManagerFactory.createManager(JdbcDatabaseManager.java:104) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.AbstractManager.getManager(AbstractManager.java:113) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.AbstractDatabaseManager.getManager(AbstractDatabaseManager.java:87) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcDatabaseManager.getManager(JdbcDatabaseManager.java:446) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender$Builder.build(JdbcAppender.java:95) ~[log4j-core-2.11.2.jar:2.11.2]
> at org.apache.logging.log4j.core.appender.db.jdbc.JdbcAppender.createAppender(JdbcAppender.java:202) ~[log4j-core-2.11.2.jar:2.11.2]
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)