public class org.apache.activemq.store.jdbc.JDBCTopicMessageStore extends org.apache.activemq.store.jdbc.JDBCMessageStore implements org.apache.activemq.store.TopicMessageStore
{
private static final org.slf4j.Logger LOG;
private java.util.Map subscriberLastRecoveredMap;
private java.util.Set pendingCompletion;
public static final java.lang.String PROPERTY_SEQUENCE_ID_CACHE_SIZE;
private static final int SEQUENCE_ID_CACHE_SIZE;
private final java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock;
private java.util.Map sequenceIdCache;
private final org.apache.activemq.store.MessageStoreSubscriptionStatistics stats;
public void <init>(org.apache.activemq.store.jdbc.JDBCPersistenceAdapter, org.apache.activemq.store.jdbc.JDBCAdapter, org.apache.activemq.wireformat.WireFormat, org.apache.activemq.command.ActiveMQTopic, org.apache.activemq.ActiveMQMessageAudit) throws java.io.IOException
{
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$1 v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
org.apache.activemq.wireformat.WireFormat v;
java.util.concurrent.ConcurrentHashMap v;
java.util.concurrent.locks.ReentrantReadWriteLock v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
java.util.HashSet v;
org.apache.activemq.command.ActiveMQTopic v;
org.apache.activemq.ActiveMQMessageAudit v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
v := @parameter: org.apache.activemq.store.jdbc.JDBCAdapter;
v := @parameter: org.apache.activemq.wireformat.WireFormat;
v := @parameter: org.apache.activemq.command.ActiveMQTopic;
v := @parameter: org.apache.activemq.ActiveMQMessageAudit;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCMessageStore: void <init>(org.apache.activemq.store.jdbc.JDBCPersistenceAdapter,org.apache.activemq.store.jdbc.JDBCAdapter,org.apache.activemq.wireformat.WireFormat,org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.ActiveMQMessageAudit)>(v, v, v, v, v);
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Set pendingCompletion> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock> = v;
v = new org.apache.activemq.store.jdbc.JDBCTopicMessageStore$1;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$1: void <init>(org.apache.activemq.store.jdbc.JDBCTopicMessageStore)>(v);
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map sequenceIdCache> = v;
v = new org.apache.activemq.store.MessageStoreSubscriptionStatistics;
specialinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: void <init>(boolean)>(0);
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.MessageStoreSubscriptionStatistics stats> = v;
return;
}
public void acknowledge(org.apache.activemq.broker.ConnectionContext, java.lang.String, java.lang.String, org.apache.activemq.command.MessageId, org.apache.activemq.command.MessageAck) throws java.io.IOException
{
org.apache.activemq.store.jdbc.JDBCAdapter v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.store.jdbc.TransactionContext v;
boolean v, v, v, v;
org.apache.activemq.command.MessageId v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v, v, v;
java.lang.Throwable v;
long v, v, v, v, v, v;
java.sql.SQLException v;
long[] v;
org.apache.activemq.command.XATransactionId v, v;
java.lang.String v, v, v, v, v;
org.apache.activemq.command.MessageAck v;
org.slf4j.Logger v, v, v, v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
java.io.IOException v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.command.MessageId;
v := @parameter: org.apache.activemq.command.MessageAck;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.command.MessageAck: boolean isUnmatchedAck()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.MessageId)>(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[])>("ignoring unmatched selector ack for: \u, cleanup will get to this message after subsequent acks.");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
return;
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext(org.apache.activemq.broker.ConnectionContext)>(v);
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: long[] getCachedStoreSequenceId(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.command.MessageId)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: boolean isPrioritizedMessages()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.command.XATransactionId getXid()>();
goto label;
label:
v = null;
label:
v = v[0];
v = v[1];
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: 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)>(v, v, v, v, v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: org.apache.activemq.command.XATransactionId getXid()>();
goto label;
label:
v = null;
label:
v = v[0];
v = v[1];
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: 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)>(v, v, v, v, v, v, v);
label:
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = v[0];
v = v[1];
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,long,long,org.apache.activemq.command.MessageId)>(v, 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[])>("\u0001:\u ack, seq: \u, priority: \u mid:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.apache.activemq.command.MessageId,java.sql.SQLException)>(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[])>("Failed to store acknowledgment for: \u on message \u in container: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
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[] getCachedStoreSequenceId(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;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.command.MessageId v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.util.Map v;
java.lang.Object v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: org.apache.activemq.store.jdbc.TransactionContext;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: org.apache.activemq.command.MessageId;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void lock()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map sequenceIdCache>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock readLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock: void unlock()>();
throw v;
label:
if v != null goto label;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: long[] getStoreSequenceId(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination,org.apache.activemq.command.MessageId)>(v, v, v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void recoverSubscription(java.lang.String, java.lang.String, org.apache.activemq.store.MessageRecoveryListener) throws java.lang.Exception
{
java.lang.Throwable v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$2 v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v, v;
org.apache.activemq.store.MessageRecoveryListener v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.store.MessageRecoveryListener;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = new org.apache.activemq.store.jdbc.JDBCTopicMessageStore$2;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$2: void <init>(org.apache.activemq.store.jdbc.JDBCTopicMessageStore,org.apache.activemq.store.MessageRecoveryListener)>(v, v);
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: 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)>(v, v, v, v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.sql.SQLException)>(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 to recover subscription: \u. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
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 synchronized void recoverNextMessages(java.lang.String, java.lang.String, int, org.apache.activemq.store.MessageRecoveryListener) throws java.lang.Exception
{
org.apache.activemq.store.jdbc.JDBCAdapter v, v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.util.Map v, v, v;
boolean v, v, v, v, v, v, v, v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry v;
org.apache.activemq.command.ActiveMQDestination v, v;
org.apache.activemq.store.MessageRecoveryListener v;
java.lang.Throwable v;
long v, v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered v;
java.sql.SQLException v;
int v, v;
java.lang.String v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener v;
java.lang.Object v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: org.apache.activemq.store.MessageRecoveryListener;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.lang.String getSubscriptionKey(java.lang.String,java.lang.String)>(v, v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
v = new org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: void <init>(org.apache.activemq.store.jdbc.JDBCTopicMessageStore)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = new org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: void <init>(org.apache.activemq.store.jdbc.JDBCTopicMessageStore,org.apache.activemq.store.MessageRecoveryListener,int)>(v, v, v);
label:
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.jdbc.JDBCTopicMessageStore,java.lang.String,org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered)>(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[])>("\u, \u existing last recovered: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: boolean isPrioritizedMessages()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: boolean complete()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: void setLastRecovered(org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry)>(v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry: long recovered>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry: int priority>;
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: 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)>(v, v, v, v, v, v, v, v);
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: boolean stalled()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: boolean complete()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry: void exhausted()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry defaultPriority()>();
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredAwareListener: void setLastRecovered(org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry)>(v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry: long recovered>;
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: 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)>(v, v, v, v, v, 0L, v, v);
label:
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered)>(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[])>("\u last recovered: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
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;
}
public void resetBatching(java.lang.String, java.lang.String)
{
org.slf4j.Logger v;
java.util.Set v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
java.util.Map v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.lang.String getSubscriptionKey(java.lang.String,java.lang.String)>(v, v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Set pendingCompletion>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.jdbc.JDBCTopicMessageStore,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[])>("\u, skip resetBatch during pending completion for: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
return;
}
public void pendingCompletion(java.lang.String, java.lang.String, long, byte)
{
org.slf4j.Logger v;
java.util.Set v;
long v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry v;
byte v;
java.util.Map v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry[] v;
java.lang.String v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: byte;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.lang.String getSubscriptionKey(java.lang.String,java.lang.String)>(v, v);
v = new org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered;
specialinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: void <init>(org.apache.activemq.store.jdbc.JDBCTopicMessageStore)>(v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry[] perPriority>;
v = v[v];
v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecoveredEntry: long recovered> = v;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Set pendingCompletion>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.jdbc.JDBCTopicMessageStore,java.lang.String,org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered)>(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[])>("\u, pending completion: \u, last: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
return;
}
public void complete(java.lang.String, java.lang.String)
{
org.slf4j.Logger v;
java.util.Set v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
java.lang.String v, v, v, v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Set pendingCompletion>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.lang.String getSubscriptionKey(java.lang.String,java.lang.String)>(v, v);
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.lang.String getSubscriptionKey(java.lang.String,java.lang.String)>(v, v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.jdbc.JDBCTopicMessageStore,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[])>("\u, completion for: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
return;
}
protected void onAdd(org.apache.activemq.command.Message, long, byte)
{
java.lang.Throwable v;
long v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.command.Message v;
long[] v;
byte v;
java.util.Map v, v;
boolean v;
java.util.Iterator v;
org.apache.activemq.command.MessageId v;
java.util.Collection v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
java.lang.Object v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: org.apache.activemq.command.Message;
v := @parameter: long;
v := @parameter: byte;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map subscriberLastRecoveredMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: 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()>();
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore$LastRecovered: void updateStored(long,int)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void lock()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.Map sequenceIdCache>;
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.MessageId getMessageId()>();
v = newarray (long)[2];
v[0] = v;
v[1] = v;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
goto label;
label:
v := @caughtexception;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: java.util.concurrent.locks.ReentrantReadWriteLock sequenceIdCacheSizeLock>;
v = virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock writeLock()>();
virtualinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock: void unlock()>();
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void addSubscription(org.apache.activemq.command.SubscriptionInfo, boolean) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v, v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: org.apache.activemq.command.SubscriptionInfo;
v := @parameter: boolean;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: boolean isPrioritizedMessages()>();
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: void doSetSubscriberEntry(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.SubscriptionInfo,boolean,boolean)>(v, v, v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = virtualinvoke v.<org.apache.activemq.command.SubscriptionInfo: java.lang.String getClientId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.sql.SQLException)>(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 to lookup subscription for info: \u. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
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 org.apache.activemq.command.SubscriptionInfo lookupSubscription(java.lang.String, java.lang.String) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.command.SubscriptionInfo v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: org.apache.activemq.command.SubscriptionInfo doGetSubscriberEntry(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String)>(v, v, v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.sql.SQLException)>(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 to lookup subscription for: \u. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
throw v;
catch java.sql.SQLException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void deleteSubscription(java.lang.String, java.lang.String) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: void doDeleteSubscription(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String)>(v, v, v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: void resetBatching(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.sql.SQLException)>(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 to remove subscription for: \u. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: void resetBatching(java.lang.String,java.lang.String)>(v, 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;
}
public org.apache.activemq.command.SubscriptionInfo[] getAllSubscriptions() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
org.apache.activemq.command.SubscriptionInfo[] v;
java.lang.String v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: org.apache.activemq.command.SubscriptionInfo[] doGetAllSubscriptions(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination)>(v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
return v;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.sql.SQLException)>(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 lookup subscriptions. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
throw v;
catch java.sql.SQLException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public int getMessageCount(java.lang.String, java.lang.String) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.jdbc.JDBCAdapter v;
java.sql.SQLException v;
org.apache.activemq.store.jdbc.TransactionContext v;
int v;
java.lang.String v, v, v, v;
boolean v, v;
org.slf4j.Logger v, v;
org.apache.activemq.store.jdbc.JDBCPersistenceAdapter v;
java.io.IOException v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter persistenceAdapter>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: org.apache.activemq.store.jdbc.TransactionContext getTransactionContext()>();
label:
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.jdbc.JDBCAdapter adapter>;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.command.ActiveMQDestination destination>;
v = virtualinvoke v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: boolean isPrioritizedMessages()>();
v = interfaceinvoke v.<org.apache.activemq.store.jdbc.JDBCAdapter: int doGetDurableSubscriberMessageCount(org.apache.activemq.store.jdbc.TransactionContext,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String,boolean)>(v, v, v, v, v);
label:
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
goto label;
label:
v := @caughtexception;
staticinvoke <org.apache.activemq.store.jdbc.JDBCPersistenceAdapter: void log(java.lang.String,java.sql.SQLException)>("JDBC Failure: ", v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.sql.SQLException)>(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 to get Message Count: \u. Reason: \u0001");
v = staticinvoke <org.apache.activemq.util.IOExceptionSupport: java.io.IOException create(java.lang.String,java.lang.Exception)>(v, v);
throw v;
label:
v := @caughtexception;
virtualinvoke v.<org.apache.activemq.store.jdbc.TransactionContext: void close()>();
throw v;
label:
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,int)>(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[])>("\u0001:\u, messageCount: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
return v;
catch java.sql.SQLException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public long getMessageSize(java.lang.String, java.lang.String) throws java.io.IOException
{
java.lang.String v, v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
return 0L;
}
protected java.lang.String getSubscriptionKey(java.lang.String, java.lang.String)
{
java.lang.String v, v, v, v, v;
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
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:");
if v == null goto label;
v = v;
goto label;
label:
v = "NOT_SET";
label:
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[])>("\u0001\u0001");
return v;
}
public org.apache.activemq.store.MessageStoreSubscriptionStatistics getMessageStoreSubStatistics()
{
org.apache.activemq.store.jdbc.JDBCTopicMessageStore v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
v := @this: org.apache.activemq.store.jdbc.JDBCTopicMessageStore;
v = v.<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.apache.activemq.store.MessageStoreSubscriptionStatistics stats>;
return v;
}
static void <clinit>()
{
int v;
java.lang.String v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/store/jdbc/JDBCTopicMessageStore;");
<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: org.slf4j.Logger LOG> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("org.apache.activemq.store.jdbc.SEQUENCE_ID_CACHE_SIZE", "1000");
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String,int)>(v, 10);
<org.apache.activemq.store.jdbc.JDBCTopicMessageStore: int SEQUENCE_ID_CACHE_SIZE> = v;
return;
}
}