org.apache.manifoldcf.agents.interfaces.ServiceInterruption Maven / Gradle / Ivy
The newest version!
/* $Id: ServiceInterruption.java 988245 2010-08-23 18:39:35Z kwright $ */
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.manifoldcf.agents.interfaces;
import org.apache.manifoldcf.core.interfaces.*;
/** This is an exception that means that service was interrupted. The exception contains
* a description of when the service may be restored.
*/
public class ServiceInterruption extends java.lang.Exception
{
public static final String _rcsid = "@(#)$Id: ServiceInterruption.java 988245 2010-08-23 18:39:35Z kwright $";
/** This is the time (in milliseconds since epoch) when to retry the request. */
protected long retryTime;
/** This is the time (in milliseconds since epoch) to FAIL if no successful read has yet occurred. */
protected long failTime;
/** This is the number of retries to permit before FAIL. -1 means infinite. */
protected int failRetryCount;
/** Should we abort the process if failure condition has been reached? */
protected boolean abortOnFail;
/** True if job inactive abort. */
protected boolean jobInactiveAbort;
/** Constructor.
*@param message is the exact error condition.
*@param retryTime is the time to retry.
*/
public ServiceInterruption(String message, long retryTime)
{
this(message, retryTime, false);
}
/** Constructor.
*@param message is the exact error condition.
*@param retryTime is the time to retry.
*@param jobInactiveAbort is true if this exception being thrown because the job is aborting
*/
public ServiceInterruption(String message, long retryTime, boolean jobInactiveAbort)
{
super(message);
this.retryTime = retryTime;
this.failTime = -1L;
this.failRetryCount = -1;
this.abortOnFail = true;
this.jobInactiveAbort = jobInactiveAbort;
}
/** Constructor.
*@param message is the exact error condition.
*@param failureCause is an exception that should be reported if it is decided to abort the process.
*@param retryTime is the time to retry.
*@param failTime is the time to fail.
*@param failRetryCount is the number of times to retry before declaring failure.
*@param abortOnFail signals what to do if failure. Setting this to "true" will cause whatever process incurred the
* service interruption to stop immediately, if failure condition has been reached.
*/
public ServiceInterruption(String message, Throwable failureCause, long retryTime, long failTime, int failRetryCount,
boolean abortOnFail)
{
super(message,failureCause);
this.retryTime = retryTime;
this.failTime = failTime;
this.failRetryCount = failRetryCount;
this.abortOnFail = abortOnFail;
}
/** Get the retry time.
*@return the retry time.
*/
public long getRetryTime()
{
return retryTime;
}
/** Get the fail time.
*@return the fail time. Returns -1L if there is no fail time.
*/
public long getFailTime()
{
return failTime;
}
/** Get the number of error iterations needed before failure should be declared.
*@return the count, -1 if infinite.
*/
public int getFailRetryCount()
{
return failRetryCount;
}
/** On failure, should we abort?
*@return true if abort is requested when failure is declared.
*/
public boolean isAbortOnFail()
{
return abortOnFail;
}
/** Check if this service interruption is due to a job aborting.
*@return true if yes
*/
public boolean jobInactiveAbort()
{
return jobInactiveAbort;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy