public class org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker extends org.apache.activemq.store.jdbc.DefaultDatabaseLocker
{
private static final org.slf4j.Logger LOG;
public void <init>()
{
org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker v;
v := @this: org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker;
specialinvoke v.<org.apache.activemq.store.jdbc.DefaultDatabaseLocker: void <init>()>();
return;
}
public void doStart() throws java.lang.Exception
{
java.sql.Connection v, v, v;
java.sql.ResultSet v;
boolean v;
java.sql.PreparedStatement v;
java.lang.Exception v, v;
java.sql.ResultSetMetaData v;
java.lang.Throwable v, v;
org.apache.activemq.util.Handler v, v, v;
org.apache.activemq.store.jdbc.Statements v;
long v, v;
javax.sql.DataSource v, v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.lang.InterruptedException v;
org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker v;
java.lang.Class v;
v := @this: org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker;
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Attempting to acquire the exclusive lock to become the Master broker");
v = null;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: javax.sql.DataSource dataSource>;
v = interfaceinvoke v.<javax.sql.DataSource: java.sql.Connection getConnection()>();
v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: java.sql.Connection connection> = v;
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: java.sql.Connection connection>;
interfaceinvoke v.<java.sql.Connection: void setAutoCommit(boolean)>(0);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.apache.activemq.store.jdbc.Statements getStatements()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getLockCreateStatement()>();
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: java.sql.Connection connection>;
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSetMetaData getMetaData()>();
if v == null goto label;
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
goto label;
label:
interfaceinvoke v.<java.sql.PreparedStatement: boolean execute()>();
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: boolean isStopping()>();
if v == 0 goto label;
v = new java.lang.Exception;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Cannot start broker as being asked to shut down. Interrupted attempt to acquire lock: \u0001");
specialinvoke v.<java.lang.Exception: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.apache.activemq.util.Handler exceptionHandler>;
if v == null goto label;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.apache.activemq.util.Handler exceptionHandler>;
interfaceinvoke v.<org.apache.activemq.util.Handler: void handle(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.apache.activemq.util.Handler exceptionHandler>;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getCanonicalName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.Throwable,java.lang.Exception)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The exception handler \u threw this exception: \u while trying to handle this excpetion: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Exception)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to acquire lock: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
label:
if null == v goto label;
v = null;
goto label;
label:
v := @caughtexception;
throw v;
label:
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: long lockAcquireSleepInterval>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Sleeping for \u milli(s) before trying again to get the lock...");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: long lockAcquireSleepInterval>;
staticinvoke <java.lang.Thread: void sleep(long)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Master lock retry sleep interrupted", v);
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: javax.sql.DataSource dataSource>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (javax.sql.DataSource)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Becoming the master on dataSource: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/store/jdbc/adapter/TransactDatabaseLocker;");
<org.apache.activemq.store.jdbc.adapter.TransactDatabaseLocker: org.slf4j.Logger LOG> = v;
return;
}
}