public abstract class ch.qos.logback.core.db.DBAppenderBase<E> extends ch.qos.logback.core.UnsynchronizedAppenderBase<E>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: ch.qos.logback.core.db.DBAppenderBase
super_class: ch.qos.logback.core.UnsynchronizedAppenderBase
{
protected ch.qos.logback.core.db.ConnectionSource connectionSource;
descriptor: Lch/qos/logback/core/db/ConnectionSource;
flags: (0x0004) ACC_PROTECTED
protected boolean cnxSupportsGetGeneratedKeys;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected boolean cnxSupportsBatchUpdates;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected ch.qos.logback.core.db.dialect.SQLDialect sqlDialect;
descriptor: Lch/qos/logback/core/db/dialect/SQLDialect;
flags: (0x0004) ACC_PROTECTED
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial ch.qos.logback.core.UnsynchronizedAppenderBase.<init>:()V
1: aload 0
iconst_0
putfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
2: aload 0
iconst_0
putfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsBatchUpdates:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
protected abstract java.lang.reflect.Method getGeneratedKeysMethod();
descriptor: ()Ljava/lang/reflect/Method;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
protected abstract java.lang.String getInsertSQL();
descriptor: ()Ljava/lang/String;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
public void start();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "DBAppender cannot function without a connection source"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
invokeinterface ch.qos.logback.core.db.ConnectionSource.getSQLDialectCode:()Lch/qos/logback/core/db/dialect/SQLDialectCode;
invokestatic ch.qos.logback.core.db.dialect.DBUtil.getDialectFromCode:(Lch/qos/logback/core/db/dialect/SQLDialectCode;)Lch/qos/logback/core/db/dialect/SQLDialect;
putfield ch.qos.logback.core.db.DBAppenderBase.sqlDialect:Lch/qos/logback/core/db/dialect/SQLDialect;
3: aload 0
invokevirtual ch.qos.logback.core.db.DBAppenderBase.getGeneratedKeysMethod:()Ljava/lang/reflect/Method;
ifnull 6
4: aload 0
aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
invokeinterface ch.qos.logback.core.db.ConnectionSource.supportsGetGeneratedKeys:()Z
putfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
7: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
invokeinterface ch.qos.logback.core.db.ConnectionSource.supportsBatchUpdates:()Z
putfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsBatchUpdates:Z
8: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
ifne 12
aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.sqlDialect:Lch/qos/logback/core/db/dialect/SQLDialect;
ifnonnull 12
9: new java.lang.IllegalStateException
dup
10: ldc "DBAppender cannot function if the JDBC driver does not support getGeneratedKeys method *and* without a specific SQL dialect"
11: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
aload 0
invokespecial ch.qos.logback.core.UnsynchronizedAppenderBase.start:()V
13: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
public ch.qos.logback.core.db.ConnectionSource getConnectionSource();
descriptor: ()Lch/qos/logback/core/db/ConnectionSource;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
public void setConnectionSource(ch.qos.logback.core.db.ConnectionSource);
descriptor: (Lch/qos/logback/core/db/ConnectionSource;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
0 2 1 connectionSource Lch/qos/logback/core/db/ConnectionSource;
MethodParameters:
Name Flags
connectionSource
public void append();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
invokeinterface ch.qos.logback.core.db.ConnectionSource.getConnection:()Ljava/sql/Connection;
astore 2
3: aload 2
iconst_0
invokeinterface java.sql.Connection.setAutoCommit:(Z)V
4: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
ifeq 10
5: ldc "EVENT_ID"
astore 4
start local 4 6: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.connectionSource:Lch/qos/logback/core/db/ConnectionSource;
invokeinterface ch.qos.logback.core.db.ConnectionSource.getSQLDialectCode:()Lch/qos/logback/core/db/dialect/SQLDialectCode;
getstatic ch.qos.logback.core.db.dialect.SQLDialectCode.POSTGRES_DIALECT:Lch/qos/logback/core/db/dialect/SQLDialectCode;
if_acmpne 8
7: aload 4
invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
astore 4
8: StackMap locals: java.sql.Connection java.sql.PreparedStatement java.lang.String
StackMap stack:
aload 2
aload 0
invokevirtual ch.qos.logback.core.db.DBAppenderBase.getInsertSQL:()Ljava/lang/String;
iconst_1
anewarray java.lang.String
dup
iconst_0
aload 4
aastore
invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/PreparedStatement;
astore 3
end local 4 9: goto 11
10: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual ch.qos.logback.core.db.DBAppenderBase.getInsertSQL:()Ljava/lang/String;
invokeinterface java.sql.Connection.prepareStatement:(Ljava/lang/String;)Ljava/sql/PreparedStatement;
astore 3
11: StackMap locals:
StackMap stack:
aload 0
dup
astore 6
monitorenter
12: aload 0
aload 1
aload 2
aload 3
invokevirtual ch.qos.logback.core.db.DBAppenderBase.subAppend:(Ljava/lang/Object;Ljava/sql/Connection;Ljava/sql/PreparedStatement;)V
13: aload 0
aload 3
aload 2
invokevirtual ch.qos.logback.core.db.DBAppenderBase.selectEventId:(Ljava/sql/PreparedStatement;Ljava/sql/Connection;)J
lstore 4
start local 4 14: aload 6
monitorexit
15: goto 18
end local 4 StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.lang.Object java.sql.Connection java.sql.PreparedStatement top top ch.qos.logback.core.db.DBAppenderBase
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
start local 4 18: StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.lang.Object java.sql.Connection java.sql.PreparedStatement long
StackMap stack:
aload 0
aload 1
aload 2
lload 4
invokevirtual ch.qos.logback.core.db.DBAppenderBase.secondarySubAppend:(Ljava/lang/Object;Ljava/sql/Connection;J)V
19: aload 2
invokeinterface java.sql.Connection.commit:()V
end local 4 20: goto 29
StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.lang.Object java.sql.Connection java.sql.PreparedStatement
StackMap stack: java.lang.Throwable
21: astore 4
start local 4 22: aload 0
ldc "problem appending event"
aload 4
invokevirtual ch.qos.logback.core.db.DBAppenderBase.addError:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 4 23: aload 3
invokestatic ch.qos.logback.core.db.DBHelper.closeStatement:(Ljava/sql/Statement;)V
24: aload 2
invokestatic ch.qos.logback.core.db.DBHelper.closeConnection:(Ljava/sql/Connection;)V
goto 31
25: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
26: aload 3
invokestatic ch.qos.logback.core.db.DBHelper.closeStatement:(Ljava/sql/Statement;)V
27: aload 2
invokestatic ch.qos.logback.core.db.DBHelper.closeConnection:(Ljava/sql/Connection;)V
28: aload 7
athrow
29: StackMap locals:
StackMap stack:
aload 3
invokestatic ch.qos.logback.core.db.DBHelper.closeStatement:(Ljava/sql/Statement;)V
30: aload 2
invokestatic ch.qos.logback.core.db.DBHelper.closeConnection:(Ljava/sql/Connection;)V
31: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
0 32 1 eventObject TE;
1 32 2 connection Ljava/sql/Connection;
2 32 3 insertStatement Ljava/sql/PreparedStatement;
6 9 4 EVENT_ID_COL_NAME Ljava/lang/String;
14 16 4 eventId J
18 20 4 eventId J
22 23 4 sqle Ljava/lang/Throwable;
Exception table:
from to target type
12 15 16 any
16 17 16 any
2 20 21 Class java.lang.Throwable
2 23 25 any
Signature: (TE;)V
MethodParameters:
Name Flags
eventObject
protected abstract void subAppend(E, java.sql.Connection, java.sql.PreparedStatement);
descriptor: (Ljava/lang/Object;Ljava/sql/Connection;Ljava/sql/PreparedStatement;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Throwable
Signature: (TE;Ljava/sql/Connection;Ljava/sql/PreparedStatement;)V
MethodParameters:
Name Flags
eventObject
connection
statement
protected abstract void secondarySubAppend(E, java.sql.Connection, );
descriptor: (Ljava/lang/Object;Ljava/sql/Connection;J)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Throwable
Signature: (TE;Ljava/sql/Connection;J)V
MethodParameters:
Name Flags
eventObject
connection
eventId
protected long selectEventId(java.sql.PreparedStatement, java.sql.Connection);
descriptor: (Ljava/sql/PreparedStatement;Ljava/sql/Connection;)J
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.cnxSupportsGetGeneratedKeys:Z
ifeq 14
4: aload 0
invokevirtual ch.qos.logback.core.db.DBAppenderBase.getGeneratedKeysMethod:()Ljava/lang/reflect/Method;
aload 1
aconst_null
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.sql.ResultSet
astore 3
5: iconst_1
istore 5
6: goto 14
StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.sql.PreparedStatement java.sql.Connection java.sql.ResultSet java.sql.Statement int
StackMap stack: java.lang.reflect.InvocationTargetException
7: astore 6
start local 6 8: aload 6
invokevirtual java.lang.reflect.InvocationTargetException.getTargetException:()Ljava/lang/Throwable;
astore 7
start local 7 9: aload 7
instanceof java.sql.SQLException
ifeq 11
10: aload 7
checkcast java.sql.SQLException
athrow
11: StackMap locals: java.lang.reflect.InvocationTargetException java.lang.Throwable
StackMap stack:
aload 6
athrow
end local 7 end local 6 12: StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.sql.PreparedStatement java.sql.Connection java.sql.ResultSet java.sql.Statement int
StackMap stack: java.lang.IllegalAccessException
astore 6
start local 6 13: aload 0
ldc "IllegalAccessException invoking PreparedStatement.getGeneratedKeys"
aload 6
invokevirtual ch.qos.logback.core.db.DBAppenderBase.addWarn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 6 14: StackMap locals:
StackMap stack:
iload 5
ifne 19
15: aload 2
invokeinterface java.sql.Connection.createStatement:()Ljava/sql/Statement;
astore 4
16: aload 4
iconst_1
invokeinterface java.sql.Statement.setMaxRows:(I)V
17: aload 0
getfield ch.qos.logback.core.db.DBAppenderBase.sqlDialect:Lch/qos/logback/core/db/dialect/SQLDialect;
invokeinterface ch.qos.logback.core.db.dialect.SQLDialect.getSelectInsertId:()Ljava/lang/String;
astore 6
start local 6 18: aload 4
aload 6
invokeinterface java.sql.Statement.executeQuery:(Ljava/lang/String;)Ljava/sql/ResultSet;
astore 3
end local 6 19: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.sql.ResultSet.next:()Z
pop
20: aload 3
iconst_1
invokeinterface java.sql.ResultSet.getLong:(I)J
lstore 6
start local 6 21: lload 6
lstore 9
22: aload 3
ifnull 26
23: aload 3
invokeinterface java.sql.ResultSet.close:()V
24: goto 26
StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.sql.PreparedStatement java.sql.Connection java.sql.ResultSet java.sql.Statement int long top long
StackMap stack: java.sql.SQLException
25: pop
26: StackMap locals:
StackMap stack:
aload 4
invokestatic ch.qos.logback.core.db.DBHelper.closeStatement:(Ljava/sql/Statement;)V
27: lload 9
lreturn
end local 6 end local 5 28: StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.sql.PreparedStatement java.sql.Connection java.sql.ResultSet java.sql.Statement
StackMap stack: java.lang.Throwable
astore 8
29: aload 3
ifnull 33
30: aload 3
invokeinterface java.sql.ResultSet.close:()V
31: goto 33
StackMap locals: ch.qos.logback.core.db.DBAppenderBase java.sql.PreparedStatement java.sql.Connection java.sql.ResultSet java.sql.Statement top top top java.lang.Throwable
StackMap stack: java.sql.SQLException
32: pop
33: StackMap locals:
StackMap stack:
aload 4
invokestatic ch.qos.logback.core.db.DBHelper.closeStatement:(Ljava/sql/Statement;)V
34: aload 8
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
0 35 1 insertStatement Ljava/sql/PreparedStatement;
0 35 2 connection Ljava/sql/Connection;
1 35 3 rs Ljava/sql/ResultSet;
2 35 4 idStatement Ljava/sql/Statement;
3 28 5 gotGeneratedKeys Z
8 12 6 ex Ljava/lang/reflect/InvocationTargetException;
9 12 7 target Ljava/lang/Throwable;
13 14 6 ex Ljava/lang/IllegalAccessException;
18 19 6 selectInsertIdStr Ljava/lang/String;
21 28 6 eventId J
Exception table:
from to target type
4 6 7 Class java.lang.reflect.InvocationTargetException
4 6 12 Class java.lang.IllegalAccessException
23 24 25 Class java.sql.SQLException
2 22 28 any
30 31 32 Class java.sql.SQLException
Exceptions:
throws java.sql.SQLException, java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
insertStatement
connection
public void stop();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial ch.qos.logback.core.UnsynchronizedAppenderBase.stop:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lch/qos/logback/core/db/DBAppenderBase<TE;>;
}
Signature: <E:Ljava/lang/Object;>Lch/qos/logback/core/UnsynchronizedAppenderBase<TE;>;
SourceFile: "DBAppenderBase.java"