public class org.apache.activemq.broker.region.cursors.FilePendingMessageCursor extends org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor implements org.apache.activemq.usage.UsageListener
{
static final org.slf4j.Logger LOG;
private static final java.util.concurrent.atomic.AtomicLong NAME_COUNT;
protected org.apache.activemq.broker.Broker broker;
private final org.apache.activemq.store.PListStore store;
private final java.lang.String name;
private org.apache.activemq.broker.region.cursors.PendingList memoryList;
private org.apache.activemq.store.PList diskList;
private java.util.Iterator iter;
private org.apache.activemq.broker.region.Destination regionDestination;
private boolean iterating;
private boolean flushRequired;
private final java.util.concurrent.atomic.AtomicBoolean started;
private final org.apache.activemq.wireformat.WireFormat wireFormat;
public void <init>(org.apache.activemq.broker.Broker, java.lang.String, boolean)
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.broker.region.cursors.PrioritizedPendingList v;
long v;
java.util.concurrent.atomic.AtomicLong v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.openwire.OpenWireFormat v;
org.apache.activemq.store.PListStore v;
org.apache.activemq.broker.region.cursors.OrderedPendingList v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.broker.Broker;
v := @parameter: java.lang.String;
v := @parameter: boolean;
specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor: void <init>(boolean)>(v);
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.concurrent.atomic.AtomicBoolean started> = v;
v = new org.apache.activemq.openwire.OpenWireFormat;
specialinvoke v.<org.apache.activemq.openwire.OpenWireFormat: void <init>()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.wireformat.WireFormat wireFormat> = v;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean prioritizedMessages>;
if v == 0 goto label;
v = new org.apache.activemq.broker.region.cursors.PrioritizedPendingList;
specialinvoke v.<org.apache.activemq.broker.region.cursors.PrioritizedPendingList: void <init>()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList> = v;
goto label;
label:
v = new org.apache.activemq.broker.region.cursors.OrderedPendingList;
specialinvoke v.<org.apache.activemq.broker.region.cursors.OrderedPendingList: void <init>()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList> = v;
label:
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.Broker broker> = v;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.store.PListStore getTempDataStore()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PListStore store> = v;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.concurrent.atomic.AtomicLong NAME_COUNT>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long incrementAndGet()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001_\u0001");
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name> = v;
return;
}
public void start() throws java.lang.Exception
{
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.wireformat.WireFormat v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
int v;
org.apache.activemq.usage.MemoryUsage v;
org.apache.activemq.usage.SystemUsage v, v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.Broker broker>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.wireformat.WireFormat wireFormat>;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: org.apache.activemq.broker.BrokerService getBrokerService()>();
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: int getStoreOpenWireVersion()>();
interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: void setVersion(int)>(v);
label:
specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor: void start()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
virtualinvoke v.<org.apache.activemq.usage.MemoryUsage: void addUsageListener(org.apache.activemq.usage.UsageListener)>(v);
label:
return;
}
public void stop() throws java.lang.Exception
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.usage.MemoryUsage v;
org.apache.activemq.usage.SystemUsage v, v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.concurrent.atomic.AtomicBoolean started>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(1, 0);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor: void stop()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
virtualinvoke v.<org.apache.activemq.usage.MemoryUsage: void removeUsageListener(org.apache.activemq.usage.UsageListener)>(v);
label:
return;
}
public synchronized boolean isEmpty()
{
java.util.Iterator v;
org.apache.activemq.broker.region.cursors.PendingList v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.lang.Object v;
org.apache.activemq.broker.region.QueueMessageReference v;
boolean v, v, v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: boolean isEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
return 1;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: 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.broker.region.QueueMessageReference: org.apache.activemq.broker.region.QueueMessageReference NULL_MESSAGE>;
if v == v goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: boolean isDropped()>();
if v != 0 goto label;
return 0;
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
return v;
}
public synchronized void reset()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator v;
java.util.Iterator v;
org.apache.activemq.broker.region.cursors.PendingList v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean iterating> = 1;
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.MessageReference last> = null;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: java.util.Iterator iterator()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter> = v;
goto label;
label:
v = new org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator;
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator: void <init>(org.apache.activemq.broker.region.cursors.FilePendingMessageCursor)>(v);
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter> = v;
label:
return;
}
public synchronized void release()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.util.Iterator v, v;
boolean v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean iterating> = 0;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter>;
v = v instanceof org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator;
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter>;
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator: void release()>();
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean flushRequired>;
if v == 0 goto label;
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean flushRequired> = 0;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void flushToDisk()>();
label:
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter> = null;
return;
}
public synchronized void destroy() throws java.lang.Exception
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.util.Iterator v;
org.apache.activemq.broker.region.cursors.PendingList v, v;
java.lang.Object v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void stop()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
goto label;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: void clear()>();
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void destroyDiskList()>();
return;
}
private void destroyDiskList() throws java.lang.Exception
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.store.PListStore v;
java.lang.String v;
org.apache.activemq.store.PList v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PListStore store>;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name>;
interfaceinvoke v.<org.apache.activemq.store.PListStore: boolean removePList(java.lang.String)>(v);
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList> = null;
label:
return;
}
public synchronized java.util.LinkedList pageInList(int)
{
java.util.Iterator v;
org.apache.activemq.broker.region.cursors.PendingList v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator v;
int v, v;
java.lang.Object v, v;
org.apache.activemq.usage.MemoryUsage v;
org.apache.activemq.usage.SystemUsage v;
java.util.LinkedList v;
boolean v, v, v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: int;
v = new java.util.LinkedList;
specialinvoke v.<java.util.LinkedList: void <init>()>();
v = 0;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
if v >= v goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
v = new org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator;
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor$DiskIterator: void <init>(org.apache.activemq.broker.region.cursors.FilePendingMessageCursor)>(v);
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
if v >= v goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.Destination regionDestination>;
virtualinvoke v.<org.apache.activemq.command.Message: void setRegionDestination(org.apache.activemq.command.Message$MessageDestination)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage getSystemUsage()>();
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
virtualinvoke v.<org.apache.activemq.command.Message: void setMemoryUsage(org.apache.activemq.usage.MemoryUsage)>(v);
virtualinvoke v.<org.apache.activemq.command.Message: int incrementReferenceCount()>();
virtualinvoke v.<java.util.LinkedList: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
return v;
}
public synchronized boolean tryAddMessageLast(org.apache.activemq.broker.region.MessageReference, long) throws java.lang.Exception
{
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.usage.TempUsage v;
org.apache.activemq.broker.region.cursors.PendingList v, v;
long v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.store.PListStore v;
org.apache.activemq.usage.SystemUsage v;
java.lang.String v;
org.apache.activemq.util.ByteSequence v;
boolean v, v, v, v, v, v, v;
org.apache.activemq.broker.region.MessageReference v;
org.slf4j.Logger v;
org.apache.activemq.command.MessageId v;
java.lang.RuntimeException v;
java.lang.Exception v;
org.apache.activemq.store.PList v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: long;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: boolean isExpired()>();
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.Destination regionDestination> = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PListStore store>;
if v != null goto label;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: org.apache.activemq.broker.region.cursors.PendingNode addMessageLast(org.apache.activemq.broker.region.MessageReference)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void setCacheEnabled(boolean)>(1);
label:
return 1;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.List expireOldMessages()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: org.apache.activemq.broker.region.cursors.PendingNode addMessageLast(org.apache.activemq.broker.region.MessageReference)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
label:
return 1;
label:
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void flushToDisk()>();
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.TempUsage getTempUsage()>();
v = virtualinvoke v.<org.apache.activemq.usage.TempUsage: boolean waitForSpace(long)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.util.ByteSequence getByteSequence(org.apache.activemq.command.Message)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String toString()>();
interfaceinvoke v.<org.apache.activemq.store.PList: java.lang.Object addLast(java.lang.String,org.apache.activemq.util.ByteSequence)>(v, v);
label:
return 1;
label:
return 0;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Caught an Exception adding a message: {} first to FilePendingMessageCursor ", v, v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void discardExpiredMessage(org.apache.activemq.broker.region.MessageReference)>(v);
return 1;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public synchronized void addMessageFirst(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.command.Message$MessageDestination v;
org.apache.activemq.usage.TempUsage v;
org.apache.activemq.broker.region.cursors.PendingList v, v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.usage.SystemUsage v;
java.lang.String v;
org.apache.activemq.util.ByteSequence v;
boolean v, v, v, v, v, v;
org.apache.activemq.broker.region.MessageReference v;
org.slf4j.Logger v;
org.apache.activemq.command.MessageId v, v;
java.lang.RuntimeException v;
java.lang.Exception v;
java.lang.Object v;
org.apache.activemq.store.PList v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: boolean isExpired()>();
if v != 0 goto label;
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.command.Message: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.Destination regionDestination> = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: org.apache.activemq.broker.region.cursors.PendingNode addMessageFirst(org.apache.activemq.broker.region.MessageReference)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void setCacheEnabled(boolean)>(1);
label:
return;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.List expireOldMessages()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: org.apache.activemq.broker.region.cursors.PendingNode addMessageFirst(org.apache.activemq.broker.region.MessageReference)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
label:
return;
label:
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void flushToDisk()>();
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.TempUsage getTempUsage()>();
virtualinvoke v.<org.apache.activemq.usage.TempUsage: void waitForSpace()>();
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.util.ByteSequence getByteSequence(org.apache.activemq.command.Message)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String toString()>();
v = interfaceinvoke v.<org.apache.activemq.store.PList: java.lang.Object addFirst(java.lang.String,org.apache.activemq.util.ByteSequence)>(v, v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
virtualinvoke v.<org.apache.activemq.command.MessageId: void setPlistLocator(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Caught an Exception adding a message: {} first to FilePendingMessageCursor ", v, v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void discardExpiredMessage(org.apache.activemq.broker.region.MessageReference)>(v);
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
public synchronized boolean hasNext()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.util.Iterator v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter>;
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
return v;
}
public synchronized org.apache.activemq.broker.region.MessageReference next()
{
java.util.Iterator v;
org.apache.activemq.command.Message v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.lang.Object v;
org.apache.activemq.usage.MemoryUsage v;
org.apache.activemq.usage.SystemUsage v;
boolean v;
org.apache.activemq.broker.region.Destination v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.MessageReference last> = v;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.Destination regionDestination>;
virtualinvoke v.<org.apache.activemq.command.Message: void setRegionDestination(org.apache.activemq.command.Message$MessageDestination)>(v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage getSystemUsage()>();
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
virtualinvoke v.<org.apache.activemq.command.Message: void setMemoryUsage(org.apache.activemq.usage.MemoryUsage)>(v);
label:
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int incrementReferenceCount()>();
return v;
}
public synchronized void remove()
{
org.apache.activemq.broker.region.MessageReference v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.util.Iterator v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.Iterator iter>;
interfaceinvoke v.<java.util.Iterator: void remove()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.MessageReference last>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.MessageReference last>;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
label:
return;
}
public synchronized void remove(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.cursors.PendingNode v;
org.apache.activemq.broker.region.cursors.PendingList v;
org.apache.activemq.command.MessageId v;
java.io.IOException v;
java.lang.RuntimeException v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.lang.Object v;
org.apache.activemq.store.PList v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: org.apache.activemq.broker.region.cursors.PendingNode remove(org.apache.activemq.broker.region.MessageReference)>(v);
if v == null goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.Object getPlistLocator()>();
interfaceinvoke v.<org.apache.activemq.store.PList: boolean remove(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.io.IOException from label to label with label;
}
public synchronized int size()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.broker.region.cursors.PendingList v;
int v, v;
long v;
org.apache.activemq.store.PList v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: int size()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.store.PList: long size()>();
label:
v = v + v;
return v;
}
public synchronized long messageSize()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.broker.region.cursors.PendingList v;
long v, v, v;
org.apache.activemq.store.PList v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: long messageSize()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v == 0 goto label;
v = 0L;
goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.store.PList: long messageSize()>();
label:
v = v + v;
return v;
}
public synchronized void clear()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.broker.region.cursors.PendingList v;
java.io.IOException v;
java.lang.RuntimeException v;
org.apache.activemq.store.PList v;
boolean v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: void clear()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
label:
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
interfaceinvoke v.<org.apache.activemq.store.PList: void destroy()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.MessageReference last> = null;
return;
catch java.io.IOException from label to label with label;
}
public synchronized boolean isFull()
{
org.apache.activemq.usage.TempUsage v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.usage.SystemUsage v, v;
boolean v, v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor: boolean isFull()>();
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isDiskListEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.TempUsage getTempUsage()>();
v = virtualinvoke v.<org.apache.activemq.usage.TempUsage: boolean isFull()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean hasMessagesBufferedToDeliver()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
boolean v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void setSystemUsage(org.apache.activemq.usage.SystemUsage)
{
org.apache.activemq.usage.SystemUsage v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.usage.SystemUsage;
specialinvoke v.<org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor: void setSystemUsage(org.apache.activemq.usage.SystemUsage)>(v);
return;
}
public void onUsageChanged(org.apache.activemq.usage.Usage, int, int)
{
java.lang.Throwable v;
java.util.Iterator v;
java.util.List v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
int v, v, v, v;
java.lang.Object v;
org.apache.activemq.usage.Usage v;
boolean v, v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.usage.Usage;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: int getMemoryUsageHighWaterMark()>();
if v < v goto label;
v = null;
entermonitor v;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean flushRequired>;
if v != 0 goto label;
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: int size()>();
if v == 0 goto label;
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean flushRequired> = 1;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean iterating>;
if v != 0 goto label;
v = specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.List expireOldMessages()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean hasSpace()>();
if v != 0 goto label;
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void flushToDisk()>();
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: boolean flushRequired> = 0;
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: 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()>();
specialinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void discardExpiredMessage(org.apache.activemq.broker.region.MessageReference)>(v);
goto label;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public boolean isTransient()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
return 1;
}
private synchronized java.util.List expireOldMessages()
{
java.util.Iterator v;
org.apache.activemq.broker.region.cursors.PendingList v, v;
java.util.ArrayList v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
java.lang.Object v;
boolean v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: 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.<org.apache.activemq.broker.region.MessageReference: boolean isExpired()>();
if v == 0 goto label;
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
return v;
}
protected synchronized void flushToDisk()
{
java.lang.Integer v;
org.apache.activemq.command.Message v;
java.lang.Long v;
org.apache.activemq.usage.SystemUsage v, v, v, v;
org.apache.activemq.util.ByteSequence v;
boolean v, v, v;
org.apache.activemq.command.MessageId v;
java.lang.Object[] v, v;
org.apache.activemq.broker.region.cursors.PendingList v, v, v, v;
long v, v, v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
int v;
org.apache.activemq.store.PListStore v;
java.lang.String v, v, v;
org.slf4j.Logger v, v, v, v;
java.util.Iterator v;
java.io.IOException v;
java.lang.RuntimeException v;
java.lang.Object v, v, v;
org.apache.activemq.store.PList v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: boolean isEmpty()>();
if v != 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PListStore store>;
if v == null goto label;
v = 0L;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.slf4j.Logger: boolean isTraceEnabled()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name>;
v[0] = v;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: int size()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
goto label;
label:
v = "";
label:
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{}, flushToDisk() mem list size: {} {}", v);
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
v = interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: int decrementReferenceCount()>();
label:
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.util.ByteSequence getByteSequence(org.apache.activemq.command.Message)>(v);
v = virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList getDiskList()>();
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.MessageId getMessageId()>();
v = virtualinvoke v.<org.apache.activemq.command.MessageId: java.lang.String toString()>();
interfaceinvoke v.<org.apache.activemq.store.PList: java.lang.Object addLast(java.lang.String,org.apache.activemq.util.ByteSequence)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to write to disk list", v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.region.cursors.PendingList memoryList>;
interfaceinvoke v.<org.apache.activemq.broker.region.cursors.PendingList: void clear()>();
virtualinvoke v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: void setCacheEnabled(boolean)>(0);
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name>;
v[0] = v;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.usage.SystemUsage systemUsage>;
v = virtualinvoke v.<org.apache.activemq.usage.SystemUsage: org.apache.activemq.usage.MemoryUsage getMemoryUsage()>();
goto label;
label:
v = "";
label:
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object[])>("{}, flushToDisk() done - {} ms {}", v);
label:
return;
catch java.io.IOException from label to label with label;
}
protected boolean isDiskListEmpty()
{
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.store.PList v, v;
boolean v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList>;
if v == null goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList>;
v = interfaceinvoke v.<org.apache.activemq.store.PList: boolean isEmpty()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public org.apache.activemq.store.PList getDiskList()
{
org.slf4j.Logger v;
java.lang.RuntimeException v;
java.lang.Exception v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
org.apache.activemq.store.PListStore v;
java.lang.String v, v;
org.apache.activemq.store.PList v, v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList>;
if v != null goto label;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PListStore store>;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name>;
v = interfaceinvoke v.<org.apache.activemq.store.PListStore: org.apache.activemq.store.PList getPList(java.lang.String)>(v);
v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList> = v;
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.lang.String name>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Object,java.lang.Object)>("Caught an IO Exception getting the DiskList {}", v, v);
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.store.PList diskList>;
return v;
catch java.lang.Exception from label to label with label;
}
private void discardExpiredMessage(org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.broker.region.IndirectMessageReference v;
org.apache.activemq.command.Message$MessageDestination v;
org.slf4j.Logger v;
org.apache.activemq.broker.Broker v, v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.Message v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
boolean v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = <org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Discarding expired message {}", v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: boolean isExpired()>();
if v == 0 goto label;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.Broker broker>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: boolean isExpired(org.apache.activemq.broker.region.MessageReference)>(v);
if v == 0 goto label;
v = new org.apache.activemq.broker.ConnectionContext;
specialinvoke v.<org.apache.activemq.broker.ConnectionContext: void <init>()>();
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.broker.Broker broker>;
virtualinvoke v.<org.apache.activemq.broker.ConnectionContext: void setBroker(org.apache.activemq.broker.Broker)>(v);
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message$MessageDestination getRegionDestination()>();
v = new org.apache.activemq.broker.region.IndirectMessageReference;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
specialinvoke v.<org.apache.activemq.broker.region.IndirectMessageReference: void <init>(org.apache.activemq.command.Message)>(v);
interfaceinvoke v.<org.apache.activemq.broker.region.Destination: void messageExpired(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.Subscription,org.apache.activemq.broker.region.MessageReference)>(v, null, v);
label:
return;
}
protected org.apache.activemq.util.ByteSequence getByteSequence(org.apache.activemq.command.Message) throws java.io.IOException
{
byte[] v;
org.apache.activemq.wireformat.WireFormat v;
org.apache.activemq.command.Message v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
int v, v;
org.apache.activemq.util.ByteSequence v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.command.Message;
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.wireformat.WireFormat wireFormat>;
v = interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: org.apache.activemq.util.ByteSequence marshal(java.lang.Object)>(v);
v = new org.apache.activemq.util.ByteSequence;
v = v.<org.apache.activemq.util.ByteSequence: byte[] data>;
v = v.<org.apache.activemq.util.ByteSequence: int offset>;
v = v.<org.apache.activemq.util.ByteSequence: int length>;
specialinvoke v.<org.apache.activemq.util.ByteSequence: void <init>(byte[],int,int)>(v, v, v);
return v;
}
protected org.apache.activemq.command.Message getMessage(org.apache.activemq.util.ByteSequence) throws java.io.IOException
{
byte[] v;
org.apache.activemq.wireformat.WireFormat v;
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor v;
int v, v;
java.lang.Object v;
org.apache.activemq.util.ByteSequence v, v;
v := @this: org.apache.activemq.broker.region.cursors.FilePendingMessageCursor;
v := @parameter: org.apache.activemq.util.ByteSequence;
v = new org.apache.activemq.util.ByteSequence;
v = virtualinvoke v.<org.apache.activemq.util.ByteSequence: byte[] getData()>();
v = virtualinvoke v.<org.apache.activemq.util.ByteSequence: int getOffset()>();
v = virtualinvoke v.<org.apache.activemq.util.ByteSequence: int getLength()>();
specialinvoke v.<org.apache.activemq.util.ByteSequence: void <init>(byte[],int,int)>(v, v, v);
v = v.<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.apache.activemq.wireformat.WireFormat wireFormat>;
v = interfaceinvoke v.<org.apache.activemq.wireformat.WireFormat: java.lang.Object unmarshal(org.apache.activemq.util.ByteSequence)>(v);
return v;
}
static void <clinit>()
{
java.util.concurrent.atomic.AtomicLong v;
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/broker/region/cursors/FilePendingMessageCursor;");
<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: org.slf4j.Logger LOG> = v;
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
<org.apache.activemq.broker.region.cursors.FilePendingMessageCursor: java.util.concurrent.atomic.AtomicLong NAME_COUNT> = v;
return;
}
}