public class org.apache.ibatis.datasource.pooled.PoolState extends java.lang.Object
{
private final java.util.concurrent.locks.ReentrantLock lock;
protected org.apache.ibatis.datasource.pooled.PooledDataSource dataSource;
protected final java.util.List idleConnections;
protected final java.util.List activeConnections;
protected long requestCount;
protected long accumulatedRequestTime;
protected long accumulatedCheckoutTime;
protected long claimedOverdueConnectionCount;
protected long accumulatedCheckoutTimeOfOverdueConnections;
protected long accumulatedWaitTime;
protected long hadToWaitCount;
protected long badConnectionCount;
public void <init>(org.apache.ibatis.datasource.pooled.PooledDataSource)
{
java.util.concurrent.locks.ReentrantLock v;
org.apache.ibatis.datasource.pooled.PooledDataSource v;
org.apache.ibatis.datasource.pooled.PoolState v;
java.util.ArrayList v, v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v := @parameter: org.apache.ibatis.datasource.pooled.PooledDataSource;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.locks.ReentrantLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantLock: void <init>()>();
v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.List idleConnections> = v;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.List activeConnections> = v;
v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource> = v;
return;
}
public long getRequestCount()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.ibatis.datasource.pooled.PoolState v;
long v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long requestCount>;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getAverageRequestTime()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
long v, v, v, v;
byte v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long requestCount>;
v = v cmp 0L;
if v != 0 goto label;
v = 0L;
goto label;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long accumulatedRequestTime>;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long requestCount>;
v = v / v;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getAverageWaitTime()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
long v, v, v, v;
byte v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long hadToWaitCount>;
v = v cmp 0L;
if v != 0 goto label;
v = 0L;
goto label;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long accumulatedWaitTime>;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long hadToWaitCount>;
v = v / v;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getHadToWaitCount()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.ibatis.datasource.pooled.PoolState v;
long v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long hadToWaitCount>;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getBadConnectionCount()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.ibatis.datasource.pooled.PoolState v;
long v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long badConnectionCount>;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getClaimedOverdueConnectionCount()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
org.apache.ibatis.datasource.pooled.PoolState v;
long v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long claimedOverdueConnectionCount>;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getAverageOverdueCheckoutTime()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
long v, v, v, v;
byte v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long claimedOverdueConnectionCount>;
v = v cmp 0L;
if v != 0 goto label;
v = 0L;
goto label;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long accumulatedCheckoutTimeOfOverdueConnections>;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long claimedOverdueConnectionCount>;
v = v / v;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public long getAverageCheckoutTime()
{
java.lang.Throwable v;
java.util.concurrent.locks.ReentrantLock v, v, v;
long v, v, v, v;
byte v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long requestCount>;
v = v cmp 0L;
if v != 0 goto label;
v = 0L;
goto label;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long accumulatedCheckoutTime>;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: long requestCount>;
v = v / v;
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public int getIdleConnectionCount()
{
java.lang.Throwable v;
java.util.List v;
java.util.concurrent.locks.ReentrantLock v, v, v;
int v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.List idleConnections>;
v = interfaceinvoke v.<java.util.List: int size()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public int getActiveConnectionCount()
{
java.lang.Throwable v;
java.util.List v;
java.util.concurrent.locks.ReentrantLock v, v, v;
int v;
org.apache.ibatis.datasource.pooled.PoolState v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.List activeConnections>;
v = interfaceinvoke v.<java.util.List: int size()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String toString()
{
boolean v;
java.lang.StringBuilder v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.Throwable v;
org.apache.ibatis.datasource.pooled.PooledDataSource v, v, v, v, v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v;
org.apache.ibatis.datasource.pooled.PoolState v;
java.lang.String v, v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantLock v, v, v;
v := @this: org.apache.ibatis.datasource.pooled.PoolState;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void lock()>();
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n===CONFIGURATION==============================================");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n jdbcDriver                     ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PooledDataSource: java.lang.String getDriver()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n jdbcUrl                        ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PooledDataSource: java.lang.String getUrl()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n jdbcUsername                   ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PooledDataSource: java.lang.String getUsername()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n jdbcPassword                   ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PooledDataSource: java.lang.String getPassword()>();
if v != null goto label;
v = "NULL";
goto label;
label:
v = "************";
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolMaxActiveConnections       ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: int poolMaximumActiveConnections>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolMaxIdleConnections         ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: int poolMaximumIdleConnections>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolMaxCheckoutTime            ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: int poolMaximumCheckoutTime>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolTimeToWait                 ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: int poolTimeToWait>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolPingEnabled                ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: boolean poolPingEnabled>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolPingQuery                  ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: java.lang.String poolPingQuery>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n poolPingConnectionsNotUsedFor  ");
v = v.<org.apache.ibatis.datasource.pooled.PoolState: org.apache.ibatis.datasource.pooled.PooledDataSource dataSource>;
v = v.<org.apache.ibatis.datasource.pooled.PooledDataSource: int poolPingConnectionsNotUsedFor>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n ---STATUS-----------------------------------------------------");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n activeConnections              ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: int getActiveConnectionCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n idleConnections                ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: int getIdleConnectionCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(int)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n requestCount                   ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getRequestCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n averageRequestTime             ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getAverageRequestTime()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n averageCheckoutTime            ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getAverageCheckoutTime()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n claimedOverdue                 ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getClaimedOverdueConnectionCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n averageOverdueCheckoutTime     ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getAverageOverdueCheckoutTime()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n hadToWait                      ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getHadToWaitCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n averageWaitTime                ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getAverageWaitTime()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n badConnectionCount             ");
v = virtualinvoke v.<org.apache.ibatis.datasource.pooled.PoolState: long getBadConnectionCount()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(long)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("\n===============================================================");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
label:
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
return v;
label:
v := @caughtexception;
v = v.<org.apache.ibatis.datasource.pooled.PoolState: java.util.concurrent.locks.ReentrantLock lock>;
virtualinvoke v.<java.util.concurrent.locks.ReentrantLock: void unlock()>();
throw v;
catch java.lang.Throwable from label to label with label;
}
}