org.apache.hadoop.hbase.errorhandling
Class TimeoutExceptionInjector

java.lang.Object
  extended by org.apache.hadoop.hbase.errorhandling.TimeoutExceptionInjector

@InterfaceAudience.Private
public class TimeoutExceptionInjector
extends Object

Time a given process/operation and report a failure if the elapsed time exceeds the max allowed time.

The timer won't start tracking time until calling start(). If complete() or trigger() is called before start(), calls to start() will fail.


Constructor Summary
TimeoutExceptionInjector(ForeignExceptionListener listener, long maxTime)
          Create a generic timer for a task/process.
 
Method Summary
 void complete()
          For all time forward, do not throw an error because the process has completed.
 long getMaxTime()
           
 void start()
          Start a timer to fail a process if it takes longer than the expected time to complete.
 void trigger()
          Trigger the timer immediately.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TimeoutExceptionInjector

public TimeoutExceptionInjector(ForeignExceptionListener listener,
                                long maxTime)
Create a generic timer for a task/process.

Parameters:
listener - listener to notify if the process times out
maxTime - max allowed running time for the process. Timer starts on calls to start()
Method Detail

getMaxTime

public long getMaxTime()

complete

public void complete()
For all time forward, do not throw an error because the process has completed.


start

public void start()
           throws IllegalStateException
Start a timer to fail a process if it takes longer than the expected time to complete.

Non-blocking.

Throws:
IllegalStateException - if the timer has already been marked done via complete() or trigger()

trigger

public void trigger()
Trigger the timer immediately.

Exposed for testing.



Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.