@@ -279,7 +279,6 @@ private ResultSetColumnMetaData(
279
279
final String className ,
280
280
final int precision ,
281
281
final int scale ) {
282
- super ();
283
282
this .schemaName = schemaName ;
284
283
this .catalogName = catalogName ;
285
284
this .tableName = tableName ;
@@ -752,24 +751,26 @@ private void setFields(final MapMessage<?, ?> mapMessage) throws SQLException {
752
751
final IndexedReadOnlyStringMap map = mapMessage .getIndexedReadOnlyStringMap ();
753
752
final String simpleName = statement .getClass ().getName ();
754
753
int j = 1 ; // JDBC indices start at 1
755
- for (final ColumnMapping mapping : this .factoryData .columnMappings ) {
756
- if (mapping .getLiteralValue () == null ) {
757
- final String source = mapping .getSource ();
758
- final String key = Strings .isEmpty (source ) ? mapping .getName () : source ;
759
- final Object value = map .getValue (key );
760
- if (logger ().isTraceEnabled ()) {
761
- final String valueStr =
762
- value instanceof String ? "\" " + value + "\" " : Objects .toString (value , null );
763
- logger ().trace (
764
- "{} setObject({}, {}) for key '{}' and mapping '{}'" ,
765
- simpleName ,
766
- j ,
767
- valueStr ,
768
- key ,
769
- mapping .getName ());
754
+ if (this .factoryData .columnMappings != null ) {
755
+ for (final ColumnMapping mapping : this .factoryData .columnMappings ) {
756
+ if (mapping .getLiteralValue () == null ) {
757
+ final String source = mapping .getSource ();
758
+ final String key = Strings .isEmpty (source ) ? mapping .getName () : source ;
759
+ final Object value = map .getValue (key );
760
+ if (logger ().isTraceEnabled ()) {
761
+ final String valueStr =
762
+ value instanceof String ? "\" " + value + "\" " : Objects .toString (value , null );
763
+ logger ().trace (
764
+ "{} setObject({}, {}) for key '{}' and mapping '{}'" ,
765
+ simpleName ,
766
+ j ,
767
+ valueStr ,
768
+ key ,
769
+ mapping .getName ());
770
+ }
771
+ setStatementObject (j , mapping .getNameKey (), value );
772
+ j ++;
770
773
}
771
- setStatementObject (j , mapping .getNameKey (), value );
772
- j ++;
773
774
}
774
775
}
775
776
}
@@ -834,11 +835,7 @@ private Object truncate(final String nameKey, Object value) {
834
835
protected void writeInternal (final LogEvent event ) {
835
836
StringReader reader = null ;
836
837
try {
837
- if (!this .isRunning ()
838
- || this .connection == null
839
- || this .connection .isClosed ()
840
- || this .statement == null
841
- || this .statement .isClosed ()) {
838
+ if (!this .isRunning () || isClosed (this .connection ) || isClosed (this .statement )) {
842
839
throw new AppenderLoggingException (
843
840
"Cannot write logging event; JDBC manager not connected to the database, running=%s, [%s])." ,
844
841
isRunning (), fieldsToString ());
@@ -850,27 +847,30 @@ protected void writeInternal(final LogEvent event) {
850
847
setFields ((MapMessage <?, ?>) message );
851
848
}
852
849
int j = 1 ; // JDBC indices start at 1
853
- for (final ColumnMapping mapping : this .factoryData .columnMappings ) {
854
- if (ThreadContextMap .class .isAssignableFrom (mapping .getType ())
855
- || ReadOnlyStringMap .class .isAssignableFrom (mapping .getType ())) {
856
- this .statement .setObject (j ++, event .getContextData ().toMap ());
857
- } else if (ThreadContextStack .class .isAssignableFrom (mapping .getType ())) {
858
- this .statement .setObject (j ++, event .getContextStack ().asList ());
859
- } else if (Date .class .isAssignableFrom (mapping .getType ())) {
860
- this .statement .setObject (
861
- j ++,
862
- DateTypeConverter .fromMillis (
863
- event .getTimeMillis (), mapping .getType ().asSubclass (Date .class )));
864
- } else {
865
- final StringLayout layout = mapping .getLayout ();
866
- if (layout != null ) {
867
- if (Clob .class .isAssignableFrom (mapping .getType ())) {
868
- this .statement .setClob (j ++, new StringReader (layout .toSerializable (event )));
869
- } else if (NClob .class .isAssignableFrom (mapping .getType ())) {
870
- this .statement .setNClob (j ++, new StringReader (layout .toSerializable (event )));
871
- } else {
872
- final Object value = mapping .getTypeConverter ().convert (layout .toSerializable (event ), null );
873
- setStatementObject (j ++, mapping .getNameKey (), value );
850
+ if (this .factoryData .columnMappings != null ) {
851
+ for (final ColumnMapping mapping : this .factoryData .columnMappings ) {
852
+ if (ThreadContextMap .class .isAssignableFrom (mapping .getType ())
853
+ || ReadOnlyStringMap .class .isAssignableFrom (mapping .getType ())) {
854
+ this .statement .setObject (j ++, event .getContextData ().toMap ());
855
+ } else if (ThreadContextStack .class .isAssignableFrom (mapping .getType ())) {
856
+ this .statement .setObject (j ++, event .getContextStack ().asList ());
857
+ } else if (Date .class .isAssignableFrom (mapping .getType ())) {
858
+ this .statement .setObject (
859
+ j ++,
860
+ DateTypeConverter .fromMillis (
861
+ event .getTimeMillis (), mapping .getType ().asSubclass (Date .class )));
862
+ } else {
863
+ final StringLayout layout = mapping .getLayout ();
864
+ if (layout != null ) {
865
+ if (Clob .class .isAssignableFrom (mapping .getType ())) {
866
+ this .statement .setClob (j ++, new StringReader (layout .toSerializable (event )));
867
+ } else if (NClob .class .isAssignableFrom (mapping .getType ())) {
868
+ this .statement .setNClob (j ++, new StringReader (layout .toSerializable (event )));
869
+ } else {
870
+ final Object value =
871
+ mapping .getTypeConverter ().convert (layout .toSerializable (event ), null );
872
+ setStatementObject (j ++, mapping .getNameKey (), value );
873
+ }
874
874
}
875
875
}
876
876
}
0 commit comments