public class org.apache.activemq.ActiveMQQueueBrowser extends java.lang.Object implements javax.jms.QueueBrowser, java.util.Enumeration
{
private final org.apache.activemq.ActiveMQSession session;
private final org.apache.activemq.command.ActiveMQDestination destination;
private final java.lang.String selector;
private org.apache.activemq.ActiveMQMessageConsumer consumer;
private boolean closed;
private final org.apache.activemq.command.ConsumerId consumerId;
private final java.util.concurrent.atomic.AtomicBoolean browseDone;
private final boolean dispatchAsync;
private java.lang.Object semaphore;
protected void <init>(org.apache.activemq.ActiveMQSession, org.apache.activemq.command.ConsumerId, org.apache.activemq.command.ActiveMQDestination, java.lang.String, boolean) throws javax.jms.JMSException
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQQueueBrowser v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
int v;
javax.jms.InvalidDestinationException v, v;
java.lang.Object v;
java.lang.String v, v, v;
org.apache.activemq.ActiveMQSession v;
boolean v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v := @parameter: org.apache.activemq.ActiveMQSession;
v := @parameter: org.apache.activemq.command.ConsumerId;
v := @parameter: org.apache.activemq.command.ActiveMQDestination;
v := @parameter: java.lang.String;
v := @parameter: boolean;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(1);
v.<org.apache.activemq.ActiveMQQueueBrowser: java.util.concurrent.atomic.AtomicBoolean browseDone> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.Object semaphore> = v;
if v != null goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("Don\'t understand null destinations");
throw v;
label:
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getPhysicalName()>();
if v != null goto label;
v = new javax.jms.InvalidDestinationException;
specialinvoke v.<javax.jms.InvalidDestinationException: void <init>(java.lang.String)>("The destination object was not given a physical name.");
throw v;
label:
if v == null goto label;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v == 0 goto label;
staticinvoke <org.apache.activemq.selector.SelectorParser: org.apache.activemq.filter.BooleanExpression parse(java.lang.String)>(v);
label:
v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session> = v;
v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ConsumerId consumerId> = v;
v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ActiveMQDestination destination> = v;
v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.String selector> = v;
v.<org.apache.activemq.ActiveMQQueueBrowser: boolean dispatchAsync> = v;
return;
}
private org.apache.activemq.ActiveMQMessageConsumer createConsumer() throws javax.jms.JMSException
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQQueueBrowser v;
org.apache.activemq.ActiveMQConnection v;
org.apache.activemq.command.ConsumerId v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.ActiveMQPrefetchPolicy v;
int v, v;
java.lang.String v;
org.apache.activemq.ActiveMQQueueBrowser$1 v;
org.apache.activemq.ActiveMQSession v, v;
boolean v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.util.concurrent.atomic.AtomicBoolean browseDone>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(0);
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQConnection: org.apache.activemq.ActiveMQPrefetchPolicy getPrefetchPolicy()>();
v = new org.apache.activemq.ActiveMQQueueBrowser$1;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ConsumerId consumerId>;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ActiveMQDestination destination>;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.String selector>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getQueueBrowserPrefetch()>();
v = virtualinvoke v.<org.apache.activemq.ActiveMQPrefetchPolicy: int getMaximumPendingMessageLimit()>();
v = v.<org.apache.activemq.ActiveMQQueueBrowser: boolean dispatchAsync>;
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser$1: void <init>(org.apache.activemq.ActiveMQQueueBrowser,org.apache.activemq.ActiveMQSession,org.apache.activemq.command.ConsumerId,org.apache.activemq.command.ActiveMQDestination,java.lang.String,java.lang.String,int,int,boolean,boolean,boolean,javax.jms.MessageListener)>(v, v, v, v, null, v, v, v, 0, 1, v, null);
return v;
}
private void destroyConsumer()
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v, v;
org.apache.activemq.ActiveMQQueueBrowser v;
org.apache.activemq.ActiveMQSession v, v, v;
boolean v, v;
org.apache.activemq.TransactionContext v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
if v != null goto label;
return;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean getTransacted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.TransactionContext getTransactionContext()>();
v = virtualinvoke v.<org.apache.activemq.TransactionContext: boolean isInLocalTransaction()>();
if v == 0 goto label;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
virtualinvoke v.<org.apache.activemq.ActiveMQSession: void commit()>();
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void close()>();
v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer> = null;
label:
goto label;
label:
v := @caughtexception;
virtualinvoke v.<javax.jms.JMSException: void printStackTrace()>();
label:
return;
catch javax.jms.JMSException from label to label with label;
}
public java.util.Enumeration getEnumeration() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQMessageConsumer v, v;
org.apache.activemq.ActiveMQQueueBrowser v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void checkClosed()>();
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
if v != null goto label;
v = specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer createConsumer()>();
v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer> = v;
label:
return v;
}
private void checkClosed() throws javax.jms.IllegalStateException
{
org.apache.activemq.ActiveMQQueueBrowser v;
javax.jms.IllegalStateException v;
boolean v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: boolean closed>;
if v == 0 goto label;
v = new javax.jms.IllegalStateException;
specialinvoke v.<javax.jms.IllegalStateException: void <init>(java.lang.String)>("The Consumer is closed");
throw v;
label:
return;
}
public boolean hasMoreElements()
{
java.lang.Throwable v;
org.apache.activemq.ActiveMQMessageConsumer v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQQueueBrowser v;
int v;
org.apache.activemq.ActiveMQSession v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
label:
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
if v != null goto label;
exitmonitor v;
label:
return 0;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: int getMessageSize()>();
if v <= 0 goto label;
return 1;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.util.concurrent.atomic.AtomicBoolean browseDone>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isRunning()>();
if v != 0 goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void destroyConsumer()>();
return 0;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void waitForMessage()>();
goto label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.lang.Object nextElement()
{
java.lang.Throwable v, v;
org.apache.activemq.ActiveMQMessageConsumer v, v;
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQQueueBrowser v;
org.apache.activemq.ActiveMQConnection v;
javax.jms.Message v;
org.apache.activemq.ActiveMQSession v, v;
boolean v, v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
label:
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
if v != null goto label;
exitmonitor v;
label:
return null;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: javax.jms.Message receiveNoWait()>();
if v == null goto label;
label:
return v;
label:
v := @caughtexception;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = v.<org.apache.activemq.ActiveMQSession: org.apache.activemq.ActiveMQConnection connection>;
virtualinvoke v.<org.apache.activemq.ActiveMQConnection: void onClientInternalException(java.lang.Throwable)>(v);
return null;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.util.concurrent.atomic.AtomicBoolean browseDone>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean get()>();
if v != 0 goto label;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQSession session>;
v = virtualinvoke v.<org.apache.activemq.ActiveMQSession: boolean isRunning()>();
if v != 0 goto label;
label:
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void destroyConsumer()>();
return null;
label:
virtualinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void waitForMessage()>();
goto label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch javax.jms.JMSException from label to label with label;
}
public synchronized void close() throws javax.jms.JMSException
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.ActiveMQQueueBrowser v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.util.concurrent.atomic.AtomicBoolean browseDone>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void set(boolean)>(1);
specialinvoke v.<org.apache.activemq.ActiveMQQueueBrowser: void destroyConsumer()>();
v.<org.apache.activemq.ActiveMQQueueBrowser: boolean closed> = 1;
return;
}
public javax.jms.Queue getQueue() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQQueueBrowser v;
org.apache.activemq.command.ActiveMQDestination v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ActiveMQDestination destination>;
return v;
}
public java.lang.String getMessageSelector() throws javax.jms.JMSException
{
org.apache.activemq.ActiveMQQueueBrowser v;
java.lang.String v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.String selector>;
return v;
}
protected void waitForMessage()
{
java.lang.Throwable v, v;
org.apache.activemq.ActiveMQMessageConsumer v;
org.apache.activemq.ActiveMQQueueBrowser v;
java.lang.InterruptedException v;
java.lang.Thread v;
java.lang.Object v, v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.ActiveMQMessageConsumer consumer>;
virtualinvoke v.<org.apache.activemq.ActiveMQMessageConsumer: void sendPullCommand(long)>(-1L);
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.Object semaphore>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.Object semaphore>;
virtualinvoke v.<java.lang.Object: void wait(long)>(2000L);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v := @caughtexception;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
virtualinvoke v.<java.lang.Thread: void interrupt()>();
goto label;
label:
v := @caughtexception;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch javax.jms.JMSException from label to label with label;
}
protected void notifyMessageAvailable()
{
java.lang.Throwable v;
java.lang.Object v, v;
org.apache.activemq.ActiveMQQueueBrowser v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.Object semaphore>;
entermonitor v;
label:
v = v.<org.apache.activemq.ActiveMQQueueBrowser: java.lang.Object semaphore>;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
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 java.lang.String toString()
{
org.apache.activemq.ActiveMQQueueBrowser v;
java.lang.String v;
org.apache.activemq.command.ConsumerId v;
v := @this: org.apache.activemq.ActiveMQQueueBrowser;
v = v.<org.apache.activemq.ActiveMQQueueBrowser: org.apache.activemq.command.ConsumerId consumerId>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.command.ConsumerId)>(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[])>("ActiveMQQueueBrowser { value=\u }");
return v;
}
}