public class org.apache.activemq.util.DefaultIOExceptionHandler extends java.lang.Object implements org.apache.activemq.util.IOExceptionHandler
{
private static final org.slf4j.Logger LOG;
protected org.apache.activemq.broker.BrokerService broker;
private boolean ignoreAllErrors;
private boolean ignoreNoSpaceErrors;
private boolean ignoreSQLExceptions;
private boolean stopStartConnectors;
private java.lang.String noSpaceMessage;
private java.lang.String sqlExceptionMessage;
private long resumeCheckSleepPeriod;
private final java.util.concurrent.atomic.AtomicBoolean handlingException;
private boolean systemExitOnShutdown;
public void <init>()
{
java.util.concurrent.atomic.AtomicBoolean v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreAllErrors> = 0;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreNoSpaceErrors> = 1;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreSQLExceptions> = 1;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean stopStartConnectors> = 0;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String noSpaceMessage> = "space";
v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String sqlExceptionMessage> = "";
v.<org.apache.activemq.util.DefaultIOExceptionHandler: long resumeCheckSleepPeriod> = 5000L;
v = new java.util.concurrent.atomic.AtomicBoolean;
specialinvoke v.<java.util.concurrent.atomic.AtomicBoolean: void <init>(boolean)>(0);
v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.util.concurrent.atomic.AtomicBoolean handlingException> = v;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean systemExitOnShutdown> = 0;
return;
}
public void handle(java.io.IOException)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v, v, v, v, v, v, v, v, v, v, v;
org.apache.activemq.util.DefaultIOExceptionHandler$1 v;
org.apache.activemq.broker.BrokerService v, v;
java.lang.Throwable v, v;
java.util.concurrent.atomic.AtomicBoolean v, v;
org.apache.activemq.broker.SuppressReplyException v, v;
java.lang.String v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
java.io.IOException v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: java.io.IOException;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: boolean isStarted()>();
if v == 0 goto label;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreAllErrors>;
if v == 0 goto label;
label:
virtualinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler: void allowIOResumption()>();
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.IOException)>(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 IO exception, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>(v, v);
return;
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreNoSpaceErrors>;
if v == 0 goto label;
v = v;
label:
if v == null goto label;
v = v instanceof java.io.IOException;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
if v == null goto label;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String noSpaceMessage>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.IOException)>(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 no space left exception, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>(v, v);
virtualinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler: void allowIOResumption()>();
return;
label:
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
goto label;
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreSQLExceptions>;
if v == 0 goto label;
v = v;
label:
if v == null goto label;
v = v instanceof java.sql.SQLException;
if v == 0 goto label;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
if v != null goto label;
v = "";
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String sqlExceptionMessage>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>(v);
if v == 0 goto label;
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.IOException)>(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 SQLException, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>(v, v);
return;
label:
v = virtualinvoke v.<java.lang.Throwable: java.lang.Throwable getCause()>();
goto label;
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean stopStartConnectors>;
if v == 0 goto label;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.util.concurrent.atomic.AtomicBoolean handlingException>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.broker.BrokerService,java.io.IOException)>(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[])>("Initiating stop/restart of transports on \u due to IO exception, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>(v, v);
v = new org.apache.activemq.util.DefaultIOExceptionHandler$1;
specialinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler$1: void <init>(org.apache.activemq.util.DefaultIOExceptionHandler,java.lang.String)>(v, "IOExceptionHandler: stop transports");
virtualinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler$1: void start()>();
label:
v = new org.apache.activemq.broker.SuppressReplyException;
specialinvoke v.<org.apache.activemq.broker.SuppressReplyException: void <init>(java.lang.String,java.io.IOException)>("Stop/RestartTransportsInitiated", v);
throw v;
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.util.concurrent.atomic.AtomicBoolean handlingException>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicBoolean: boolean compareAndSet(boolean,boolean)>(0, 1);
if v == 0 goto label;
specialinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler: void stopBroker(java.lang.Exception)>(v);
label:
v = new org.apache.activemq.broker.SuppressReplyException;
specialinvoke v.<org.apache.activemq.broker.SuppressReplyException: void <init>(java.lang.String,java.io.IOException)>("ShutdownBrokerInitiated", v);
throw v;
}
protected void allowIOResumption()
{
org.apache.activemq.broker.BrokerService v, v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
org.slf4j.Logger v;
java.io.IOException v;
org.apache.activemq.store.PersistenceAdapter v, v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
label:
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.store.PersistenceAdapter getPersistenceAdapter()>();
if v == null goto label;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = virtualinvoke v.<org.apache.activemq.broker.BrokerService: org.apache.activemq.store.PersistenceAdapter getPersistenceAdapter()>();
interfaceinvoke v.<org.apache.activemq.store.PersistenceAdapter: void allowIOResumption()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Failed to allow IO resumption", v);
label:
return;
catch java.io.IOException from label to label with label;
}
private void stopBroker(java.lang.Exception)
{
org.apache.activemq.broker.BrokerService v, v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
org.apache.activemq.util.DefaultIOExceptionHandler$2 v;
org.slf4j.Logger v;
java.lang.Exception v;
java.lang.String v, v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: java.lang.Exception;
v = <org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG>;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.broker.BrokerService,java.lang.Exception)>(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[])>("Stopping \u due to exception, \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>(v, v);
v = new org.apache.activemq.util.DefaultIOExceptionHandler$2;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.activemq.broker.BrokerService)>(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[])>("IOExceptionHandler: stopping \u0001");
specialinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler$2: void <init>(org.apache.activemq.util.DefaultIOExceptionHandler,java.lang.String)>(v, v);
virtualinvoke v.<org.apache.activemq.util.DefaultIOExceptionHandler$2: void start()>();
return;
}
protected boolean hasLockOwnership() throws java.io.IOException
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
return 1;
}
public void setBrokerService(org.apache.activemq.broker.BrokerService)
{
org.apache.activemq.broker.BrokerService v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: org.apache.activemq.broker.BrokerService;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: org.apache.activemq.broker.BrokerService broker> = v;
return;
}
public boolean isIgnoreAllErrors()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreAllErrors>;
return v;
}
public void setIgnoreAllErrors(boolean)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: boolean;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreAllErrors> = v;
return;
}
public boolean isIgnoreNoSpaceErrors()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreNoSpaceErrors>;
return v;
}
public void setIgnoreNoSpaceErrors(boolean)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: boolean;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreNoSpaceErrors> = v;
return;
}
public java.lang.String getNoSpaceMessage()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
java.lang.String v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String noSpaceMessage>;
return v;
}
public void setNoSpaceMessage(java.lang.String)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
java.lang.String v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: java.lang.String;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String noSpaceMessage> = v;
return;
}
public boolean isIgnoreSQLExceptions()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreSQLExceptions>;
return v;
}
public void setIgnoreSQLExceptions(boolean)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: boolean;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean ignoreSQLExceptions> = v;
return;
}
public java.lang.String getSqlExceptionMessage()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
java.lang.String v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String sqlExceptionMessage>;
return v;
}
public void setSqlExceptionMessage(java.lang.String)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
java.lang.String v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: java.lang.String;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: java.lang.String sqlExceptionMessage> = v;
return;
}
public boolean isStopStartConnectors()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean stopStartConnectors>;
return v;
}
public void setStopStartConnectors(boolean)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: boolean;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean stopStartConnectors> = v;
return;
}
public long getResumeCheckSleepPeriod()
{
long v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: long resumeCheckSleepPeriod>;
return v;
}
public void setResumeCheckSleepPeriod(long)
{
long v;
org.apache.activemq.util.DefaultIOExceptionHandler v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: long;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: long resumeCheckSleepPeriod> = v;
return;
}
public void setSystemExitOnShutdown(boolean)
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v := @parameter: boolean;
v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean systemExitOnShutdown> = v;
return;
}
public boolean isSystemExitOnShutdown()
{
org.apache.activemq.util.DefaultIOExceptionHandler v;
boolean v;
v := @this: org.apache.activemq.util.DefaultIOExceptionHandler;
v = v.<org.apache.activemq.util.DefaultIOExceptionHandler: boolean systemExitOnShutdown>;
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/util/DefaultIOExceptionHandler;");
<org.apache.activemq.util.DefaultIOExceptionHandler: org.slf4j.Logger LOG> = v;
return;
}
}