public class org.apache.activemq.plugin.DiscardingDLQBroker extends org.apache.activemq.broker.BrokerFilter
{
public static org.slf4j.Logger log;
private boolean dropTemporaryTopics;
private boolean dropTemporaryQueues;
private boolean dropAll;
private java.util.regex.Pattern[] destFilter;
private int reportInterval;
private long dropCount;
public void <init>(org.apache.activemq.broker.Broker)
{
org.apache.activemq.broker.Broker v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: org.apache.activemq.broker.Broker;
specialinvoke v.<org.apache.activemq.broker.BrokerFilter: void <init>(org.apache.activemq.broker.Broker)>(v);
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryTopics> = 1;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryQueues> = 1;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropAll> = 1;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: int reportInterval> = 1000;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: long dropCount> = 0L;
return;
}
public boolean sendToDeadLetterQueue(org.apache.activemq.broker.ConnectionContext, org.apache.activemq.broker.region.MessageReference, org.apache.activemq.broker.region.Subscription, java.lang.Throwable)
{
java.lang.Throwable v;
org.apache.activemq.broker.region.Subscription v;
long v, v, v, v;
org.apache.activemq.broker.Broker v;
org.apache.activemq.broker.ConnectionContext v;
org.apache.activemq.command.Message v, v;
byte v;
java.lang.Long v;
int v, v;
java.lang.String v;
boolean v, v, v, v, v, v, v, v, v;
org.apache.activemq.broker.region.MessageReference v;
org.slf4j.Logger v, v;
java.util.regex.Pattern[] v;
org.apache.activemq.command.ActiveMQDestination v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: org.apache.activemq.broker.ConnectionContext;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v := @parameter: org.apache.activemq.broker.region.Subscription;
v := @parameter: java.lang.Throwable;
v = <org.apache.activemq.plugin.DiscardingDLQBroker: org.slf4j.Logger log>;
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
goto label;
label:
v = null;
label:
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Object)>("Discarding DLQ BrokerFilter[pass through] - skipping message: {}", v);
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.ActiveMQDestination getDestination()>();
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: java.lang.String getPhysicalName()>();
if v != null goto label;
specialinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: void skipMessage(java.lang.String,org.apache.activemq.broker.region.MessageReference)>("NULL DESTINATION", v);
goto label;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropAll>;
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: void skipMessage(java.lang.String,org.apache.activemq.broker.region.MessageReference)>("dropAll", v);
goto label;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryTopics>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTopic()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: void skipMessage(java.lang.String,org.apache.activemq.broker.region.MessageReference)>("dropTemporaryTopics", v);
goto label;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryQueues>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isTemporary()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.activemq.command.ActiveMQDestination: boolean isQueue()>();
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: void skipMessage(java.lang.String,org.apache.activemq.broker.region.MessageReference)>("dropTemporaryQueues", v);
goto label;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
if v == null goto label;
v = virtualinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean matches(java.lang.String)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: void skipMessage(java.lang.String,org.apache.activemq.broker.region.MessageReference)>("dropOnly", v);
goto label;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: org.apache.activemq.broker.Broker next>;
v = interfaceinvoke v.<org.apache.activemq.broker.Broker: boolean sendToDeadLetterQueue(org.apache.activemq.broker.ConnectionContext,org.apache.activemq.broker.region.MessageReference,org.apache.activemq.broker.region.Subscription,java.lang.Throwable)>(v, v, v, v);
return v;
label:
v = virtualinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: int getReportInterval()>();
if v <= 0 goto label;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: long dropCount>;
v = v + 1L;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: long dropCount> = v;
v = virtualinvoke v.<org.apache.activemq.plugin.DiscardingDLQBroker: int getReportInterval()>();
v = v % v;
v = v cmp 0L;
if v != 0 goto label;
v = <org.apache.activemq.plugin.DiscardingDLQBroker: org.slf4j.Logger log>;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: long dropCount>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object)>("Total of {} messages were discarded, since their destination was the dead letter queue", v);
label:
return 0;
}
public boolean matches(java.lang.String)
{
java.util.regex.Pattern[] v, v, v, v;
java.util.regex.Matcher v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
int v, v;
java.lang.String v;
java.util.regex.Pattern v, v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: java.lang.String;
v = 0;
label:
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
if v == null goto label;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
v = lengthof v;
if v >= v goto label;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
v = v[v];
if v == null goto label;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
v = v[v];
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
return 1;
label:
v = v + 1;
goto label;
label:
return 0;
}
private void skipMessage(java.lang.String, org.apache.activemq.broker.region.MessageReference)
{
org.apache.activemq.broker.region.MessageReference v;
org.apache.activemq.command.Message v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
org.slf4j.Logger v;
java.lang.String v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: java.lang.String;
v := @parameter: org.apache.activemq.broker.region.MessageReference;
v = <org.apache.activemq.plugin.DiscardingDLQBroker: org.slf4j.Logger log>;
if v == null goto label;
v = interfaceinvoke v.<org.apache.activemq.broker.region.MessageReference: org.apache.activemq.command.Message getMessage()>();
goto label;
label:
v = null;
label:
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("Discarding DLQ BrokerFilter[{}] - skipping message: {}", v, v);
return;
}
public void setDropTemporaryTopics(boolean)
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: boolean;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryTopics> = v;
return;
}
public void setDropTemporaryQueues(boolean)
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: boolean;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryQueues> = v;
return;
}
public void setDropAll(boolean)
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: boolean;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropAll> = v;
return;
}
public void setDestFilter(java.util.regex.Pattern[])
{
java.util.regex.Pattern[] v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: java.util.regex.Pattern[];
v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter> = v;
return;
}
public void setReportInterval(int)
{
int v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v := @parameter: int;
v.<org.apache.activemq.plugin.DiscardingDLQBroker: int reportInterval> = v;
return;
}
public boolean isDropTemporaryTopics()
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryTopics>;
return v;
}
public boolean isDropTemporaryQueues()
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropTemporaryQueues>;
return v;
}
public boolean isDropAll()
{
org.apache.activemq.plugin.DiscardingDLQBroker v;
boolean v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: boolean dropAll>;
return v;
}
public java.util.regex.Pattern[] getDestFilter()
{
java.util.regex.Pattern[] v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: java.util.regex.Pattern[] destFilter>;
return v;
}
public int getReportInterval()
{
int v;
org.apache.activemq.plugin.DiscardingDLQBroker v;
v := @this: org.apache.activemq.plugin.DiscardingDLQBroker;
v = v.<org.apache.activemq.plugin.DiscardingDLQBroker: int reportInterval>;
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/activemq/plugin/DiscardingDLQBroker;");
<org.apache.activemq.plugin.DiscardingDLQBroker: org.slf4j.Logger log> = v;
return;
}
}