public abstract class org.apache.activemq.store.kahadb.MessageDatabase extends org.apache.activemq.util.ServiceSupport implements org.apache.activemq.broker.BrokerServiceAware
{
protected org.apache.activemq.broker.BrokerService brokerService;
public static final java.lang.String PROPERTY_LOG_SLOW_ACCESS_TIME;
public static final int LOG_SLOW_ACCESS_TIME;
public static final java.io.File DEFAULT_DIRECTORY;
protected static final org.apache.activemq.protobuf.Buffer UNMATCHED;
private static final org.slf4j.Logger LOG;
static final int CLOSED_STATE;
static final int OPEN_STATE;
static final long NOT_ACKED;
static final int VERSION;
static final byte COMPACTED_JOURNAL_FILE;
protected org.apache.activemq.store.kahadb.disk.page.PageFile pageFile;
protected org.apache.activemq.store.kahadb.disk.journal.Journal journal;
protected org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata;
protected final org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics;
protected org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller metadataMarshaller;
protected boolean failIfDatabaseIsLocked;
protected boolean deleteAllMessages;
protected java.io.File directory;
protected java.io.File indexDirectory;
protected java.util.concurrent.ScheduledExecutorService scheduler;
private final java.lang.Object schedulerLock;
protected org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy;
protected boolean archiveDataLogs;
protected java.io.File directoryArchive;
protected java.util.concurrent.atomic.AtomicLong journalSize;
long journalDiskSyncInterval;
long checkpointInterval;
long cleanupInterval;
boolean cleanupOnStop;
int journalMaxFileLength;
int journalMaxWriteBatchSize;
boolean enableIndexWriteAsync;
int setIndexWriteBatchSize;
private java.lang.String preallocationScope;
private java.lang.String preallocationStrategy;
protected java.util.concurrent.atomic.AtomicBoolean opened;
private boolean ignoreMissingJournalfiles;
private int indexCacheSize;
private boolean checkForCorruptJournalFiles;
protected org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy;
private boolean checksumJournalFiles;
protected boolean forceRecoverIndex;
private boolean archiveCorruptedIndex;
private boolean useIndexLFRUEviction;
private float indexLFUEvictionFactor;
private boolean enableIndexDiskSyncs;
private boolean enableIndexRecoveryFile;
private boolean enableIndexPageCaching;
java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock;
private boolean enableAckCompaction;
private int compactAcksAfterNoGC;
private boolean compactAcksIgnoresStoreGrowth;
private int checkPointCyclesWithNoGC;
private int journalLogOnLastCompactionCheck;
private boolean enableSubscriptionStatistics;
protected final java.util.concurrent.atomic.AtomicReference lastAsyncJournalUpdate;
private org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition;
private org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition;
protected final java.util.concurrent.locks.ReentrantReadWriteLock indexLock;
private final java.util.HashSet journalFilesBeingReplicated;
final java.lang.Runnable nullCompletionCallback;
protected final java.util.HashMap storedDestinations;
protected final java.util.concurrent.ConcurrentMap storeCache;
private final java.util.LinkedHashMap inflightTransactions;
protected final java.util.LinkedHashMap preparedTransactions;
public void <init>()
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller v;
org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.HashMap v;
org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v;
java.util.concurrent.atomic.AtomicReference v;
java.util.HashSet v;
java.util.LinkedHashMap v, v;
int v;
java.lang.String v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy v;
org.apache.activemq.store.PersistenceAdapterStatistics v;
java.util.concurrent.ConcurrentHashMap v;
org.apache.activemq.store.kahadb.MessageDatabase$20 v;
java.io.File v;
java.util.concurrent.atomic.AtomicLong v;
java.lang.Object v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
specialinvoke v.<org.apache.activemq.util.ServiceSupport: void <init>()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$Metadata;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata> = v;
v = new org.apache.activemq.store.PersistenceAdapterStatistics;
specialinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics> = v;
v = new org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller metadataMarshaller> = v;
v = <org.apache.activemq.store.kahadb.MessageDatabase: java.io.File DEFAULT_DIRECTORY>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directory> = v;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory> = null;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Object schedulerLock> = v;
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy ALWAYS>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>(long)>(0L);
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicLong journalSize> = v;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long journalDiskSyncInterval> = 1000L;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval> = 5000L;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long cleanupInterval> = 30000L;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean cleanupOnStop> = 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxFileLength> = 33554432;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxWriteBatchSize> = 4194304;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexWriteAsync> = 0;
v = <org.apache.activemq.store.kahadb.disk.page.PageFile: int DEFAULT_WRITE_BATCH_SIZE>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int setIndexWriteBatchSize> = v;
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope: org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope ENTIRE_JOURNAL>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope: java.lang.String name()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationScope> = v;
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy SPARSE_FILE>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy: java.lang.String name()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationStrategy> = v;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicBoolean opened> = v;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean ignoreMissingJournalfiles> = 0;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int indexCacheSize> = 10000;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles> = 0;
v = <org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy NEVER>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy> = v;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checksumJournalFiles> = 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean forceRecoverIndex> = 0;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveCorruptedIndex> = 0;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean useIndexLFRUEviction> = 0;
v.<org.apache.activemq.store.kahadb.MessageDatabase: float indexLFUEvictionFactor> = 0.2F;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexDiskSyncs> = 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexRecoveryFile> = 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexPageCaching> = 1;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock> = v;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableAckCompaction> = 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int compactAcksAfterNoGC> = 10;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean compactAcksIgnoresStoreGrowth> = 0;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics> = 0;
v = new java.util.concurrent.atomic.AtomicReference;
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicReference lastAsyncJournalUpdate> = v;
v = new java.util.concurrent.locks.ReentrantReadWriteLock;
specialinvoke v.<java.util.concurrent.locks.ReentrantReadWriteLock: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock> = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashSet journalFilesBeingReplicated> = v;
v = new org.apache.activemq.store.kahadb.MessageDatabase$20;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$20: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Runnable nullCompletionCallback> = v;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ConcurrentMap storeCache> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions> = v;
return;
}
public void doStart() throws java.lang.Exception
{
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void load()>();
return;
}
public void doStop(org.apache.activemq.util.ServiceStopper) throws java.lang.Exception
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.util.ServiceStopper v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.util.ServiceStopper;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void unload()>();
return;
}
public void allowIOResumption()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void allowIOResumption()>();
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void allowIOResumption()>();
label:
return;
}
private void loadPageFile() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.HashMap v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$1 v;
org.apache.activemq.store.kahadb.MessageDatabase$2 v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
org.apache.activemq.store.kahadb.disk.page.Transaction v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile getPageFile()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void load()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$1;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$1: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.disk.page.PageFile)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
virtualinvoke v.<java.util.HashMap: void clear()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$2;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$2: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void flush()>();
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
private void startCheckpoint()
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
long v, v, v, v, v, v, v;
byte v, v, v, v;
java.util.concurrent.ScheduledExecutorService v, v, v, v;
java.lang.String v, v;
boolean v, v, v;
org.slf4j.Logger v;
java.util.concurrent.TimeUnit v;
java.lang.Object v;
org.apache.activemq.store.kahadb.MessageDatabase$3 v;
org.apache.activemq.store.kahadb.MessageDatabase$CheckpointRunner v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval>;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long cleanupInterval>;
v = v cmp 0L;
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean getCleanupOnStop()>();
if v == 0 goto label;
v = "shutdown/";
goto label;
label:
v = "";
label:
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[])>("periodic checkpoint/cleanup disabled, will occur on clean \u0001restart");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Object schedulerLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
v = interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: boolean isShutdown()>();
if v == 0 goto label;
label:
v = new org.apache.activemq.store.kahadb.MessageDatabase$3;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$3: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: boolean isJournalDiskSyncPeriodic()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long journalDiskSyncInterval>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long journalDiskSyncInterval>;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval>;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 500L);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval>;
v = v cmp 0L;
if v <= 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval>;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long cleanupInterval>;
label:
v = staticinvoke <java.lang.Math: long min(long,long)>(v, 500L);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$CheckpointRunner;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$CheckpointRunner: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)>(v, 0L, v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public void open() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v, v;
boolean v, v, v;
org.slf4j.Logger v, v, v;
java.lang.Exception v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicBoolean opened>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal getJournal()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void start()>();
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void loadPageFile()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Throwable)>(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[])>("Index corrupted. Recovering the index through journal replay. Cause:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>("Index load failure", v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void unload()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveCorruptedIndex>;
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void archive()>();
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void delete()>();
label:
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata createMetadata()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata> = v;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void configureMetadata()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile> = null;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void loadPageFile()>();
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void recover()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void startCheckpoint()>();
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public void load() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.Date v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.data.KahaTraceCommand v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v;
org.slf4j.Logger v;
java.io.File v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.io.File directory>;
staticinvoke <org.apache.activemq.util.IOHelper: void mkdirs(java.io.File)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean deleteAllMessages>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal getJournal()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setCheckForCorruptionOnStartup(boolean)>(0);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal getJournal()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void start()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal getJournal()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: boolean delete()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal getJournal()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void close()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal> = null;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile getPageFile()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void delete()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Persistence store purged.");
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean deleteAllMessages> = 0;
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void open()>();
v = new org.apache.activemq.store.kahadb.data.KahaTraceCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaTraceCommand: void <init>()>();
v = new java.util.Date;
specialinvoke v.<java.util.Date: void <init>()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.Date)>(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[])>("LOADED \u0001");
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaTraceCommand: java.lang.Object setMessage(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 close() throws java.io.IOException, java.lang.InterruptedException
{
java.lang.Throwable v, v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.atomic.AtomicBoolean v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.concurrent.ConcurrentMap v;
java.util.concurrent.ScheduledExecutorService v, v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v, v;
org.apache.activemq.store.kahadb.disk.page.Page v;
java.util.concurrent.atomic.AtomicLong v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicBoolean opened>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(1, 0);
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.page.Page page>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean getCleanupOnStop()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void checkpointUpdate(boolean)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void unload()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata createMetadata()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void close()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Object schedulerLock>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
staticinvoke <org.apache.activemq.util.ThreadPoolUtils: void shutdownGraceful(java.util.concurrent.ExecutorService,long)>(v, -1L);
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler> = null;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ConcurrentMap storeCache>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: void clear()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicLong journalSize>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: void set(long)>(0L);
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void unload() throws java.io.IOException, java.lang.InterruptedException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v, v;
boolean v;
org.apache.activemq.store.kahadb.disk.journal.Location[] v;
org.apache.activemq.store.kahadb.disk.page.Page v;
org.apache.activemq.store.kahadb.MessageDatabase$4 v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: boolean isLoaded()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: int state> = 1;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location[] getInProgressTxLocationRange()>();
v = v[0];
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location firstInProgressTransactionLocation> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.page.Page page>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$4;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$4: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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:
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void close()>();
return;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.store.kahadb.disk.journal.Location[] getInProgressTxLocationRange()
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.LinkedHashMap v, v, v, v, v;
boolean v, v, v, v, v, v;
java.util.Iterator v, v;
java.util.Collection v, v;
org.apache.activemq.store.kahadb.disk.journal.Location[] v;
java.lang.Object v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = newarray (org.apache.activemq.store.kahadb.disk.journal.Location)[2];
v[0] = null;
v[1] = null;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: 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()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void trackMaxAndMin(org.apache.activemq.store.kahadb.disk.journal.Location[],java.util.List)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: 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()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void trackMaxAndMin(org.apache.activemq.store.kahadb.disk.journal.Location[],java.util.List)>(v, v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void trackMaxAndMin(org.apache.activemq.store.kahadb.disk.journal.Location[], java.util.List)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Location[] v;
java.util.List v;
int v, v, v, v;
java.lang.Object v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location[];
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Operation: org.apache.activemq.store.kahadb.disk.journal.Location getLocation()>();
v = v[0];
if v == null goto label;
v = v[0];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v > 0 goto label;
label:
v[0] = v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Operation: org.apache.activemq.store.kahadb.disk.journal.Location getLocation()>();
v = v[1];
if v == null goto label;
v = v[1];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v < 0 goto label;
label:
v[1] = v;
label:
return;
}
public java.lang.String getTransactions()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$TranInfo v, v;
boolean v, v, v, v, v, v;
java.util.Set v, v;
java.lang.Throwable v, v;
java.util.ArrayList v;
java.util.LinkedHashMap v, v, v, v, v, v;
java.lang.String v;
java.util.Iterator v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$TranInfo;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: org.apache.activemq.command.TransactionId id> = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: 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.kahadb.MessageDatabase$TranInfo: void track(org.apache.activemq.store.kahadb.MessageDatabase$Operation)>(v);
goto label;
label:
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$TranInfo;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: org.apache.activemq.command.TransactionId id> = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: 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.kahadb.MessageDatabase$TranInfo: void track(org.apache.activemq.store.kahadb.MessageDatabase$Operation)>(v);
goto label;
label:
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<java.util.ArrayList: java.lang.String toString()>();
return 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 getPreparedTransaction(org.apache.activemq.command.TransactionId)
{
java.lang.Throwable v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$TranInfo v;
java.util.LinkedHashMap v, v, v;
java.lang.Object v, v, v;
java.lang.String v;
org.apache.activemq.command.TransactionId v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.command.TransactionId;
v = "";
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = new org.apache.activemq.store.kahadb.MessageDatabase$TranInfo;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: org.apache.activemq.command.TransactionId id> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: 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.kahadb.MessageDatabase$TranInfo: void track(org.apache.activemq.store.kahadb.MessageDatabase$Operation)>(v);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$TranInfo: java.lang.String toString()>();
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private void recover() throws java.lang.IllegalStateException, java.io.IOException
{
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v, v, v;
java.util.Set v, v;
org.apache.activemq.store.kahadb.data.KahaCommitCommand v;
java.lang.Throwable v, v, v;
long v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.LinkedHashMap v, v, v, v, v;
java.lang.String v, v, v, v, v, v, v;
java.util.LinkedHashSet v;
java.io.IOException v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v, v;
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
int[] v;
org.apache.activemq.store.kahadb.data.KahaRollbackCommand v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy v;
float v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
java.util.HashSet v, v;
int v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Iterator v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$5 v;
java.lang.Object v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean recoverProducerAudit()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean recoverAckMessageFileMap()>();
v = v | v;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location getRecoveryPosition()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(null);
goto label;
label:
v = v;
label:
v = v;
if v == null goto label;
v = 0;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location)>(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[])>("Recovering from the journal @\u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
if v == null goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void process(org.apache.activemq.store.kahadb.JournalCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
v = v + 1;
label:
goto label;
label:
v := @caughtexception;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isIgnoreMissingJournalfiles()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location)>(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 data at position:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Throwable)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void corruptRecoveryLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
goto label;
label:
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location)>(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 data at position:\u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void cleanup()>();
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v % 100000;
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location,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[])>("@\u, \u entries recovered ..");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v - v;
v = v / 1000.0F;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,float)>(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[])>("Recovery replayed \u operations from the journal in \u seconds.");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$5;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$5: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = virtualinvoke v.<org.apache.activemq.command.TransactionId: boolean isLocalTransaction()>();
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Set: 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()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.TransactionId)>(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[])>("rolling back recovered indoubt local transaction \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = new org.apache.activemq.store.kahadb.data.KahaRollbackCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaRollbackCommand: void <init>()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.store.kahadb.data.KahaTransactionInfo convertToLocal(org.apache.activemq.command.TransactionId)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRollbackCommand: java.lang.Object setTransactionInfo(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable)>(v, 0, null, null);
goto label;
label:
v = interfaceinvoke v.<java.util.Set: 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()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.TransactionId)>(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[])>("discarding recovered in-flight XA transaction \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
entermonitor v;
label:
v = new java.util.LinkedHashSet;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.util.Set keySet()>();
specialinvoke v.<java.util.LinkedHashSet: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.Set: 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()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase$21: int[] $SwitchMap$org$apache$activemq$store$kahadb$MessageDatabase$PurgeRecoveredXATransactionStrategy>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy: int ordinal()>();
v = v[v];
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
default: goto label;
};
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Recovered prepared XA TX: [{}]", v);
goto label;
label:
v = new org.apache.activemq.store.kahadb.data.KahaCommitCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaCommitCommand: void <init>()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.store.kahadb.data.KahaTransactionInfo convert(org.apache.activemq.command.TransactionId)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaCommitCommand: java.lang.Object setTransactionInfo(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable)>(v, 0, null, null);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Recovered and Committing prepared XA TX: [{}]", v);
goto label;
label:
v = new org.apache.activemq.store.kahadb.data.KahaRollbackCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaRollbackCommand: void <init>()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.store.kahadb.data.KahaTransactionInfo convert(org.apache.activemq.command.TransactionId)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRollbackCommand: java.lang.Object setTransactionInfo(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable)>(v, 0, null, null);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object)>("Recovered and Rolling Back prepared XA TX: [{}]", v);
goto label;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private org.apache.activemq.store.kahadb.data.KahaTransactionInfo createLocalTransactionInfo(org.apache.activemq.command.TransactionId)
{
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.command.TransactionId;
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.store.kahadb.data.KahaTransactionInfo convertToLocal(org.apache.activemq.command.TransactionId)>(v);
return v;
}
private org.apache.activemq.store.kahadb.disk.journal.Location minimum(org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.disk.journal.Location)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
if v == null goto label;
v = v;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v >= 0 goto label;
v = v;
goto label;
label:
v = v;
label:
return v;
}
private boolean recoverProducerAudit() throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.protobuf.Buffer v;
org.apache.activemq.ActiveMQMessageAuditNoSync v, v;
int v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v;
org.slf4j.Logger v;
org.apache.activemq.protobuf.BufferInputStream v;
java.lang.Exception v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream v;
java.lang.Object v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = 1;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
if v == null goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaProducerAuditCommand: org.apache.activemq.protobuf.Buffer getAudit()>();
v = virtualinvoke v.<org.apache.activemq.protobuf.Buffer: org.apache.activemq.protobuf.BufferInputStream newInput()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream: void <init>(java.io.InputStream)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getMaxFailoverProducersToTrack()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getFailoverProducersAuditDepth()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = virtualinvoke v.<java.io.ObjectInputStream: java.lang.Object readObject()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setAuditDepth(int)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setMaximumNumberOfProducersToTrack(int)>(v);
v = 0;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Cannot recover message audit", v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
private boolean recoverAckMessageFileMap() throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.protobuf.Buffer v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v;
org.slf4j.Logger v;
org.apache.activemq.protobuf.BufferInputStream v;
java.lang.Exception v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream v;
java.lang.Object v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = 1;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
if v == null goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAckMessageFileMapCommand: org.apache.activemq.protobuf.Buffer getAckMessageFileMap()>();
v = virtualinvoke v.<org.apache.activemq.protobuf.Buffer: org.apache.activemq.protobuf.BufferInputStream newInput()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageDatabaseObjectInputStream: void <init>(java.io.InputStream)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = virtualinvoke v.<java.io.ObjectInputStream: java.lang.Object readObject()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
v = 0;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Cannot recover ackMessageFileMap", v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected void recoverIndex(org.apache.activemq.store.kahadb.disk.page.Transaction) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v, v, v, v;
java.lang.Integer v, v;
byte v, v;
java.util.Map v, v, v;
long v, v, v, v, v, v, v, v, v, v, v;
java.util.LinkedHashMap v;
java.io.IOException v, v, v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
java.util.Collection v, v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v;
org.apache.activemq.store.kahadb.disk.util.SequenceSet v, v;
java.util.HashSet v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v;
int v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
java.util.Set v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.util.LinkedNode v;
java.util.ArrayList v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
float v, v;
java.util.HashMap v, v, v, v;
org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor v, v, v;
java.util.Iterator v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$8 v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v, v;
org.apache.activemq.store.kahadb.MessageDatabase$6 v;
org.apache.activemq.store.kahadb.MessageDatabase$7 v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getLastAppendLocation()>();
v = 0L;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$6;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$6: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.disk.journal.Location,java.util.ArrayList)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void visit(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.disk.index.BTreeVisitor)>(v, v);
v = virtualinvoke v.<java.util.ArrayList: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void rollback(java.lang.String)>(v);
v = v + 1L;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.String,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,long)>(v, v, v, v);
goto label;
label:
v = v cmp 0L;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v - v;
v = v / 1000.0F;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,float)>(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[])>("Rolled back \u messages from the index in \u seconds.");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = 0L;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = new org.apache.activemq.store.kahadb.disk.util.SequenceSet;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$7;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$7: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.disk.util.SequenceSet)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void visit(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.disk.index.BTreeVisitor)>(v, v);
goto label;
label:
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: long removeFirst()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Set: 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.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.util.Map getFileMap()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
virtualinvoke v.<java.util.HashSet: boolean removeAll(java.util.Collection)>(v);
v = virtualinvoke v.<java.util.HashSet: boolean isEmpty()>();
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.HashSet)>(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[])>("Some journal files are missing: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<java.util.HashSet: 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()>();
v = new org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor;
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, 0);
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + 1;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, 0);
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor: void <init>(java.lang.Comparable,java.lang.Comparable)>(v, v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles>;
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.util.Map getFileMap()>();
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()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: java.lang.Integer getDataFileId()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = new org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor;
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: int getLength()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, v);
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = v + 1;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, 0);
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor: void <init>(java.lang.Comparable,java.lang.Comparable)>(v, v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: org.apache.activemq.store.kahadb.disk.util.SequenceSet getCorruptedBlocks()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: org.apache.activemq.store.kahadb.disk.util.LinkedNode getHead()>();
label:
if v == null goto label;
v = new org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor;
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: long getFirst()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, v);
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: long getLast()>();
v = v + 1;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, v);
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeVisitor$BetweenVisitor: void <init>(java.lang.Comparable,java.lang.Comparable)>(v, v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: org.apache.activemq.store.kahadb.disk.util.LinkedNode getNext()>();
goto label;
label:
v = virtualinvoke v.<java.util.ArrayList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$8;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$8: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,java.util.List,java.util.LinkedHashMap)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void visit(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.disk.index.BTreeVisitor)>(v, v);
v = virtualinvoke v.<java.util.LinkedHashMap: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean ignoreMissingJournalfiles>;
if v == 0 goto label;
v = virtualinvoke v.<java.util.LinkedHashMap: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,org.apache.activemq.store.kahadb.disk.journal.Location)>(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] dropped: \u at corrupt location: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = v + 1L;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.String,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,long)>(v, v, v, v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,java.util.LinkedHashMap)>(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] references corrupt locations: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new java.io.IOException;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.util.LinkedHashMap: int size()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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[])>("Detected missing/corrupt journal files referenced by:[\u] \u messages affected.");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean ignoreMissingJournalfiles>;
if v != 0 goto label;
v = virtualinvoke v.<java.util.ArrayList: boolean isEmpty()>();
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>("Detected corrupt journal files. \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.ArrayList)>(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[])>("Detected corrupt journal files. \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.util.HashSet: boolean isEmpty()>();
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.HashSet)>(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[])>("Detected missing journal files. \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.HashSet)>(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[])>("Detected missing journal files. \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v cmp 0L;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v - v;
v = v / 1000.0F;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,float)>(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[])>("Detected missing/corrupt journal files.  Dropped \u messages from the index in \u seconds.");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
return;
}
public void incrementalRecover() throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition>;
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
if v != null goto label;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location getRecoveryPosition()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition> = v;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
v = null;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void process(org.apache.activemq.store.kahadb.JournalCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location lastRecoveryPosition>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location nextRecoveryPosition> = v;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 org.apache.activemq.store.kahadb.disk.journal.Location getLastUpdatePosition() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate>;
return v;
}
private org.apache.activemq.store.kahadb.disk.journal.Location getRecoveryPosition() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v;
boolean v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean forceRecoverIndex>;
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location firstInProgressTransactionLocation>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location firstInProgressTransactionLocation>;
return v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate>;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location getNextInitializedLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
return v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(null);
return v;
}
private org.apache.activemq.store.kahadb.disk.journal.Location getNextInitializedLocation(org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
int v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
v = (int) -1;
if v != v goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
v = (int) -1;
if v == v goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
return v;
label:
return v;
}
protected void checkpointCleanup(boolean) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.atomic.AtomicBoolean v;
long v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v, v;
byte v;
int v, v;
java.lang.String v;
boolean v, v, v;
org.slf4j.Logger v, v;
org.apache.activemq.store.PersistenceAdapterStatistics v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicBoolean opened>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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()>();
return;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void checkpointUpdate(boolean)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
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[])>("Slow KahaDB access: cleanup took \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
virtualinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void addSlowCleanupTime(long)>(v);
label:
return;
catch java.lang.Throwable from label to label with label;
}
public org.apache.activemq.util.ByteSequence toByteSequence(org.apache.activemq.store.kahadb.JournalCommand) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.util.DataByteArrayOutputStream v;
int v, v, v;
org.apache.activemq.store.kahadb.data.KahaEntryType v;
org.apache.activemq.util.ByteSequence v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v = interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: int serializedSizeFramed()>();
v = new org.apache.activemq.util.DataByteArrayOutputStream;
v = v + 1;
specialinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: void <init>(int)>(v);
v = interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: org.apache.activemq.store.kahadb.data.KahaEntryType type()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaEntryType: int getNumber()>();
virtualinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: void writeByte(int)>(v);
interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: void writeFramed(java.io.OutputStream)>(v);
v = virtualinvoke v.<org.apache.activemq.util.DataByteArrayOutputStream: org.apache.activemq.util.ByteSequence toByteSequence()>();
return v;
}
public org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable)>(v, 0, null, null);
return v;
}
public org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand, java.lang.Runnable) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Runnable v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v := @parameter: java.lang.Runnable;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable,java.lang.Runnable)>(v, 0, null, null, v);
return v;
}
public org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand, boolean, org.apache.activemq.store.kahadb.MessageDatabase$IndexAware, java.lang.Runnable) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
java.lang.Runnable v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v := @parameter: boolean;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$IndexAware;
v := @parameter: java.lang.Runnable;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,boolean,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware,java.lang.Runnable,java.lang.Runnable)>(v, v, v, v, null);
return v;
}
public org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand, boolean, org.apache.activemq.store.kahadb.MessageDatabase$IndexAware, java.lang.Runnable, java.lang.Runnable) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Runnable v, v;
byte v;
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
org.apache.activemq.util.ByteSequence v;
boolean v, v, v;
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.store.PersistenceAdapterStatistics v, v;
java.lang.Throwable v;
long v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.atomic.AtomicReference v;
int v, v;
java.lang.String v, v;
org.slf4j.Logger v, v, v;
java.io.IOException v;
org.apache.activemq.store.kahadb.data.KahaEntryType v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v := @parameter: boolean;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$IndexAware;
v := @parameter: java.lang.Runnable;
v := @parameter: java.lang.Runnable;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.util.ByteSequence toByteSequence(org.apache.activemq.store.kahadb.JournalCommand)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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 = staticinvoke <java.lang.System: long currentTimeMillis()>();
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location write(org.apache.activemq.util.ByteSequence,boolean)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location write(org.apache.activemq.util.ByteSequence,java.lang.Runnable)>(v, v);
label:
v = v;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: boolean isJournalDiskSyncPeriodic()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicReference lastAsyncJournalUpdate>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: void set(java.lang.Object)>(v);
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void process(org.apache.activemq.store.kahadb.JournalCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v - v;
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(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[])>("Slow KahaDB access: Journal append took: \u ms, Index update took \u ms");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
virtualinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void addSlowWriteTime(long)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
virtualinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void addWriteTime(long)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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;
interfaceinvoke v.<java.lang.Runnable: void run()>();
label:
return v;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: org.apache.activemq.store.kahadb.data.KahaEntryType type()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.data.KahaEntryType)>(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[])>("KahaDB failed to store to Journal, command of type: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.broker.BrokerService brokerService>;
virtualinvoke v.<org.apache.activemq.broker.BrokerService: void handleIOException(java.io.IOException)>(v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
public org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
long v, v, v;
org.apache.activemq.protobuf.Message v;
byte v, v;
org.apache.activemq.util.DataByteArrayInputStream v;
int v, v;
java.lang.String v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.util.ByteSequence v;
boolean v;
org.slf4j.Logger v, v;
org.apache.activemq.store.PersistenceAdapterStatistics v, v;
java.io.IOException v;
org.apache.activemq.store.kahadb.data.KahaEntryType v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.util.ByteSequence read(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME>;
v = v cmp v;
if v <= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
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[])>("Slow KahaDB access: Journal read took: \u ms");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
virtualinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void addSlowReadTime(long)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
virtualinvoke v.<org.apache.activemq.store.PersistenceAdapterStatistics: void addReadTime(long)>(v);
v = new org.apache.activemq.util.DataByteArrayInputStream;
specialinvoke v.<org.apache.activemq.util.DataByteArrayInputStream: void <init>(org.apache.activemq.util.ByteSequence)>(v);
v = virtualinvoke v.<org.apache.activemq.util.DataByteArrayInputStream: byte readByte()>();
v = staticinvoke <org.apache.activemq.store.kahadb.data.KahaEntryType: org.apache.activemq.store.kahadb.data.KahaEntryType valueOf(int)>(v);
if v != null goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (byte,org.apache.activemq.store.kahadb.disk.journal.Location)>(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 load journal record, null type information from: \u at location: \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaEntryType: org.apache.activemq.protobuf.Message createMessage()>();
interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: java.lang.Object mergeFramed(java.io.InputStream)>(v);
return v;
}
void process(org.apache.activemq.store.kahadb.JournalCommand, org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$9 v;
int v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v < 0 goto label;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void initMessageStore(org.apache.activemq.store.kahadb.JournalCommand)>(v);
v = null;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void process(org.apache.activemq.store.kahadb.JournalCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v);
goto label;
label:
v = new org.apache.activemq.store.kahadb.MessageDatabase$9;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$9: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: void visit(org.apache.activemq.store.kahadb.Visitor)>(v);
label:
return;
}
private void initMessageStore(org.apache.activemq.store.kahadb.JournalCommand) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase$10 v;
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v = new org.apache.activemq.store.kahadb.MessageDatabase$10;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$10: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: void visit(org.apache.activemq.store.kahadb.Visitor)>(v);
return;
}
void process(org.apache.activemq.store.kahadb.JournalCommand, org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.MessageDatabase$IndexAware) throws java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$11 v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$IndexAware;
v = new org.apache.activemq.store.kahadb.MessageDatabase$11;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$11: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v);
interfaceinvoke v.<org.apache.activemq.store.kahadb.JournalCommand: void visit(org.apache.activemq.store.kahadb.Visitor)>(v);
return;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaAddMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.MessageDatabase$IndexAware) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$12 v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
java.util.List v;
org.apache.activemq.store.kahadb.MessageDatabase$AddOperation v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.data.KahaAddMessageCommand v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaAddMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$IndexAware;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: boolean hasTransactionInfo()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaTransactionInfo getTransactionInfo()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.List getInflightTx(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = new org.apache.activemq.store.kahadb.MessageDatabase$AddOperation;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$AddOperation: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaAddMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$12;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$12: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaAddMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.MessageDatabase$IndexAware)>(v, v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$13 v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$13;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$13: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$14 v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$RemoveOperation v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
java.util.List v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: boolean hasTransactionInfo()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.store.kahadb.data.KahaTransactionInfo getTransactionInfo()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.List getInflightTx(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = new org.apache.activemq.store.kahadb.MessageDatabase$RemoveOperation;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$RemoveOperation: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$14;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$14: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$15 v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$15;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$15: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$16 v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$16;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$16: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void processLocation(org.apache.activemq.store.kahadb.disk.journal.Location)
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaCommitCommand, org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.MessageDatabase$IndexAware) throws java.io.IOException
{
java.lang.Throwable v, v;
org.apache.activemq.store.kahadb.MessageDatabase$17 v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.LinkedHashMap v, v, v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
org.apache.activemq.store.kahadb.data.KahaCommitCommand v;
java.lang.Object v;
org.apache.activemq.store.kahadb.MessageDatabase$IndexAware v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaCommitCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$IndexAware;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaCommitCommand: org.apache.activemq.store.kahadb.data.KahaTransactionInfo getTransactionInfo()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.command.TransactionId convert(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != null goto label;
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$IndexAware: void sequenceAssignedWithIndexLocked(long)>(-1L);
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void processLocation(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
return;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$17;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$17: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,java.util.List,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void execute(org.apache.activemq.store.kahadb.disk.page.Transaction$Closure)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
catch java.lang.Throwable from label to label with label;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaPrepareCommand, org.apache.activemq.store.kahadb.disk.journal.Location)
{
java.lang.Throwable v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.LinkedHashMap v, v, v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v, v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.data.KahaPrepareCommand v;
java.lang.Object v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaPrepareCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaPrepareCommand: org.apache.activemq.store.kahadb.data.KahaTransactionInfo getTransactionInfo()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.command.TransactionId convert(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 = interfaceinvoke v.<java.util.List: 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()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Operation: org.apache.activemq.store.kahadb.disk.journal.Location getLocation()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void recordAckMessageReferenceLocation(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
catch java.lang.Throwable from label to label with label;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaRollbackCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
java.lang.Throwable v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v;
java.util.LinkedHashMap v, v, v;
org.apache.activemq.store.kahadb.data.KahaRollbackCommand v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v, v, v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
java.util.Iterator v;
java.lang.Object v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRollbackCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRollbackCommand: org.apache.activemq.store.kahadb.data.KahaTransactionInfo getTransactionInfo()>();
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.command.TransactionId convert(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap preparedTransactions>;
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object remove(java.lang.Object)>(v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.TransactionId: boolean isXATransaction()>();
if v == 0 goto label;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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 = interfaceinvoke v.<java.util.List: 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()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Operation: org.apache.activemq.store.kahadb.disk.journal.Location getLocation()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void recordAckMessageReferenceLocation(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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;
catch java.lang.Throwable from label to label with label;
}
protected void process(org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Integer v;
java.util.TreeSet v;
java.util.Map v;
int v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v, v;
java.util.Set v;
org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand v;
org.apache.activemq.store.kahadb.disk.journal.DataFile v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = new java.util.TreeSet;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.util.Map getFileMap()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
specialinvoke v.<java.util.TreeSet: void <init>(java.util.Collection)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.DataFile getDataFileById(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: int getRewriteType()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: void setTypeCode(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: int getSourceDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.util.TreeSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: boolean getSkipIfSourceExists()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxFileLength>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void setOffset(int)>(v);
label:
return;
}
long updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaAddMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
java.lang.Long v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.data.KahaAddMessageCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v;
org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType v;
java.lang.Object[] v;
long v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v, v, v;
int v, v, v;
java.lang.String v, v, v, v, v, v;
org.slf4j.Logger v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v, v;
java.lang.Object v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaAddMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getExistingStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
if v != null goto label;
return -1L;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: boolean isEmpty(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v == 0 goto label;
return -1L;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: boolean getPrioritySupported()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: int getPriority()>();
goto label;
label:
v = 4;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long getNextMessageId()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: void <init>(java.lang.String,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys put(org.apache.activemq.store.kahadb.disk.page.Transaction,int,java.lang.Long,org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys)>(v, v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: boolean isEmpty(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void addAckLocationForNewMessage(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.Long)>(v, v, v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v >= 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType getType()>();
v[0] = v;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: java.lang.String getName()>();
v[1] = v;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Duplicate message add attempt rejected. Destination: {}://{}, Message id: {}", v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = -1L;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void revertNextMessageId()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: boolean isDuplicate(java.lang.String)>(v);
return v;
}
void trackPendingAdd(org.apache.activemq.store.kahadb.data.KahaDestination, java.lang.Long)
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
java.lang.Long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Object v;
java.util.HashMap v;
java.lang.String v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: java.lang.Long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: void trackPendingAdd(java.lang.Long)>(v);
label:
return;
}
void trackPendingAddComplete(org.apache.activemq.store.kahadb.data.KahaDestination, java.lang.Long)
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
java.lang.Long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Object v;
java.util.HashMap v;
java.lang.String v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: java.lang.Long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: void trackPendingAddComplete(java.lang.Long)>(v);
label:
return;
}
void updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v;
boolean v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.data.KahaAddMessageCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
long v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
int v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v, v, v, v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v, v;
java.lang.Object v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaUpdateMessageCommand: org.apache.activemq.store.kahadb.data.KahaAddMessageCommand getMessage()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: boolean getPrioritySupported()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: int getPriority()>();
goto label;
label:
v = 4;
label:
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: java.lang.String getMessageId()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: void <init>(java.lang.String,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys put(org.apache.activemq.store.kahadb.disk.page.Transaction,int,java.lang.Long,org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys)>(v, v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics>;
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
if v == v goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean contains(long)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(java.lang.String,java.lang.String,long)>(v, v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAddMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(java.lang.String,java.lang.String,long)>(v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
goto label;
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: long updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaAddMessageCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, v);
label:
return;
}
void updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.protobuf.Buffer v, v;
byte v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v;
boolean v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v;
long v;
org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v, v, v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v, v;
org.apache.activemq.store.kahadb.MessageDatabase$LastAck v;
java.lang.Object v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: boolean hasSubscriptionKey()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void recordAckMessageReferenceLocation(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getMessageId()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.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[])>("message not found in order index: \u for: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getMessageId()>();
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[])>("message not found in sequence id index: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getSubscriptionKey()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.protobuf.Buffer getAck()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.protobuf.Buffer UNMATCHED>;
if v == v goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: byte lastGetPriority()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$LastAck;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$LastAck: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,long,byte)>(v, v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void recordAckMessageReferenceLocation(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void removeAckLocation(org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand,org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.String,java.lang.Long)>(v, v, v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate> = v;
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: java.lang.String getSubscriptionKey()>();
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[])>("on ack, no message sequence exists for id: \u and sub: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
label:
return;
}
private void recordAckMessageReferenceLocation(org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.disk.journal.Location)
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.atomic.AtomicBoolean v;
java.lang.Integer v, v, v, v;
java.util.HashSet v;
java.util.Map v, v;
int v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v;
java.lang.Object v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
return;
}
void updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
java.util.HashMap v;
long v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand v;
java.util.concurrent.ConcurrentMap v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v, v, v, v;
java.lang.String v, v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void remove(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: long getPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: long getPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: long getPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics> = null;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: long getPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: long getPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: long getHeadPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void clear(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void unload(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: long getHeadPageId()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void free(long)>(v);
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
virtualinvoke v.<java.util.HashMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.index.BTreeIndex destinations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void clearStoreStats(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ConcurrentMap storeCache>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
return;
}
void updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand, org.apache.activemq.store.kahadb.disk.journal.Location) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
long v, v;
org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand v;
java.util.HashSet v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
int v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v;
java.lang.String v, v, v;
org.slf4j.Logger v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$LastAck v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: java.lang.String getSubscriptionKey()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: boolean hasSubscriptionInfo()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int compareTo(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location)>(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 journal replay of replay of sub from: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
return;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = -1L;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: boolean getRetroactive()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId>;
v = v - 1L;
goto label;
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void addAckLocationForRetroactiveSub(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.String)>(v, v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$LastAck;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$LastAck: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,long)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashSet subscriptionCache>;
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashSet subscriptionCache>;
virtualinvoke v.<java.util.HashSet: boolean remove(java.lang.Object)>(v);
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void removeAckLocationsForSub(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand,org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.String)>(v, v, v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreSubscriptionStatistics getSubStats(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: void removeSubscription(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: boolean isEmpty(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v == 0 goto label;
v = new org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand: java.lang.Object setDestination(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void updateIndex(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaRemoveDestinationCommand,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v, null);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void clearStoreStats(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
label:
return;
}
private void checkpointUpdate(boolean) throws java.io.IOException
{
java.lang.Throwable v, v;
org.apache.activemq.store.kahadb.MessageDatabase$18 v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v, v, v, v, v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v;
boolean v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: org.apache.activemq.store.kahadb.disk.page.Transaction tx()>();
v = new org.apache.activemq.store.kahadb.MessageDatabase$18;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$18: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,boolean)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: java.lang.Object execute(org.apache.activemq.store.kahadb.disk.page.Transaction$CallableClosure)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void flush()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void removeDataFiles(java.util.Set)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock checkpointLock>;
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;
catch java.lang.Throwable from label to label with label;
}
java.util.Set checkpointUpdate(org.apache.activemq.store.kahadb.disk.page.Transaction, boolean) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v;
java.lang.Integer v, v, v, v, v, v, v, v, v, v, v, v;
byte v;
java.lang.Long v;
java.util.Map v, v, v, v, v, v;
java.lang.Object[] v, v;
long v, v, v;
java.util.concurrent.ScheduledExecutorService v;
java.util.SortedSet v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
java.util.Collection v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicBoolean v, v, v, v;
java.util.HashSet v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Page v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
java.util.Set v, v;
java.lang.Exception v;
org.apache.activemq.store.kahadb.disk.util.LinkedNode v;
org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller v;
java.util.TreeSet v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
java.io.File v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$AckCompactionRunner v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v;
java.util.HashMap v;
org.apache.activemq.store.kahadb.MessageDatabase$19 v;
java.util.Iterator v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location[] v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: boolean;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File getDirectory()>();
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
staticinvoke <org.slf4j.MDC: void put(java.lang.String,java.lang.String)>("activemq.persistenceDir", v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checkpoint started.");
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location lastUpdate>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: int state> = 2;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location checkpointProducerAudit()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
if v != null goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location checkpointAckMessageFileMap()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(0);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location[] getInProgressTxLocationRange()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v[0];
v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location firstInProgressTransactionLocation> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.page.Page page>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$MetadataMarshaller metadataMarshaller>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: void store(org.apache.activemq.store.kahadb.disk.page.Page,org.apache.activemq.store.kahadb.disk.util.Marshaller,boolean)>(v, v, 1);
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
if v == 0 goto label;
v = new java.util.TreeSet;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.util.Map getFileMap()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
specialinvoke v.<java.util.TreeSet: void <init>(java.util.Collection)>(v);
virtualinvoke v.<java.util.TreeSet: boolean addAll(java.util.Collection)>(v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location,java.util.TreeSet)>(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[])>("Last update: \u, full gc candidates set: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
if v == null goto label;
v = new java.util.TreeSet;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.util.TreeSet: java.util.SortedSet tailSet(java.lang.Object)>(v);
specialinvoke v.<java.util.TreeSet: void <init>(java.util.SortedSet)>(v);
virtualinvoke v.<java.util.TreeSet: boolean removeAll(java.util.Collection)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashSet journalFilesBeingReplicated>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashSet journalFilesBeingReplicated>;
virtualinvoke v.<java.util.TreeSet: boolean removeAll(java.util.Collection)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<java.util.TreeSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.util.TreeSet: java.lang.Object first()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v != v goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setModified(boolean)>(1);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location)>(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[])>("rewriting producerSequenceIdTracker:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.TreeSet: boolean remove(java.lang.Object)>(v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location,java.util.TreeSet)>(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[])>("gc candidates after producerSequenceIdTrackerLocation:\u, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.TreeSet: boolean remove(java.lang.Object)>(v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location ackMessageFileMapLocation>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.store.kahadb.disk.journal.Location,java.util.TreeSet)>(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[])>("gc candidates after ackMessageFileMapLocation:\u, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = v[0];
if v == null goto label;
v = v[0];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
label:
v = v[1];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
if v > v goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.TreeSet: boolean remove(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List,java.util.TreeSet)>(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[])>("gc candidates after in progress tx range:\u, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = virtualinvoke v.<java.util.TreeSet: boolean isEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$19;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$19: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,java.util.TreeSet)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void visit(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.disk.index.BTreeVisitor)>(v, v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
if v == null goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = virtualinvoke v.<java.util.TreeSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<java.util.TreeSet: java.lang.Object first()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v != v goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: int size()>();
if v != 1 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: org.apache.activemq.store.kahadb.disk.util.LinkedNode getTail()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: long range()>();
v = v cmp 1L;
if v != 0 goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v[0] = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("Found candidate for rewrite: sub {} on {} from file {}", v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location checkpointSubscriptionCommand(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[4];
v[0] = v;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v[1] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: long rangeSize()>();
v = v - 1L;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[3] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("sub {} on {} in dataFile {} has pendingCount {}", v);
label:
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<java.util.TreeSet: boolean remove(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Object,java.util.TreeSet)>(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[])>("gc candidates after dest:\u, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.TreeSet)>(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[])>("gc candidates: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.Map)>(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[])>("ackMessageFileMap: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
label:
v = 0;
v = virtualinvoke v.<java.util.TreeSet: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Set: 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()>();
v = virtualinvoke v.<java.util.TreeSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<java.util.TreeSet: boolean contains(java.lang.Object)>(v);
if v != 0 goto label;
interfaceinvoke v.<java.util.Iterator: void remove()>();
label:
v = virtualinvoke v.<java.util.TreeSet: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v == null goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v | v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Integer,java.util.Set)>(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[])>("not removing data file: \u as contained ack(s) refer to referenced file: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.TreeSet: boolean isEmpty()>();
if v != 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Cleanup removing the data files: {}", v);
v = virtualinvoke v.<java.util.TreeSet: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
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()>();
v = interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
v = v | v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
goto label;
label:
if v == 0 goto label;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.Set checkpointUpdate(org.apache.activemq.store.kahadb.disk.page.Transaction,boolean)>(v, 0);
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableAckCompaction()>();
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int checkPointCyclesWithNoGC>;
v = v + 1;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int checkPointCyclesWithNoGC> = v;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getCompactAcksAfterNoGC()>();
if v < v goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map: int size()>();
if v <= 1 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalLogOnLastCompactionCheck>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.lang.Integer getCurrentDataFileId()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isCompactAcksIgnoresStoreGrowth()>();
if v == 0 goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("No files GC\'d checking if threshold to ACK compaction has been met.");
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ScheduledExecutorService scheduler>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$AckCompactionRunner;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$AckCompactionRunner: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
interfaceinvoke v.<java.util.concurrent.ScheduledExecutorService: void execute(java.lang.Runnable)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Error on queueing the Ack Compactor", v);
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String)>("Journal activity detected, no Ack compaction scheduled.");
label:
v.<org.apache.activemq.store.kahadb.MessageDatabase: int checkPointCyclesWithNoGC> = 0;
goto label;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int checkPointCyclesWithNoGC>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getCompactAcksAfterNoGC()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Not yet time to check for compaction: {} of {} cycles", v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.lang.Integer getCurrentDataFileId()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalLogOnLastCompactionCheck> = v;
label:
staticinvoke <org.slf4j.MDC: void remove(java.lang.String)>("activemq.persistenceDir");
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>("Checkpoint done.");
return v;
catch java.lang.Exception from label to label with label;
}
private boolean blockedFromCompaction(int)
{
org.slf4j.Logger v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Integer v, v;
org.apache.activemq.store.kahadb.disk.journal.Location[] v;
int v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: java.lang.Integer getCurrentDataFileId()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
if v != v goto label;
return 1;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location[] getInProgressTxLocationRange()>();
v = v[0];
if v == null goto label;
v = v[0];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
label:
v = v[1];
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
if v > v goto label;
if v != v goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Compaction target:{} blocked by inflight transaction records: {}", v, v);
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
private void forwardAllAcks(java.lang.Integer, java.util.Set) throws java.lang.IllegalStateException, java.io.IOException
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock v, v;
java.lang.Integer v, v;
java.util.Map v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v, v;
org.apache.activemq.util.ByteSequence v, v;
boolean v, v;
java.util.Set v, v;
org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand v;
java.lang.Throwable v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v, v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
java.util.HashMap v;
java.util.concurrent.locks.ReentrantReadWriteLock v, v;
java.util.HashSet v;
org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender v;
int v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v, v, v;
java.util.Iterator v;
java.io.IOException v;
java.lang.Object v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.DataFile v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.Integer;
v := @parameter: java.util.Set;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object,java.lang.Object)>("Attempting to move all acks in journal:{} to the front. Referenced files:{}", v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.DataFile reserveDataFile()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: void setTypeCode(int)>(1);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Reserved file for forwarded acks: {}", v);
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender: void <init>(org.apache.activemq.store.kahadb.disk.journal.Journal,org.apache.activemq.store.kahadb.disk.journal.DataFile)>(v, v);
label:
v = new org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: void <init>()>();
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: java.lang.Object setSourceDataFileId(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.DataFile: int getTypeCode()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRewrittenDataFileCommand: java.lang.Object setRewriteType(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.util.ByteSequence toByteSequence(org.apache.activemq.store.kahadb.JournalCommand)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender: org.apache.activemq.store.kahadb.disk.journal.Location storeItem(org.apache.activemq.util.ByteSequence,byte,boolean)>(v, 1, 0);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Marked ack rewrites file as replacing file: {}", v);
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = v + 1;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, 0);
v = new org.apache.activemq.store.kahadb.disk.journal.Location;
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: void <init>(int,int)>(v, 0);
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocationForAckForward(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
label:
if v == null goto label;
v = null;
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.JournalCommand load(org.apache.activemq.store.kahadb.disk.journal.Location)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Error loading command during ack forward: {}", v);
label:
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean shouldForward(org.apache.activemq.store.kahadb.JournalCommand)>(v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.util.ByteSequence toByteSequence(org.apache.activemq.store.kahadb.JournalCommand)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender: org.apache.activemq.store.kahadb.disk.journal.Location storeItem(org.apache.activemq.util.ByteSequence,byte,boolean)>(v, 1, 0);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getDataFileId()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocationForAckForward(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.TargetedDataFileAppender: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("ACKS forwarded, updates for ack locations: {}", v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
interfaceinvoke v.<java.util.Set: boolean addAll(java.util.Collection)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.concurrent.atomic.AtomicBoolean ackMessageFileMapDirtyFlag>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void lazySet(boolean)>(1);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.locks.ReentrantReadWriteLock indexLock>;
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()>();
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("ACK File Map following updates: {}", v);
return;
catch java.io.IOException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private boolean shouldForward(org.apache.activemq.store.kahadb.JournalCommand)
{
org.apache.activemq.store.kahadb.JournalCommand v;
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.JournalCommand;
if v != null goto label;
return 0;
label:
v = v instanceof org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand;
if v != 0 goto label;
v = v instanceof org.apache.activemq.store.kahadb.data.KahaCommitCommand;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private org.apache.activemq.store.kahadb.disk.journal.Location getNextLocationForAckForward(org.apache.activemq.store.kahadb.disk.journal.Location, org.apache.activemq.store.kahadb.disk.journal.Location)
{
org.slf4j.Logger v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.IOException v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
boolean v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v := @parameter: org.apache.activemq.store.kahadb.disk.journal.Location;
v = null;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location getNextLocation(org.apache.activemq.store.kahadb.disk.journal.Location,org.apache.activemq.store.kahadb.disk.journal.Location)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to load next journal location after: {}, reason: {}", v, v);
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Failed to load next journal location after: {}", v, v);
label:
return v;
catch java.io.IOException from label to label with label;
}
private org.apache.activemq.store.kahadb.disk.journal.Location checkpointProducerAudit() throws java.io.IOException
{
byte[] v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v;
java.io.ByteArrayOutputStream v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.protobuf.Buffer v;
java.io.InterruptedIOException v;
java.lang.Runnable v;
java.util.concurrent.atomic.AtomicReference v, v;
org.apache.activemq.ActiveMQMessageAuditNoSync v, v, v;
java.io.ObjectOutputStream v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v;
org.apache.activemq.store.kahadb.data.KahaProducerAuditCommand v;
java.util.concurrent.CountDownLatch v;
java.lang.InterruptedException v;
java.lang.Object v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: boolean modified()>();
if v == 0 goto label;
label:
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.ObjectOutputStream;
specialinvoke v.<java.io.ObjectOutputStream: void <init>(java.io.OutputStream)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<java.io.ObjectOutputStream: void writeObject(java.lang.Object)>(v);
virtualinvoke v.<java.io.ObjectOutputStream: void flush()>();
virtualinvoke v.<java.io.ObjectOutputStream: void close()>();
v = new org.apache.activemq.store.kahadb.data.KahaProducerAuditCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaProducerAuditCommand: void <init>()>();
v = new org.apache.activemq.protobuf.Buffer;
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
specialinvoke v.<org.apache.activemq.protobuf.Buffer: void <init>(byte[])>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaProducerAuditCommand: java.lang.Object setAudit(org.apache.activemq.protobuf.Buffer)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Runnable nullCompletionCallback>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,java.lang.Runnable)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: java.util.concurrent.CountDownLatch getLatch()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: java.util.concurrent.atomic.AtomicReference getException()>();
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: java.util.concurrent.atomic.AtomicReference getException()>();
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
throw v;
label:
v := @caughtexception;
v = new java.io.InterruptedIOException;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
specialinvoke v.<java.io.InterruptedIOException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.journal.Location producerSequenceIdTrackerLocation>;
return v;
catch java.lang.InterruptedException from label to label with label;
}
private org.apache.activemq.store.kahadb.disk.journal.Location checkpointAckMessageFileMap() throws java.io.IOException
{
byte[] v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
java.io.ByteArrayOutputStream v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.protobuf.Buffer v;
java.io.InterruptedIOException v;
java.lang.Runnable v;
java.util.concurrent.CountDownLatch v;
java.lang.InterruptedException v;
org.apache.activemq.store.kahadb.data.KahaAckMessageFileMapCommand v;
java.util.Map v;
java.io.ObjectOutputStream v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = new java.io.ByteArrayOutputStream;
specialinvoke v.<java.io.ByteArrayOutputStream: void <init>()>();
v = new java.io.ObjectOutputStream;
specialinvoke v.<java.io.ObjectOutputStream: void <init>(java.io.OutputStream)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: java.util.Map ackMessageFileMap>;
virtualinvoke v.<java.io.ObjectOutputStream: void writeObject(java.lang.Object)>(v);
virtualinvoke v.<java.io.ObjectOutputStream: void flush()>();
virtualinvoke v.<java.io.ObjectOutputStream: void close()>();
v = new org.apache.activemq.store.kahadb.data.KahaAckMessageFileMapCommand;
specialinvoke v.<org.apache.activemq.store.kahadb.data.KahaAckMessageFileMapCommand: void <init>()>();
v = new org.apache.activemq.protobuf.Buffer;
v = virtualinvoke v.<java.io.ByteArrayOutputStream: byte[] toByteArray()>();
specialinvoke v.<org.apache.activemq.protobuf.Buffer: void <init>(byte[])>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaAckMessageFileMapCommand: java.lang.Object setAckMessageFileMap(org.apache.activemq.protobuf.Buffer)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Runnable nullCompletionCallback>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Location store(org.apache.activemq.store.kahadb.JournalCommand,java.lang.Runnable)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: java.util.concurrent.CountDownLatch getLatch()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.InterruptedIOException;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
specialinvoke v.<java.io.InterruptedIOException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.lang.InterruptedException from label to label with label;
}
private org.apache.activemq.store.kahadb.disk.journal.Location checkpointSubscriptionCommand(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand v;
java.io.InterruptedIOException v;
java.lang.Runnable v;
java.util.concurrent.CountDownLatch v;
java.lang.InterruptedException v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
org.apache.activemq.util.ByteSequence v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.util.ByteSequence toByteSequence(org.apache.activemq.store.kahadb.JournalCommand)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.Runnable nullCompletionCallback>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: org.apache.activemq.store.kahadb.disk.journal.Location write(org.apache.activemq.util.ByteSequence,java.lang.Runnable)>(v, v);
label:
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: java.util.concurrent.CountDownLatch getLatch()>();
virtualinvoke v.<java.util.concurrent.CountDownLatch: void await()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.io.InterruptedIOException;
v = virtualinvoke v.<java.lang.InterruptedException: java.lang.String toString()>();
specialinvoke v.<java.io.InterruptedIOException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
catch java.lang.InterruptedException from label to label with label;
}
public java.util.HashSet getJournalFilesBeingReplicated()
{
java.util.HashSet v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashSet journalFilesBeingReplicated>;
return v;
}
protected org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination, org.apache.activemq.store.kahadb.disk.page.Transaction) throws java.io.IOException
{
org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType v, v, v, v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.HashMap v, v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType getType()>();
v = <org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType TOPIC>;
if v == v goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType getType()>();
v = <org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType TEMP_TOPIC>;
if v != v goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination loadStoredDestination(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.String,boolean)>(v, v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
virtualinvoke v.<java.util.HashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
return v;
}
protected org.apache.activemq.store.MessageStoreStatistics getStoredMessageStoreStatistics(org.apache.activemq.store.kahadb.data.KahaDestination, org.apache.activemq.store.kahadb.disk.page.Transaction) throws java.io.IOException
{
org.apache.activemq.store.MessageStoreStatistics v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics v, v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: org.apache.activemq.store.MessageStoreStatistics get(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
goto label;
label:
v = null;
label:
return v;
}
protected org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getExistingStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination, org.apache.activemq.store.kahadb.disk.page.Transaction) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.HashMap v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.HashMap storedDestinations>;
v = virtualinvoke v.<java.util.HashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.index.BTreeIndex destinations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: boolean containsKey(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
label:
return v;
}
private org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination loadStoredDestination(org.apache.activemq.store.kahadb.disk.page.Transaction, java.lang.String, boolean) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
byte v, v;
org.apache.activemq.store.kahadb.MessageDatabase$LocationSizeMarshaller v;
long v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.util.StringMarshaller v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.util.LongMarshaller v, v;
org.apache.activemq.store.kahadb.disk.util.SequenceSet$Marshaller v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics v, v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.util.LocationMarshaller v;
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v, v, v, v, v, v;
java.util.HashSet v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v, v, v, v, v, v, v, v, v, v, v, v;
int v, v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Page v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
org.apache.activemq.store.kahadb.MessageDatabase$KahaSubscriptionCommandMarshaller v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor v;
org.apache.activemq.store.kahadb.MessageDatabase$LastAckMarshaller v;
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.util.HashMap v;
java.util.Iterator v, v, v, v, v, v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: java.lang.String;
v := @parameter: boolean;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.index.BTreeIndex destinations>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v != null goto label;
v = new org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void allocate(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = new org.apache.activemq.store.kahadb.disk.index.BTreeIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex> = v;
v = new org.apache.activemq.store.kahadb.disk.index.BTreeIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex> = v;
if v == 0 goto label;
v = new org.apache.activemq.store.kahadb.disk.index.BTreeIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions> = v;
v = new org.apache.activemq.store.kahadb.disk.index.BTreeIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks> = v;
v = new org.apache.activemq.store.kahadb.disk.index.ListIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions> = v;
v = new org.apache.activemq.store.kahadb.disk.index.ListIndex;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void <init>(org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations> = v;
label:
v = new org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.Transaction: org.apache.activemq.store.kahadb.disk.page.Page allocate()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,org.apache.activemq.store.kahadb.disk.page.PageFile,org.apache.activemq.store.kahadb.disk.page.Page)>(v, v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.index.BTreeIndex destinations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void configureLast(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$LocationSizeMarshaller;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$LocationSizeMarshaller: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = <org.apache.activemq.store.kahadb.disk.util.LongMarshaller: org.apache.activemq.store.kahadb.disk.util.LongMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = <org.apache.activemq.store.kahadb.disk.util.StringMarshaller: org.apache.activemq.store.kahadb.disk.util.StringMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = <org.apache.activemq.store.kahadb.disk.util.LongMarshaller: org.apache.activemq.store.kahadb.disk.util.LongMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: int version>;
if v >= 6 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: byte lastGetPriority()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys put(org.apache.activemq.store.kahadb.disk.page.Transaction,int,java.lang.Long,org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys)>(v, v, v, v);
goto label;
label:
if v == 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = <org.apache.activemq.store.kahadb.disk.util.StringMarshaller: org.apache.activemq.store.kahadb.disk.util.StringMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
v = <org.apache.activemq.store.kahadb.MessageDatabase$KahaSubscriptionCommandMarshaller: org.apache.activemq.store.kahadb.MessageDatabase$KahaSubscriptionCommandMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = <org.apache.activemq.store.kahadb.disk.util.StringMarshaller: org.apache.activemq.store.kahadb.disk.util.StringMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$LastAckMarshaller;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$LastAckMarshaller: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = <org.apache.activemq.store.kahadb.disk.util.StringMarshaller: org.apache.activemq.store.kahadb.disk.util.StringMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = <org.apache.activemq.store.kahadb.disk.util.SequenceSet$Marshaller: org.apache.activemq.store.kahadb.disk.util.SequenceSet$Marshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = <org.apache.activemq.store.kahadb.disk.util.StringMarshaller: org.apache.activemq.store.kahadb.disk.util.StringMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void setKeyMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
v = <org.apache.activemq.store.kahadb.disk.util.LocationMarshaller: org.apache.activemq.store.kahadb.disk.util.LocationMarshaller INSTANCE>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void setValueMarshaller(org.apache.activemq.store.kahadb.disk.util.Marshaller)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex subLocations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: void load(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashMap subscriptionCursors> = v;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: int version>;
if v >= 3 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$LastAck: long lastAckedSequence>;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor)>(v, v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void addAckLocation(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.Long,java.lang.String)>(v, v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashSet subscriptionCache>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<java.util.HashSet: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId>;
v = v cmp 0L;
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: boolean isEmpty(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$LastAck: long lastAckedSequence>;
v = v + 1L;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId> = v;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId>;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Math: long max(long,long)>(v, v);
v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: long nextMessageId> = v;
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: int version>;
if v >= 7 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.store.kahadb.disk.index.BTreeIndex destinations>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
label:
return v;
}
protected void clearStoreStats(org.apache.activemq.store.kahadb.data.KahaDestination)
{
org.apache.activemq.store.MessageStoreStatistics v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.String v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreStatistics getStoreStats(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreSubscriptionStatistics getSubStats(java.lang.String)>(v);
if v == null goto label;
virtualinvoke v.<org.apache.activemq.store.MessageStoreStatistics: void reset()>();
label:
if v == null goto label;
virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: void reset()>();
label:
return;
}
protected void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaDestination, long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.String,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,long)>(v, v, v, v);
return;
}
protected void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction, java.lang.String, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
org.apache.activemq.store.MessageStoreStatistics v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics v, v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreStatistics getStoreStats(java.lang.String)>(v);
if v == null goto label;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(long,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void put(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
goto label;
label:
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: org.apache.activemq.store.MessageStoreStatistics get(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v != null goto label;
v = new org.apache.activemq.store.MessageStoreStatistics;
specialinvoke v.<org.apache.activemq.store.MessageStoreStatistics: void <init>()>();
v = v;
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(long,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void put(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
label:
return;
}
private void incrementAndAddSizeToStoreStat(long, org.apache.activemq.store.MessageStoreStatistics)
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.store.MessageStoreStatistics v;
byte v;
org.apache.activemq.store.kahadb.MessageDatabase v;
long v;
org.apache.activemq.management.SizeStatisticImpl v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: long;
v := @parameter: org.apache.activemq.store.MessageStoreStatistics;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreStatistics: org.apache.activemq.management.CountStatisticImpl getMessageCount()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreStatistics: org.apache.activemq.management.SizeStatisticImpl getMessageSize()>();
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
label:
return;
}
protected void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaDestination, long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination getStoredDestination(org.apache.activemq.store.kahadb.data.KahaDestination,org.apache.activemq.store.kahadb.disk.page.Transaction)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.String,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,long)>(v, v, v, v);
return;
}
protected void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction, java.lang.String, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
org.apache.activemq.store.MessageStoreStatistics v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics v, v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreStatistics getStoreStats(java.lang.String)>(v);
if v == null goto label;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(long,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void put(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
goto label;
label:
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: org.apache.activemq.store.MessageStoreStatistics get(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v != null goto label;
v = new org.apache.activemq.store.MessageStoreStatistics;
specialinvoke v.<org.apache.activemq.store.MessageStoreStatistics: void <init>()>();
v = v;
label:
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(long,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics messageStoreStatistics>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredMessageStoreStatistics: void put(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.MessageStoreStatistics)>(v, v);
label:
return;
}
private void decrementAndSubSizeToStoreStat(long, org.apache.activemq.store.MessageStoreStatistics)
{
org.apache.activemq.management.CountStatisticImpl v;
org.apache.activemq.store.MessageStoreStatistics v;
byte v;
org.apache.activemq.store.kahadb.MessageDatabase v;
long v, v;
org.apache.activemq.management.SizeStatisticImpl v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: long;
v := @parameter: org.apache.activemq.store.MessageStoreStatistics;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreStatistics: org.apache.activemq.management.CountStatisticImpl getMessageCount()>();
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void decrement()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreStatistics: org.apache.activemq.management.SizeStatisticImpl getMessageSize()>();
v = neg v;
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
label:
return;
}
protected void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.data.KahaDestination, java.lang.String, long)
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
long v;
java.lang.String v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: java.lang.String;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(java.lang.String,java.lang.String,long)>(v, v, v);
return;
}
protected void incrementAndAddSizeToStoreStat(java.lang.String, java.lang.String, long)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
long v;
org.apache.activemq.management.SizeStatisticImpl v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
org.apache.activemq.management.CountStatisticImpl v;
byte v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreSubscriptionStatistics getSubStats(java.lang.String)>(v);
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getMessageCount(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void increment()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: org.apache.activemq.management.SizeStatisticImpl getMessageSize(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
label:
return;
}
protected void decrementAndSubSizeToStoreStat(java.lang.String, java.lang.String, long)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
long v, v;
org.apache.activemq.management.SizeStatisticImpl v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
org.apache.activemq.management.CountStatisticImpl v;
byte v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.MessageStoreSubscriptionStatistics getSubStats(java.lang.String)>(v);
if v == null goto label;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: org.apache.activemq.management.CountStatisticImpl getMessageCount(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.management.CountStatisticImpl: void decrement()>();
v = v cmp 0L;
if v <= 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.MessageStoreSubscriptionStatistics: org.apache.activemq.management.SizeStatisticImpl getMessageSize(java.lang.String)>(v);
v = neg v;
virtualinvoke v.<org.apache.activemq.management.SizeStatisticImpl: void addSize(long)>(v);
label:
return;
}
protected void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.data.KahaDestination, java.lang.String, long)
{
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
long v;
java.lang.String v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: java.lang.String;
v := @parameter: long;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(java.lang.String,java.lang.String,long)>(v, v, v);
return;
}
protected org.apache.activemq.store.MessageStoreStatistics getStoreStats(java.lang.String)
{
org.apache.activemq.store.MessageStoreStatistics v;
org.slf4j.Logger v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Object v;
java.lang.String v;
java.lang.Exception v;
java.util.concurrent.ConcurrentMap v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v = null;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ConcurrentMap storeCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.store.MessageStore: org.apache.activemq.store.MessageStoreStatistics getMessageStoreStatistics()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Getting size counter of destination failed", v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected org.apache.activemq.store.MessageStoreSubscriptionStatistics getSubStats(java.lang.String)
{
org.apache.activemq.store.MessageStore v;
org.slf4j.Logger v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.MessageStoreSubscriptionStatistics v;
java.lang.Exception v;
java.util.concurrent.ConcurrentMap v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v = null;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.ConcurrentMap storeCache>;
v = interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof org.apache.activemq.store.TopicMessageStore;
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.store.TopicMessageStore: org.apache.activemq.store.MessageStoreSubscriptionStatistics getMessageStoreSubStatistics()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Getting size counter of destination failed", v);
label:
return v;
catch java.lang.Exception from label to label with label;
}
protected boolean matchType(org.apache.activemq.broker.region.Destination, org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType)
{
org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v, v, v, v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.broker.region.Destination;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType;
v = v instanceof org.apache.activemq.broker.region.Topic;
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType TOPIC>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
v = v instanceof org.apache.activemq.broker.region.Queue;
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType QUEUE>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private void addAckLocation(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.Long, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.util.SequenceSet v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v, v;
java.lang.Long v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.Long;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v != null goto label;
v = new org.apache.activemq.store.kahadb.disk.util.SequenceSet;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void <init>()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean add(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object add(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean add(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
label:
return;
}
private void addAckLocationForRetroactiveSub(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
java.util.Iterator v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.util.SequenceSet v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
java.lang.Object v, v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
boolean v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = new org.apache.activemq.store.kahadb.disk.util.SequenceSet;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: 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()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean add(long)>(v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
return;
}
private void addAckLocationForNewMessage(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.data.KahaDestination, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.Long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.util.SequenceSet v;
long v, v, v, v, v, v;
java.util.HashSet v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
java.lang.Long v;
int v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.disk.util.Sequence v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v;
java.lang.Object v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.Long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashSet subscriptionCache>;
v = virtualinvoke v.<java.util.HashSet: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v != null goto label;
v = new org.apache.activemq.store.kahadb.disk.util.SequenceSet;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void <init>()>();
v = new org.apache.activemq.store.kahadb.disk.util.Sequence;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v + 1L;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: void <init>(long,long)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void add(org.apache.activemq.store.kahadb.disk.util.Sequence)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object add(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = new org.apache.activemq.store.kahadb.disk.util.Sequence;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = v + 1L;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: void <init>(long,long)>(v, v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: void add(org.apache.activemq.store.kahadb.disk.util.Sequence)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void incrementAndAddSizeToStoreStat(org.apache.activemq.store.kahadb.data.KahaDestination,java.lang.String,long)>(v, v, v);
goto label;
label:
return;
}
private void removeAckLocationsForSub(org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand, org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v;
boolean v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.util.ArrayList v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v;
int v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v, v;
java.util.Iterator v, v, v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
java.lang.Object v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: boolean isEmpty(org.apache.activemq.store.kahadb.disk.page.Transaction)>(v);
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v == 0 goto label;
label:
return;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: 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()>();
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isSequenceReferenced(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.Long)>(v, v, v);
if v != 0 goto label;
virtualinvoke v.<java.util.ArrayList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.ArrayList: 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()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void getDeleteList(org.apache.activemq.store.kahadb.disk.page.Transaction,java.util.ArrayList,java.lang.Long)>(v, v, v);
v = virtualinvoke v.<java.util.ArrayList: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaSubscriptionCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
goto label;
label:
return;
}
private boolean isSequenceReferenced(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.Long) throws java.io.IOException
{
java.util.Iterator v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
java.util.HashSet v;
java.lang.Long v;
java.lang.Object v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
boolean v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.Long;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: java.util.HashSet subscriptionCache>;
v = virtualinvoke v.<java.util.HashSet: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean contains(long)>(v);
if v == 0 goto label;
return 1;
label:
return 0;
}
private void removeAckLocation(org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand, org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String, java.lang.Long) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Long v;
org.apache.activemq.store.kahadb.disk.journal.Location v, v, v;
boolean v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v;
java.util.ArrayList v;
org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v, v, v;
int v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v, v;
java.lang.String v, v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.data.KahaDestination v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys v;
java.lang.Object v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v := @parameter: java.lang.Long;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean remove(long)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object put(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object,java.lang.Object)>(v, v, v);
goto label;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.data.KahaDestination,java.lang.String,long)>(v, v, v);
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isSequenceReferenced(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination,java.lang.Long)>(v, v, v);
if v == 0 goto label;
return;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: void getDeleteList(org.apache.activemq.store.kahadb.disk.page.Transaction,java.util.ArrayList,java.lang.Long)>(v, v, v);
v = virtualinvoke v.<java.util.ArrayList: 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()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex locationIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex messageIdIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: java.lang.String messageId>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys remove(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaRemoveMessageCommand: org.apache.activemq.store.kahadb.data.KahaDestination getDestination()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: void decrementAndSubSizeToStoreStat(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.data.KahaDestination,long)>(v, v, v);
goto label;
label:
return;
}
public org.apache.activemq.store.kahadb.MessageDatabase$LastAck getLastAck(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.disk.index.BTreeIndex v;
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.lang.Object v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.BTreeIndex subscriptionAcks>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.BTreeIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
return v;
}
protected org.apache.activemq.store.kahadb.disk.util.SequenceSet getSequenceSet(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
return v;
label:
return null;
}
protected long getStoredMessageCount(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
long v, v;
byte v;
java.lang.Object v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: long rangeSize()>();
v = v cmp 0L;
if v <= 0 goto label;
v = v - 1L;
goto label;
label:
v = 0L;
label:
return v;
label:
return 0L;
}
protected java.util.Map getStoredMessageSize(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.util.List) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.Long v, v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v, v, v, v, v;
java.util.Set v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.util.List v;
org.apache.activemq.store.kahadb.disk.util.LinkedNode v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor v;
java.util.HashMap v, v;
long v, v, v, v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
int v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.util.Iterator v, v, v;
java.util.concurrent.atomic.AtomicLong v;
java.lang.Object v, v, v, v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.util.List;
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = new java.util.HashMap;
specialinvoke v.<java.util.HashMap: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
if v == null goto label;
v = null;
v = interfaceinvoke v.<java.util.List: 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()>();
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: org.apache.activemq.store.kahadb.disk.util.LinkedNode getHead()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: long getFirst()>();
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
goto label;
label:
v = v;
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
goto label;
label:
v = 0L;
label:
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor)>(v, v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = interfaceinvoke v.<java.util.Set: 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()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean contains(long)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
goto label;
label:
return v;
}
protected long getStoredMessageSize(org.apache.activemq.store.kahadb.disk.page.Transaction, org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination, java.lang.String) throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
long v, v, v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex v;
int v, v;
org.apache.activemq.store.kahadb.disk.index.ListIndex v, v;
java.lang.String v;
org.apache.activemq.store.kahadb.disk.journal.Location v;
boolean v, v, v, v, v;
java.util.Iterator v;
org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination v;
java.lang.Object v, v, v, v;
org.apache.activemq.store.kahadb.disk.util.LinkedNode v;
org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor v;
org.apache.activemq.store.kahadb.disk.page.Transaction v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.disk.page.Transaction;
v := @parameter: org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination;
v := @parameter: java.lang.String;
v = 0L;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
if v == null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.disk.index.ListIndex ackPositions>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.index.ListIndex: java.lang.Object get(org.apache.activemq.store.kahadb.disk.page.Transaction,java.lang.Object)>(v, v);
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: org.apache.activemq.store.kahadb.disk.util.LinkedNode getHead()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$StoredDestination: org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex orderIndex>;
v = new org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.Sequence: long getFirst()>();
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor: void <init>(org.apache.activemq.store.kahadb.MessageDatabase,long)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderIndex: java.util.Iterator iterator(org.apache.activemq.store.kahadb.disk.page.Transaction,org.apache.activemq.store.kahadb.MessageDatabase$MessageOrderCursor)>(v, v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: int size()>();
if v != 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
if v != 0 goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<java.lang.Long: long longValue()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.util.SequenceSet: boolean contains(long)>(v);
if v == 0 goto label;
label:
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$MessageKeys: org.apache.activemq.store.kahadb.disk.journal.Location location>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Location: int getSize()>();
v = v + v;
goto label;
label:
return v;
}
protected java.lang.String key(org.apache.activemq.store.kahadb.data.KahaDestination)
{
org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType v;
org.apache.activemq.store.kahadb.data.KahaDestination v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
java.lang.String v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaDestination;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType getType()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination$DestinationType: int getNumber()>();
v = virtualinvoke v.<org.apache.activemq.store.kahadb.data.KahaDestination: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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;
}
private java.util.List getInflightTx(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)
{
java.lang.Throwable v;
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.util.ArrayList v;
java.util.LinkedHashMap v, v, v;
java.lang.Object v;
org.apache.activemq.command.TransactionId v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaTransactionInfo;
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.command.TransactionId convert(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
entermonitor v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
v = virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.List synchronizedList(java.util.List)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.LinkedHashMap inflightTransactions>;
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private org.apache.activemq.command.TransactionId key(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)
{
org.apache.activemq.store.kahadb.data.KahaTransactionInfo v;
org.apache.activemq.command.TransactionId v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.store.kahadb.data.KahaTransactionInfo;
v = staticinvoke <org.apache.activemq.store.kahadb.TransactionIdConversion: org.apache.activemq.command.TransactionId convert(org.apache.activemq.store.kahadb.data.KahaTransactionInfo)>(v);
return v;
}
private org.apache.activemq.store.kahadb.disk.page.PageFile createPageFile() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v, v, v, v;
int v, v;
float v;
org.apache.activemq.store.kahadb.disk.page.PageFile v;
boolean v, v, v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory>;
if v != null goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directory>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory>;
staticinvoke <org.apache.activemq.util.IOHelper: void mkdirs(java.io.File)>(v);
v = new org.apache.activemq.store.kahadb.disk.page.PageFile;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory>;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void <init>(java.io.File,java.lang.String)>(v, "db");
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableIndexWriteAsync()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setEnableWriteThread(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getIndexWriteBatchSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setWriteBatchSize(int)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int indexCacheSize>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setPageCacheSize(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isUseIndexLFRUEviction()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setUseLFRUEviction(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: float getIndexLFUEvictionFactor()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setLFUEvictionFactor(float)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableIndexDiskSyncs()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setEnableDiskSyncs(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableIndexRecoveryFile()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setEnableRecoveryFile(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableIndexPageCaching()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.page.PageFile: void setEnablePageCaching(boolean)>(v);
return v;
}
protected org.apache.activemq.store.kahadb.disk.journal.Journal createJournal() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy v;
org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope v;
int v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v;
java.io.File v, v, v, v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.activemq.store.kahadb.disk.journal.Journal v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = new org.apache.activemq.store.kahadb.disk.journal.Journal;
specialinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void <init>()>();
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directory>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setDirectory(java.io.File)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getJournalMaxFileLength()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setMaxFileLength(int)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setCheckForCorruptionOnStartup(boolean)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checksumJournalFiles>;
if v != 0 goto label;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles>;
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setChecksum(boolean)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getJournalMaxWriteBatchSize()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setWriteBatchSize(int)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isArchiveDataLogs()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setArchiveDataLogs(boolean)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.util.concurrent.atomic.AtomicLong journalSize>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setSizeAccumulator(java.util.concurrent.atomic.AtomicLong)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean isEnableJournalDiskSyncs()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setEnableAsyncDiskSync(boolean)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationScope>;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = staticinvoke <org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope: org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setPreallocationScope(org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationScope)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationStrategy>;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = staticinvoke <org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy valueOf(java.lang.String)>(v);
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setPreallocationStrategy(org.apache.activemq.store.kahadb.disk.journal.Journal$PreallocationStrategy)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy>;
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setJournalDiskSyncStrategy(org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File getDirectoryArchive()>();
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File getDirectoryArchive()>();
staticinvoke <org.apache.activemq.util.IOHelper: void mkdirs(java.io.File)>(v);
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File getDirectoryArchive()>();
virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal: void setDirectoryArchive(java.io.File)>(v);
label:
return v;
}
private org.apache.activemq.store.kahadb.MessageDatabase$Metadata createMetadata()
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v, v;
org.apache.activemq.ActiveMQMessageAuditNoSync v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = new org.apache.activemq.store.kahadb.MessageDatabase$Metadata;
specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: void <init>(org.apache.activemq.store.kahadb.MessageDatabase)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getFailoverProducersAuditDepth()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setAuditDepth(int)>(v);
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: int getMaxFailoverProducersToTrack()>();
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setMaximumNumberOfProducersToTrack(int)>(v);
return v;
}
protected abstract void configureMetadata();
public int getJournalMaxWriteBatchSize()
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxWriteBatchSize>;
return v;
}
public void setJournalMaxWriteBatchSize(int)
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxWriteBatchSize> = v;
return;
}
public java.io.File getDirectory()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directory>;
return v;
}
public void setDirectory(java.io.File)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.io.File;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directory> = v;
return;
}
public boolean isDeleteAllMessages()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean deleteAllMessages>;
return v;
}
public void setDeleteAllMessages(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean deleteAllMessages> = v;
return;
}
public void setIndexWriteBatchSize(int)
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int setIndexWriteBatchSize> = v;
return;
}
public int getIndexWriteBatchSize()
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int setIndexWriteBatchSize>;
return v;
}
public void setEnableIndexWriteAsync(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexWriteAsync> = v;
return;
}
boolean isEnableIndexWriteAsync()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexWriteAsync>;
return v;
}
public boolean isEnableJournalDiskSyncs()
{
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy>;
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy ALWAYS>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void setEnableJournalDiskSyncs(boolean)
{
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v, v;
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
if v == 0 goto label;
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy ALWAYS>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy> = v;
goto label;
label:
v = <org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy NEVER>;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy> = v;
label:
return;
}
public org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy getJournalDiskSyncStrategyEnum()
{
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy>;
return v;
}
public java.lang.String getJournalDiskSyncStrategy()
{
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v;
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: java.lang.String name()>();
return v;
}
public void setJournalDiskSyncStrategy(java.lang.String)
{
org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = staticinvoke <org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy valueOf(java.lang.String)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal$JournalDiskSyncStrategy journalDiskSyncStrategy> = v;
return;
}
public long getJournalDiskSyncInterval()
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long journalDiskSyncInterval>;
return v;
}
public void setJournalDiskSyncInterval(long)
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: long;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long journalDiskSyncInterval> = v;
return;
}
public long getCheckpointInterval()
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval>;
return v;
}
public void setCheckpointInterval(long)
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: long;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long checkpointInterval> = v;
return;
}
public long getCleanupInterval()
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: long cleanupInterval>;
return v;
}
public void setCleanupInterval(long)
{
long v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: long;
v.<org.apache.activemq.store.kahadb.MessageDatabase: long cleanupInterval> = v;
return;
}
public boolean getCleanupOnStop()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean cleanupOnStop>;
return v;
}
public void setCleanupOnStop(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean cleanupOnStop> = v;
return;
}
public void setJournalMaxFileLength(int)
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxFileLength> = v;
return;
}
public int getJournalMaxFileLength()
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int journalMaxFileLength>;
return v;
}
public void setMaxFailoverProducersToTrack(int)
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setMaximumNumberOfProducersToTrack(int)>(v);
return;
}
public int getMaxFailoverProducersToTrack()
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: int getMaximumNumberOfProducersToTrack()>();
return v;
}
public void setFailoverProducersAuditDepth(int)
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: void setAuditDepth(int)>(v);
return;
}
public int getFailoverProducersAuditDepth()
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
int v;
org.apache.activemq.ActiveMQMessageAuditNoSync v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase$Metadata: org.apache.activemq.ActiveMQMessageAuditNoSync producerSequenceIdTracker>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageAuditNoSync: int getAuditDepth()>();
return v;
}
public org.apache.activemq.store.kahadb.disk.page.PageFile getPageFile() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.page.PageFile v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
if v != null goto label;
v = specialinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile createPageFile()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.page.PageFile pageFile>;
return v;
}
public org.apache.activemq.store.kahadb.disk.journal.Journal getJournal() throws java.io.IOException
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.kahadb.disk.journal.Journal v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
if v != null goto label;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal createJournal()>();
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal> = v;
label:
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.disk.journal.Journal journal>;
return v;
}
protected org.apache.activemq.store.kahadb.MessageDatabase$Metadata getMetadata()
{
org.apache.activemq.store.kahadb.MessageDatabase$Metadata v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$Metadata metadata>;
return v;
}
public boolean isFailIfDatabaseIsLocked()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean failIfDatabaseIsLocked>;
return v;
}
public void setFailIfDatabaseIsLocked(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean failIfDatabaseIsLocked> = v;
return;
}
public boolean isIgnoreMissingJournalfiles()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean ignoreMissingJournalfiles>;
return v;
}
public void setIgnoreMissingJournalfiles(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean ignoreMissingJournalfiles> = v;
return;
}
public int getIndexCacheSize()
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int indexCacheSize>;
return v;
}
public void setIndexCacheSize(int)
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int indexCacheSize> = v;
return;
}
public boolean isCheckForCorruptJournalFiles()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles>;
return v;
}
public void setCheckForCorruptJournalFiles(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checkForCorruptJournalFiles> = v;
return;
}
public org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy getPurgeRecoveredXATransactionStrategyEnum()
{
org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy>;
return v;
}
public java.lang.String getPurgeRecoveredXATransactionStrategy()
{
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy>;
v = virtualinvoke v.<org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy: java.lang.String name()>();
return v;
}
public void setPurgeRecoveredXATransactionStrategy(java.lang.String)
{
org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy v;
org.apache.activemq.store.kahadb.MessageDatabase v;
java.lang.String v, v, v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = staticinvoke <org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy valueOf(java.lang.String)>(v);
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.kahadb.MessageDatabase$PurgeRecoveredXATransactionStrategy purgeRecoveredXATransactionStrategy> = v;
return;
}
public boolean isChecksumJournalFiles()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checksumJournalFiles>;
return v;
}
public void setChecksumJournalFiles(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean checksumJournalFiles> = v;
return;
}
public void setBrokerService(org.apache.activemq.broker.BrokerService)
{
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: org.apache.activemq.broker.BrokerService;
v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.broker.BrokerService brokerService> = v;
return;
}
public boolean isArchiveDataLogs()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveDataLogs>;
return v;
}
public void setArchiveDataLogs(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveDataLogs> = v;
return;
}
public java.io.File getDirectoryArchive()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directoryArchive>;
return v;
}
public void setDirectoryArchive(java.io.File)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.io.File;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File directoryArchive> = v;
return;
}
public boolean isArchiveCorruptedIndex()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveCorruptedIndex>;
return v;
}
public void setArchiveCorruptedIndex(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean archiveCorruptedIndex> = v;
return;
}
public float getIndexLFUEvictionFactor()
{
float v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: float indexLFUEvictionFactor>;
return v;
}
public void setIndexLFUEvictionFactor(float)
{
float v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: float;
v.<org.apache.activemq.store.kahadb.MessageDatabase: float indexLFUEvictionFactor> = v;
return;
}
public boolean isUseIndexLFRUEviction()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean useIndexLFRUEviction>;
return v;
}
public void setUseIndexLFRUEviction(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean useIndexLFRUEviction> = v;
return;
}
public void setEnableIndexDiskSyncs(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexDiskSyncs> = v;
return;
}
public void setEnableIndexRecoveryFile(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexRecoveryFile> = v;
return;
}
public void setEnableIndexPageCaching(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexPageCaching> = v;
return;
}
public boolean isEnableIndexDiskSyncs()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexDiskSyncs>;
return v;
}
public boolean isEnableIndexRecoveryFile()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexRecoveryFile>;
return v;
}
public boolean isEnableIndexPageCaching()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableIndexPageCaching>;
return v;
}
public org.apache.activemq.store.PersistenceAdapterStatistics getPersistenceAdapterStatistics()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
org.apache.activemq.store.PersistenceAdapterStatistics v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.store.PersistenceAdapterStatistics persistenceAdapterStatistics>;
return v;
}
public java.io.File getIndexDirectory()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory>;
return v;
}
public void setIndexDirectory(java.io.File)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
java.io.File v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.io.File;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File indexDirectory> = v;
return;
}
public java.lang.String getPreallocationScope()
{
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationScope>;
return v;
}
public void setPreallocationScope(java.lang.String)
{
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationScope> = v;
return;
}
public java.lang.String getPreallocationStrategy()
{
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationStrategy>;
return v;
}
public void setPreallocationStrategy(java.lang.String)
{
java.lang.String v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: java.lang.String;
v.<org.apache.activemq.store.kahadb.MessageDatabase: java.lang.String preallocationStrategy> = v;
return;
}
public int getCompactAcksAfterNoGC()
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: int compactAcksAfterNoGC>;
return v;
}
public void setCompactAcksAfterNoGC(int)
{
int v;
org.apache.activemq.store.kahadb.MessageDatabase v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: int;
v.<org.apache.activemq.store.kahadb.MessageDatabase: int compactAcksAfterNoGC> = v;
return;
}
public boolean isCompactAcksIgnoresStoreGrowth()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean compactAcksIgnoresStoreGrowth>;
return v;
}
public void setCompactAcksIgnoresStoreGrowth(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean compactAcksIgnoresStoreGrowth> = v;
return;
}
public boolean isEnableAckCompaction()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableAckCompaction>;
return v;
}
public void setEnableAckCompaction(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableAckCompaction> = v;
return;
}
public boolean isEnableSubscriptionStatistics()
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v = v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics>;
return v;
}
public void setEnableSubscriptionStatistics(boolean)
{
org.apache.activemq.store.kahadb.MessageDatabase v;
boolean v;
v := @this: org.apache.activemq.store.kahadb.MessageDatabase;
v := @parameter: boolean;
v.<org.apache.activemq.store.kahadb.MessageDatabase: boolean enableSubscriptionStatistics> = v;
return;
}
static void <clinit>()
{
byte[] v;
org.slf4j.Logger v;
int v;
org.apache.activemq.protobuf.Buffer v;
java.lang.Integer v;
java.io.File v;
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>("org.apache.activemq.store.kahadb.LOG_SLOW_ACCESS_TIME", 0);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
<org.apache.activemq.store.kahadb.MessageDatabase: int LOG_SLOW_ACCESS_TIME> = v;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>("KahaDB");
<org.apache.activemq.store.kahadb.MessageDatabase: java.io.File DEFAULT_DIRECTORY> = v;
v = new org.apache.activemq.protobuf.Buffer;
v = newarray (byte)[0];
specialinvoke v.<org.apache.activemq.protobuf.Buffer: void <init>(byte[])>(v);
<org.apache.activemq.store.kahadb.MessageDatabase: org.apache.activemq.protobuf.Buffer UNMATCHED> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/store/kahadb/MessageDatabase;");
<org.apache.activemq.store.kahadb.MessageDatabase: org.slf4j.Logger LOG> = v;
return;
}
}