public class org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter extends java.lang.Object implements org.apache.activemq.store.jdbc.JDBCAdapter
{
private static final org.slf4j.Logger LOG;
public static final int MAX_ROWS;
private static final java.lang.String FAILURE_MESSAGE;
protected org.apache.activemq.store.jdbc.Statements statements;
private boolean batchStatements;
protected boolean batchStatments;
protected boolean prioritizedMessages;
protected int maxRows;
char priorityIterator;
public void <init>()
{
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements> = 1;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatments> = 1;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows> = 32767;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: char priorityIterator> = 0;
return;
}
protected void setBinaryData(java.sql.PreparedStatement, int, byte[]) throws java.sql.SQLException
{
byte[] v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
int v;
java.sql.PreparedStatement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: java.sql.PreparedStatement;
v := @parameter: int;
v := @parameter: byte[];
interfaceinvoke v.<java.sql.PreparedStatement: void setBytes(int,byte[])>(v, v);
return;
}
protected byte[] getBinaryData(java.sql.ResultSet, int) throws java.sql.SQLException
{
byte[] v;
java.sql.ResultSet v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
int v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: java.sql.ResultSet;
v := @parameter: int;
v = interfaceinvoke v.<java.sql.ResultSet: byte[] getBytes(int)>(v);
return v;
}
public void doCreateTables(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.lang.String[] v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean messageTableAlreadyExists(org.apache.activemq.store.jdbc.TransactionContext)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String[] getCreateSchemaStatements()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void executeStatement(org.apache.activemq.store.jdbc.TransactionContext,java.lang.String,boolean)>(v, v, v);
v = v + 1;
goto label;
label:
return;
}
private boolean messageTableAlreadyExists(org.apache.activemq.store.jdbc.TransactionContext)
{
java.lang.Throwable v, v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.lang.String[] v;
java.sql.DatabaseMetaData v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = 0;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.DatabaseMetaData getMetaData()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFullMessageTableName()>();
v = newarray (java.lang.String)[1];
v[0] = "TABLE";
v = interfaceinvoke v.<java.sql.DatabaseMetaData: java.sql.ResultSet getTables(java.lang.String,java.lang.String,java.lang.String,java.lang.String[])>(null, null, v, v);
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
goto label;
label:
v := @caughtexception;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private void executeStatement(org.apache.activemq.store.jdbc.TransactionContext, java.lang.String, boolean) throws java.io.IOException
{
java.lang.Throwable v;
java.lang.Object[] v, v;
java.sql.Connection v;
java.lang.Integer v, v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
boolean v;
org.slf4j.Logger v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.Statement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = null;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Executing SQL: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.Statement createStatement()>();
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void commitIfAutoCommitIsDisabled(org.apache.activemq.store.jdbc.TransactionContext)>(v);
label:
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void closeStatement(java.sql.Statement)>(v);
goto label;
label:
v := @caughtexception;
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getMessage()>();
v[1] = v;
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getSQLState()>();
v[2] = v;
v = virtualinvoke v.<java.sql.SQLException: int getErrorCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Failure was: %s Message: %s SQLState: %s Vendor code: %s", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Could not create JDBC tables; The message table already existed. \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getMessage()>();
v[1] = v;
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getSQLState()>();
v[2] = v;
v = virtualinvoke v.<java.sql.SQLException: int getErrorCode()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[3] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Failure was: %s Message: %s SQLState: %s Vendor code: %s", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Could not create JDBC tables; they could already exist. \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("Failure details: ", v);
label:
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void closeStatement(java.sql.Statement)>(v);
goto label;
label:
v := @caughtexception;
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void closeStatement(java.sql.Statement)>(v);
throw v;
label:
return;
catch java.sql.SQLException 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;
}
private void closeStatement(java.sql.Statement)
{
java.sql.Statement v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: java.sql.Statement;
label:
if v == null goto label;
interfaceinvoke v.<java.sql.Statement: void close()>();
label:
goto label;
label:
v := @caughtexception;
label:
return;
catch java.sql.SQLException from label to label with label;
}
private void commitIfAutoCommitIsDisabled(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = interfaceinvoke v.<java.sql.Connection: boolean getAutoCommit()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
interfaceinvoke v.<java.sql.Connection: void commit()>();
label:
return;
}
public void doDropTables(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
java.lang.String[] v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v, v, v;
java.lang.String v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.Statement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.Statement createStatement()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String[] getDropSchemaStatements()>();
v = 0;
label:
v = lengthof v;
if v >= v goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = v[v];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Executing SQL: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v[v];
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = v[v];
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getMessage()>();
v = virtualinvoke v.<java.sql.SQLException: java.lang.String getSQLState()>();
v = virtualinvoke v.<java.sql.SQLException: int getErrorCode()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String,int)>(v, 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[])>("Could not drop JDBC tables; they may not exist. Failure was: \u Message: \u SQLState: \u Vendor code: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("Failure details: ", v);
label:
v = v + 1;
goto label;
label:
specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void commitIfAutoCommitIsDisabled(org.apache.activemq.store.jdbc.TransactionContext)>(v);
label:
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.sql.SQLException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public long doGetLastMessageStoreSequenceId(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.Statements v, v;
long v, v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v;
boolean v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindLastSequenceIdInMsgsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = 0L;
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
label:
interfaceinvoke v.<java.sql.ResultSet: void close()>();
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindLastSequenceIdInAcksStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = 0L;
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
label:
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public byte[] doGetMessageById(org.apache.activemq.store.jdbc.TransactionContext, long) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
long v;
java.sql.PreparedStatement v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindMessageByIdStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void doAddMessage(org.apache.activemq.store.jdbc.TransactionContext, long, org.apache.activemq.command.MessageId, org.apache.activemq.command.ActiveMQDestination, byte[], long, byte, org.apache.activemq.command.XATransactionId) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v, v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v, v, v;
java.sql.SQLException v;
byte v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
org.apache.activemq.command.XATransactionId v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v := @parameter: org.apache.activemq.command.MessageId;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: byte[];
v := @parameter: long;
v := @parameter: byte;
v := @parameter: org.apache.activemq.command.XATransactionId;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.PreparedStatement getAddMessageStatement()>();
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getAddMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void setAddMessageStatement(java.sql.PreparedStatement)>(v);
label:
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(3, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(6, v);
virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void setBinaryData(java.sql.PreparedStatement,int,byte[])>(v, 7, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.XATransactionId: byte[] getEncodedXidBytes()>();
v[0] = 43;
v = staticinvoke <javax.xml.bind.DatatypeConverter: java.lang.String printBase64Binary(byte[])>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(8, v);
goto label;
label:
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(8, null);
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void addBatch()>();
goto label;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.sql.SQLException;
specialinvoke v.<java.sql.SQLException: void <init>(java.lang.String)>("Failed add a message");
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
if v == null goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doUpdateMessage(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, org.apache.activemq.command.MessageId, byte[]) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.io.IOException v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.command.MessageId;
v := @parameter: byte[];
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void setBinaryData(java.sql.PreparedStatement,int,byte[])>(v, 1, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(3, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageId,org.apache.activemq.command.ActiveMQDestination)>(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[])>("Could not update message: \u in \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doAddMessageReference(org.apache.activemq.store.jdbc.TransactionContext, long, org.apache.activemq.command.MessageId, org.apache.activemq.command.ActiveMQDestination, long, java.lang.String) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v, v, v, v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v := @parameter: org.apache.activemq.command.MessageId;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: long;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.PreparedStatement getAddMessageStatement()>();
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getAddMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void setAddMessageStatement(java.sql.PreparedStatement)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getBrokerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(3, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(6, v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void addBatch()>();
goto label;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.sql.SQLException;
specialinvoke v.<java.sql.SQLException: void <init>(java.lang.String)>("Failed add a message");
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public long[] getStoreSequenceId(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, org.apache.activemq.command.MessageId) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v, v, v;
long[] v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v;
boolean v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.command.ProducerId v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.command.MessageId;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindMessageSequenceIdStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v != 0 goto label;
v = newarray (long)[2];
v[0] = 0L;
v[1] = 0L;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v = newarray (long)[2];
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v[0] = v;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(2);
v[1] = v;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public byte[] doGetMessage(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.MessageId) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
long v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.MessageId;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: org.apache.activemq.command.ProducerId getProducerId()>();
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.MessageId: long getProducerSequenceId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(2, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String doGetMessageReference(org.apache.activemq.store.jdbc.TransactionContext, long) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
long v;
java.sql.PreparedStatement v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return null;
label:
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void doRemoveMessage(org.apache.activemq.store.jdbc.TransactionContext, long, org.apache.activemq.command.XATransactionId) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
org.apache.activemq.command.XATransactionId v;
java.lang.String v, v, v;
boolean v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v := @parameter: org.apache.activemq.command.XATransactionId;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.PreparedStatement getRemovedMessageStatement()>();
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
if v != null goto label;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getRemoveMessageStatement()>();
goto label;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateXidFlagStatement()>();
label:
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void setRemovedMessageStatement(java.sql.PreparedStatement)>(v);
label:
if v != null goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.command.XATransactionId: byte[] getEncodedXidBytes()>();
v[0] = 45;
v = staticinvoke <javax.xml.bind.DatatypeConverter: java.lang.String printBase64Binary(byte[])>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(2, v);
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void addBatch()>();
goto label;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.sql.SQLException;
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[])>("Failed to remove message seq: \u0001");
specialinvoke v.<java.sql.SQLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
if v == null goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doRecover(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener) throws java.lang.Exception
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v;
org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAllMessagesStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: boolean isUseExternalMessageReferences()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessageReference(java.lang.String)>(v);
if v != 0 goto label;
goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessage(long,byte[])>(v, v);
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doMessageIdScan(org.apache.activemq.store.jdbc.TransactionContext, int, org.apache.activemq.store.jdbc.JDBCMessageIdScanListener) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v, v;
java.lang.String v, v, v;
java.util.LinkedList v;
boolean v, v, v;
org.apache.activemq.store.jdbc.JDBCMessageIdScanListener v;
org.slf4j.Logger v, v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
java.lang.Object v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: int;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageIdScanListener;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAllMessageIdsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setMaxRows(int)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = new org.apache.activemq.command.MessageId;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(3);
specialinvoke v.<org.apache.activemq.command.MessageId: void <init>(java.lang.String,long)>(v, v);
virtualinvoke v.<java.util.LinkedList: void addFirst(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.util.LinkedList: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(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[])>("messageIdScan with limit (\u), resulted in: \u ids");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = virtualinvoke v.<java.util.LinkedList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageIdScanListener: void messageId(org.apache.activemq.command.MessageId)>(v);
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doSetLastAckWithPriority(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, org.apache.activemq.command.XATransactionId, java.lang.String, java.lang.String, long, long) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v, v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
org.apache.activemq.command.XATransactionId v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.command.XATransactionId;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.PreparedStatement getUpdateLastAckStatement()>();
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
if v != null goto label;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateDurableLastAckWithPriorityStatement()>();
goto label;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateDurableLastAckWithPriorityInTxStatement()>();
label:
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void setUpdateLastAckStatement(java.sql.PreparedStatement)>(v);
label:
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] encodeXid(org.apache.activemq.command.XATransactionId,long,long)>(v, v, v);
v = staticinvoke <javax.xml.bind.DatatypeConverter: java.lang.String printBase64Binary(byte[])>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
goto label;
label:
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void addBatch()>();
goto label;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.sql.SQLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(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[])>("Failed update last ack with priority: \u, for sub: \u0001");
specialinvoke v.<java.sql.SQLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doSetLastAck(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, org.apache.activemq.command.XATransactionId, java.lang.String, java.lang.String, long, long) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
org.apache.activemq.command.XATransactionId v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.io.IOException v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.command.XATransactionId;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.PreparedStatement getUpdateLastAckStatement()>();
label:
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
if v != null goto label;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateDurableLastAckStatement()>();
goto label;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getUpdateDurableLastAckInTxStatement()>();
label:
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void setUpdateLastAckStatement(java.sql.PreparedStatement)>(v);
label:
if v == null goto label;
v = specialinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] encodeXid(org.apache.activemq.command.XATransactionId,long,long)>(v, v, v);
v = staticinvoke <javax.xml.bind.DatatypeConverter: java.lang.String printBase64Binary(byte[])>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
goto label;
label:
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v == 0 goto label;
interfaceinvoke v.<java.sql.PreparedStatement: void addBatch()>();
goto label;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(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[])>("Could not update last ack seq : \u, for sub: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
if v != 0 goto label;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
label:
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
private byte[] encodeXid(org.apache.activemq.command.XATransactionId, long, long)
{
byte[] v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
long v, v;
byte v;
java.lang.Long v;
org.apache.activemq.util.DataByteArrayOutputStream v;
org.apache.activemq.command.XATransactionId v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.command.XATransactionId;
v := @parameter: long;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.command.XATransactionId: byte[] getEncodedXidBytes()>();
v = virtualinvoke v.<org.apache.activemq.command.XATransactionId: org.apache.activemq.util.DataByteArrayOutputStream internalOutputStream()>();
virtualinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: void position(int)>(1);
virtualinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: void writeLong(long)>(v);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<java.lang.Long: byte byteValue()>();
virtualinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: void writeByte(int)>(v);
return v;
}
public void doClearLastAck(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, byte, java.lang.String, java.lang.String) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.io.IOException v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
byte v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: byte;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getClearDurableLastAckInTxStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(4, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(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[])>("Could not remove prepared transaction state from message ack for: \u0001:\u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doRecoverSubscription(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String, org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener) throws java.lang.Exception
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v;
org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAllDurableSubMessagesStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: boolean isUseExternalMessageReferences()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessageReference(java.lang.String)>(v);
if v != 0 goto label;
goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessage(long,byte[])>(v, v);
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doRecoverNextMessages(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String, long, long, int, org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener) throws java.lang.Exception
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v, v, v;
org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: long;
v := @parameter: int;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindDurableSubMessagesStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v * 2;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setMaxRows(int)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(4, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = 0;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: boolean isUseExternalMessageReferences()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessageReference(java.lang.String)>(v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessage(long,byte[])>(v, v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doRecoverNextMessagesWithPriority(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String, long, long, int, org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener) throws java.lang.Exception
{
java.lang.Throwable v;
byte[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
long v, v, v;
org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: long;
v := @parameter: int;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindDurableSubMessagesByPriorityStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v * 2;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setMaxRows(int)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(4, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = 0;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: boolean isUseExternalMessageReferences()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessageReference(java.lang.String)>(v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessage(long,byte[])>(v, v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public int doGetDurableSubscriberMessageCount(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String, boolean) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.Statements v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v;
java.lang.String v, v, v, v, v;
boolean v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = null;
v = null;
v = 0;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDurableSubscriberMessageCountStatementWithPriority()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDurableSubscriberMessageCountStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: int getInt(int)>(1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void doSetSubscriberEntry(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.SubscriptionInfo, boolean, boolean) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v, v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.Statements v, v;
long v;
byte v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v, v;
java.lang.String v, v, v, v, v, v, v, v, v;
boolean v, v, v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.io.IOException v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.SubscriptionInfo;
v := @parameter: boolean;
v := @parameter: boolean;
v = null;
label:
v = -1L;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindLastSequenceIdInMsgsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = null;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getCreateDurableSubStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = 1;
if v == 0 goto label;
v = 10;
label:
v = 0;
label:
if v >= v goto label;
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: org.apache.activemq.command.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getClientId()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getSubscriptionName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getSelector()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: org.apache.activemq.command.ActiveMQDestination getSubscribedDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(6, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(7, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getClientId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Could not create durable subscription for: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v + 1;
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.command.SubscriptionInfo doGetSubscriberEntry(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v, v, v, v;
boolean v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindDurableSubStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v != 0 goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return null;
label:
v = new org.apache.activemq.command.SubscriptionInfo;
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>()>();
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setClientId(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSubscriptionName(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSelector(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = staticinvoke <org.apache.activemq.command.ActiveMQDestination: org.apache.activemq.command.ActiveMQDestination createDestination(java.lang.String,byte)>(v, 1);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSubscribedDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.command.SubscriptionInfo[] doGetAllSubscriptions(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.lang.Object[] v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
java.util.ArrayList v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v;
java.lang.String v, v, v, v, v, v;
boolean v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.command.SubscriptionInfo[] v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAllDurableSubsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = new org.apache.activemq.command.SubscriptionInfo;
specialinvoke v.<org.apache.activemq.command.SubscriptionInfo: void <init>()>();
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSelector(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSubscriptionName(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(3);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setClientId(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(4);
v = staticinvoke <org.apache.activemq.command.ActiveMQDestination: org.apache.activemq.command.ActiveMQDestination createDestination(java.lang.String,byte)>(v, 1);
virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: void setSubscribedDestination(org.apache.activemq.command.ActiveMQDestination)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.ArrayList: int size()>();
v = newarray (org.apache.activemq.command.SubscriptionInfo)[v];
v = virtualinvoke v.<java.util.ArrayList: java.lang.Object[] toArray(java.lang.Object[])>(v);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public void doRemoveAllMessages(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v, v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getRemoveAllMessagesStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
interfaceinvoke v.<java.sql.PreparedStatement: void close()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getRemoveAllSubscriptionsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doDeleteSubscription(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDeleteSubscriptionStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doDeleteOldMessages(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v, v, v;
java.lang.String v, v, v, v;
org.slf4j.Logger v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
char v;
java.sql.PreparedStatement v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = null;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDeleteOldMessagesStatementWithPriority()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("Executing SQL: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getExclusiveConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDeleteOldMessagesStatementWithPriority()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: char priorityIterator>;
v = v + 1;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: char priorityIterator> = v;
v = v % 10;
interfaceinvoke v.<java.sql.PreparedStatement: void setInt(int,int)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setInt(int,int)>(2, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,int)>(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[])>("Deleted \u old message(s) at priority: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public long doGetLastAckedDurableSubscriberMessageId(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, java.lang.String, java.lang.String) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.Statements v;
long v;
byte v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v, v;
boolean v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = null;
v = null;
v = -1L;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getLastAckedDurableSubscriberMessageStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = v cmp 0L;
if v != 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: boolean wasNull()>();
if v == 0 goto label;
v = -1L;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
protected static void close(java.sql.PreparedStatement)
{
java.sql.PreparedStatement v;
v := @parameter: java.sql.PreparedStatement;
return;
}
protected static void close(java.sql.ResultSet)
{
java.sql.ResultSet v;
v := @parameter: java.sql.ResultSet;
return;
}
public java.util.Set doGetDestinations(org.apache.activemq.store.jdbc.TransactionContext) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.HashSet v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAllDestinationsStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
v = staticinvoke <org.apache.activemq.command.ActiveMQDestination: org.apache.activemq.command.ActiveMQDestination createDestination(java.lang.String,byte)>(v, 1);
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public boolean isBatchStatements()
{
boolean v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
return v;
}
public void setBatchStatements(boolean)
{
boolean v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: boolean;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements> = v;
return;
}
public boolean isBatchStatments()
{
boolean v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements>;
return v;
}
public void setBatchStatments(boolean)
{
org.slf4j.Logger v;
boolean v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: boolean;
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>("batchStatments is deprecated and will be removed in a future release.  Use batchStatements instead (Note the \'e\' in Statement)");
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatements> = v;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: boolean batchStatments> = v;
return;
}
public void setUseExternalMessageReferences(boolean)
{
org.apache.activemq.store.jdbc.Statements v;
boolean v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: boolean;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: void setUseExternalMessageReferences(boolean)>(v);
return;
}
public org.apache.activemq.store.jdbc.Statements getStatements()
{
org.apache.activemq.store.jdbc.Statements v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
return v;
}
public void setStatements(org.apache.activemq.store.jdbc.Statements)
{
org.apache.activemq.store.jdbc.Statements v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.Statements;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements> = v;
return;
}
public int getMaxRows()
{
int v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows>;
return v;
}
public void setMaxRows(int)
{
int v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: int;
v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows> = v;
return;
}
public void doRecordDestination(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.io.IOException v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v, v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getCreateDurableSubStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(4, null);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(5, 0L);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(6, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(7, 11L);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ActiveMQDestination)>(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[])>("Could not create ack record for destination: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doRecoverPreparedOps(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
byte[] v, v, v, v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.Statements v, v;
long v;
byte v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v;
org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindOpsPendingOutcomeStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = staticinvoke <javax.xml.bind.DatatypeConverter: byte[] parseBase64Binary(java.lang.String)>(v);
v = v[0];
if v != 43 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 3);
virtualinvoke v.<org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore: void recoverAdd(long,byte[])>(v, v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 3);
virtualinvoke v.<org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore: void recoverAck(long,byte[],byte[])>(v, v, v);
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindAcksPendingOutcomeStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
v = staticinvoke <javax.xml.bind.DatatypeConverter: byte[] parseBase64Binary(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(3);
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(4);
v = staticinvoke <org.apache.activemq.command.ActiveMQDestination: org.apache.activemq.command.ActiveMQDestination createDestination(java.lang.String,byte)>(v, 2);
virtualinvoke v.<org.apache.activemq.store.jdbc.JdbcMemoryTransactionStore: void recoverLastAck(byte[],org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String)>(v, v, v, v);
goto label;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void doCommitAddOp(org.apache.activemq.store.jdbc.TransactionContext, long, long) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.io.IOException v;
long v, v;
java.sql.PreparedStatement v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: long;
v := @parameter: long;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getClearXidFlagStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(2, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: int executeUpdate()>();
if v == 1 goto label;
v = new java.io.IOException;
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[])>("Could not remove prepared transaction state from message add for sequenceId: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public int doGetMessageCount(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
int v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v = null;
v = null;
v = 0;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getDestinationMessageCountStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: int getInt(int)>(1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void doRecoverNextMessages(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ActiveMQDestination, long[], long, int, boolean, org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener) throws java.lang.Exception
{
byte[] v;
java.sql.Connection v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
boolean v, v, v, v, v, v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
java.sql.PreparedStatement v;
java.lang.Exception v;
org.apache.activemq.command.ActiveMQDestination v;
java.lang.Throwable v;
org.apache.activemq.store.jdbc.Statements v, v, v;
long v, v, v, v;
long[] v;
org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener v;
int v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: long[];
v := @parameter: long;
v := @parameter: int;
v := @parameter: boolean;
v := @parameter: org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener;
v = null;
v = null;
label:
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindNextMessagesByPriorityStatement()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: java.lang.String limitQuery(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getFindNextMessagesStatement()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: java.lang.String limitQuery(java.lang.String)>(v);
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: int maxRows>;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setMaxRows(int)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getQualifiedName()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(2, v);
v = 3;
if v == 0 goto label;
v = 9;
label:
if v < 0 goto label;
v = v;
v = v + 1;
v = v[v];
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(v, v);
v = v - 1;
goto label;
label:
v = v[0];
interfaceinvoke v.<java.sql.PreparedStatement: void setLong(int,long)>(3, v);
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = 0;
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: boolean isUseExternalMessageReferences()>();
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(1);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessageReference(java.lang.String)>(v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Stopped recover next messages");
goto label;
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: byte[] getBinaryData(java.sql.ResultSet,int)>(v, 2);
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageRecoveryListener: boolean recoverMessage(long,byte[])>(v, v);
if v == 0 goto label;
v = v + 1;
goto label;
label:
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Stopped recover next messages");
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Exception recovering next messages", v);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
label:
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;
}
public long doGetLastProducerSequenceId(org.apache.activemq.store.jdbc.TransactionContext, org.apache.activemq.command.ProducerId) throws java.sql.SQLException, java.io.IOException
{
java.lang.Throwable v;
java.sql.Connection v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
org.apache.activemq.store.jdbc.Statements v;
long v;
java.sql.PreparedStatement v;
org.apache.activemq.command.ProducerId v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.sql.ResultSet v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ProducerId;
v = null;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: java.sql.Connection getConnection()>();
v = v.<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.apache.activemq.store.jdbc.Statements statements>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.Statements: java.lang.String getLastProducerSequenceIdStatement()>();
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.command.ProducerId: java.lang.String toString()>();
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = -1L;
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
label:
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.ResultSet)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void close(java.sql.PreparedStatement)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
}
public static void dumpTables(java.sql.Connection, java.lang.String, java.lang.String, java.lang.String) throws java.sql.SQLException
{
java.io.PrintStream v, v, v;
java.sql.Connection v;
java.sql.PreparedStatement v;
java.lang.String v, v, v;
v := @parameter: java.sql.Connection;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = <java.lang.System: java.io.PrintStream out>;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void printQuery(java.sql.Connection,java.lang.String,java.io.PrintStream)>(v, "Select * from ACTIVEMQ_MSGS", v);
v = <java.lang.System: java.io.PrintStream out>;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void printQuery(java.sql.Connection,java.lang.String,java.io.PrintStream)>(v, "Select * from ACTIVEMQ_ACKS", v);
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>("SELECT M.ID, D.LAST_ACKED_ID FROM ACTIVEMQ_MSGS M, ACTIVEMQ_ACKS D WHERE D.CONTAINER=? AND D.CLIENT_ID=? AND D.SUB_NAME=? AND M.CONTAINER=D.CONTAINER AND M.ID > D.LAST_ACKED_ID ORDER BY M.ID");
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(1, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(2, v);
interfaceinvoke v.<java.sql.PreparedStatement: void setString(int,java.lang.String)>(3, v);
v = <java.lang.System: java.io.PrintStream out>;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void printQuery(java.sql.PreparedStatement,java.io.PrintStream)>(v, v);
return;
}
public static void dumpTables(java.sql.Connection) throws java.sql.SQLException
{
java.io.PrintStream v;
java.sql.Connection v;
v := @parameter: java.sql.Connection;
v = <java.lang.System: java.io.PrintStream out>;
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void printQuery(java.sql.Connection,java.lang.String,java.io.PrintStream)>(v, "SELECT COUNT(*) from ACTIVEMQ_MSGS", v);
return;
}
public static void printQuery(java.sql.Connection, java.lang.String, java.io.PrintStream) throws java.sql.SQLException
{
java.io.PrintStream v;
java.sql.Connection v;
java.lang.String v;
java.sql.PreparedStatement v;
v := @parameter: java.sql.Connection;
v := @parameter: java.lang.String;
v := @parameter: java.io.PrintStream;
v = interfaceinvoke v.<java.sql.Connection: java.sql.PreparedStatement prepareStatement(java.lang.String)>(v);
staticinvoke <org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: void printQuery(java.sql.PreparedStatement,java.io.PrintStream)>(v, v);
return;
}
public static void printQuery(java.sql.PreparedStatement, java.io.PrintStream) throws java.sql.SQLException
{
java.io.PrintStream v;
java.lang.Throwable v;
java.sql.PreparedStatement v;
java.sql.ResultSet v;
int v, v, v, v;
java.lang.String v, v, v, v;
java.sql.ResultSetMetaData v;
boolean v;
v := @parameter: java.sql.PreparedStatement;
v := @parameter: java.io.PrintStream;
label:
v = interfaceinvoke v.<java.sql.PreparedStatement: java.sql.ResultSet executeQuery()>();
v = interfaceinvoke v.<java.sql.ResultSet: java.sql.ResultSetMetaData getMetaData()>();
v = 1;
label:
v = interfaceinvoke v.<java.sql.ResultSetMetaData: int getColumnCount()>();
if v > v goto label;
if v != 1 goto label;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>("||");
label:
v = interfaceinvoke v.<java.sql.ResultSetMetaData: java.lang.String getColumnName(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("\u0001||");
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.io.PrintStream: void println()>();
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = 1;
label:
v = interfaceinvoke v.<java.sql.ResultSetMetaData: int getColumnCount()>();
if v > v goto label;
if v != 1 goto label;
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>("|");
label:
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(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[])>("\u0001|");
virtualinvoke v.<java.io.PrintStream: void print(java.lang.String)>(v);
v = v + 1;
goto label;
label:
virtualinvoke v.<java.io.PrintStream: void println()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public java.lang.String limitQuery(java.lang.String)
{
java.lang.String v;
org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter v;
v := @this: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter;
v := @parameter: java.lang.String;
return v;
}
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/DefaultJDBCAdapter;");
<org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter: org.slf4j.Logger LOG> = v;
return;
}
}