Home | History | Annotate | Download | only in concurrent
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      2 <!--NewPage-->
      3 <HTML>
      4 <HEAD>
      5 <!-- Generated by javadoc (build 1.6.0-google-internal) on Mon Jan 04 20:48:00 PST 2010 -->
      6 <TITLE>
      7 FakeTimeLimiter (Guava Libraries 2010.01.04)
      8 </TITLE>
      9 
     10 <META NAME="date" CONTENT="2010-01-04">
     11 
     12 <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
     13 
     14 <SCRIPT type="text/javascript">
     15 function windowTitle()
     16 {
     17     if (location.href.indexOf('is-external=true') == -1) {
     18         parent.document.title="FakeTimeLimiter (Guava Libraries 2010.01.04)";
     19     }
     20 }
     21 </SCRIPT>
     22 <NOSCRIPT>
     23 </NOSCRIPT>
     24 
     25 </HEAD>
     26 
     27 <BODY BGCOLOR="white" onload="windowTitle();">
     28 <HR>
     29 
     30 
     31 <!-- ========= START OF TOP NAVBAR ======= -->
     32 <A NAME="navbar_top"><!-- --></A>
     33 <A HREF="#skip-navbar_top" title="Skip navigation links"></A>
     34 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
     35 <TR>
     36 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
     37 <A NAME="navbar_top_firstrow"><!-- --></A>
     38 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
     39   <TR ALIGN="center" VALIGN="top">
     40   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
     41   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
     42   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
     43   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/FakeTimeLimiter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
     44   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
     45   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
     46   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
     47   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
     48   </TR>
     49 </TABLE>
     50 </TD>
     51 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
     52 </EM>
     53 </TD>
     54 </TR>
     55 
     56 <TR>
     57 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
     58 &nbsp;<A HREF="../../../../../com/google/common/util/concurrent/Executors.html" title="class in com.google.common.util.concurrent"><B>PREV CLASS</B></A>&nbsp;
     59 &nbsp;<A HREF="../../../../../com/google/common/util/concurrent/ForwardingFuture.html" title="class in com.google.common.util.concurrent"><B>NEXT CLASS</B></A></FONT></TD>
     60 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
     61   <A HREF="../../../../../index.html?com/google/common/util/concurrent/FakeTimeLimiter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
     62 &nbsp;<A HREF="FakeTimeLimiter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
     63 &nbsp;<SCRIPT type="text/javascript">
     64   <!--
     65   if(window==top) {
     66     document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
     67   }
     68   //-->
     69 </SCRIPT>
     70 <NOSCRIPT>
     71   <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
     72 </NOSCRIPT>
     73 
     74 
     75 </FONT></TD>
     76 </TR>
     77 <TR>
     78 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
     79   SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
     80 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
     81 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
     82 </TR>
     83 </TABLE>
     84 <A NAME="skip-navbar_top"></A>
     85 <!-- ========= END OF TOP NAVBAR ========= -->
     86 
     87 <HR>
     88 <!-- ======== START OF CLASS DATA ======== -->
     89 <H2>
     90 <FONT SIZE="-1">
     91 com.google.common.util.concurrent</FONT>
     92 <BR>
     93 Class FakeTimeLimiter</H2>
     94 <PRE>
     95 <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
     96   <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by "><B>com.google.common.util.concurrent.FakeTimeLimiter</B>
     97 </PRE>
     98 <DL>
     99 <DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html" title="interface in com.google.common.util.concurrent">TimeLimiter</A></DD>
    100 </DL>
    101 <HR>
    102 <DL>
    103 <DT><PRE>public class <B>FakeTimeLimiter</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html" title="interface in com.google.common.util.concurrent">TimeLimiter</A></DL>
    104 </PRE>
    105 
    106 <P>
    107 A TimeLimiter implementation which actually does not attempt to limit time
    108  at all.  This may be desirable to use in some unit tests.  More importantly,
    109  attempting to debug a call which is time-limited would be extremely annoying,
    110  so this gives you a time-limiter you can easily swap in for your real
    111  time-limiter while you're debugging.
    112 <P>
    113 
    114 <P>
    115 <DL>
    116 <DT><B>Since:</B></DT>
    117   <DD>2009.09.15 <b>tentative</b></DD>
    118 <DT><B>Author:</B></DT>
    119   <DD>Kevin Bourrillion</DD>
    120 </DL>
    121 <HR>
    122 
    123 <P>
    124 
    125 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
    126 
    127 <A NAME="constructor_summary"><!-- --></A>
    128 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    129 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    130 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    131 <B>Constructor Summary</B></FONT></TH>
    132 </TR>
    133 <TR BGCOLOR="white" CLASS="TableRowColor">
    134 <TD><CODE><B><A HREF="../../../../../com/google/common/util/concurrent/FakeTimeLimiter.html#FakeTimeLimiter()">FakeTimeLimiter</A></B>()</CODE>
    135 
    136 <BR>
    137 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
    138 </TR>
    139 </TABLE>
    140 &nbsp;
    141 <!-- ========== METHOD SUMMARY =========== -->
    142 
    143 <A NAME="method_summary"><!-- --></A>
    144 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    145 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    146 <TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
    147 <B>Method Summary</B></FONT></TH>
    148 </TR>
    149 <TR BGCOLOR="white" CLASS="TableRowColor">
    150 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    151 <CODE>
    152 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
    153 <TR ALIGN="right" VALIGN="">
    154 <TD NOWRAP><FONT SIZE="-1">
    155 <CODE>&lt;T&gt; T</CODE></FONT></TD>
    156 </TR>
    157 </TABLE>
    158 </CODE></FONT></TD>
    159 <TD><CODE><B><A HREF="../../../../../com/google/common/util/concurrent/FakeTimeLimiter.html#callWithTimeout(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit, boolean)">callWithTimeout</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;T&gt;&nbsp;callable,
    160                 long&nbsp;timeoutDuration,
    161                 <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</A>&nbsp;timeoutUnit,
    162                 boolean&nbsp;amInterruptible)</CODE>
    163 
    164 <BR>
    165 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Invokes a specified Callable, timing out after the specified time limit.</TD>
    166 </TR>
    167 <TR BGCOLOR="white" CLASS="TableRowColor">
    168 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
    169 <CODE>
    170 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
    171 <TR ALIGN="right" VALIGN="">
    172 <TD NOWRAP><FONT SIZE="-1">
    173 <CODE>&lt;T&gt; T</CODE></FONT></TD>
    174 </TR>
    175 </TABLE>
    176 </CODE></FONT></TD>
    177 <TD><CODE><B><A HREF="../../../../../com/google/common/util/concurrent/FakeTimeLimiter.html#newProxy(T, java.lang.Class, long, java.util.concurrent.TimeUnit)">newProxy</A></B>(T&nbsp;target,
    178          <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;interfaceType,
    179          long&nbsp;timeoutDuration,
    180          <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</A>&nbsp;timeoutUnit)</CODE>
    181 
    182 <BR>
    183 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an instance of <code>interfaceType</code> that delegates all method
    184  calls to the <code>target</code> object, enforcing the specified time limit on
    185  each call.</TD>
    186 </TR>
    187 </TABLE>
    188 &nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
    189 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    190 <TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
    191 <TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
    192 </TR>
    193 <TR BGCOLOR="white" CLASS="TableRowColor">
    194 <TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
    195 </TR>
    196 </TABLE>
    197 &nbsp;
    198 <P>
    199 
    200 <!-- ========= CONSTRUCTOR DETAIL ======== -->
    201 
    202 <A NAME="constructor_detail"><!-- --></A>
    203 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    204 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    205 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    206 <B>Constructor Detail</B></FONT></TH>
    207 </TR>
    208 </TABLE>
    209 
    210 <A NAME="FakeTimeLimiter()"><!-- --></A><H3>
    211 FakeTimeLimiter</H3>
    212 <PRE>
    213 public <B>FakeTimeLimiter</B>()</PRE>
    214 <DL>
    215 </DL>
    216 
    217 <!-- ============ METHOD DETAIL ========== -->
    218 
    219 <A NAME="method_detail"><!-- --></A>
    220 <TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
    221 <TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
    222 <TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
    223 <B>Method Detail</B></FONT></TH>
    224 </TR>
    225 </TABLE>
    226 
    227 <A NAME="newProxy(java.lang.Object,java.lang.Class,long,java.util.concurrent.TimeUnit)"><!-- --></A><A NAME="newProxy(T, java.lang.Class, long, java.util.concurrent.TimeUnit)"><!-- --></A><H3>
    228 newProxy</H3>
    229 <PRE>
    230 public &lt;T&gt; T <B>newProxy</B>(T&nbsp;target,
    231                       <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;interfaceType,
    232                       long&nbsp;timeoutDuration,
    233                       <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</A>&nbsp;timeoutUnit)</PRE>
    234 <DL>
    235 <DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html#newProxy(T, java.lang.Class, long, java.util.concurrent.TimeUnit)">TimeLimiter</A></CODE></B></DD>
    236 <DD>Returns an instance of <code>interfaceType</code> that delegates all method
    237  calls to the <code>target</code> object, enforcing the specified time limit on
    238  each call.  This time-limited delegation is also performed for calls to
    239  <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang"><CODE>Object.equals(java.lang.Object)</CODE></A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang"><CODE>Object.hashCode()</CODE></A>, and
    240  <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang"><CODE>Object.toString()</CODE></A>.
    241  <p>
    242  If the target method call finishes before the limit is reached, the return
    243  value or exception is propagated to the caller exactly as-is. If, on the
    244  other hand, the time limit is reached, the proxy will attempt to abort the
    245  call to the target, and will throw an <A HREF="../../../../../com/google/common/util/concurrent/UncheckedTimeoutException.html" title="class in com.google.common.util.concurrent"><CODE>UncheckedTimeoutException</CODE></A> to
    246  the caller.
    247  <p>
    248  It is important to note that the primary purpose of the proxy object is to
    249  return control to the caller when the timeout elapses; aborting the target
    250  method call is of secondary concern.  The particular nature and strength
    251  of the guarantees made by the proxy is implementation-dependent.  However,
    252  it is important that each of the methods on the target object behaves
    253  appropriately when its thread is interrupted.
    254 <P>
    255 <DD><DL>
    256 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html#newProxy(T, java.lang.Class, long, java.util.concurrent.TimeUnit)">newProxy</A></CODE> in interface <CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html" title="interface in com.google.common.util.concurrent">TimeLimiter</A></CODE></DL>
    257 </DD>
    258 <DD><DL>
    259 <DT><B>Parameters:</B><DD><CODE>target</CODE> - the object to proxy<DD><CODE>interfaceType</CODE> - the interface you wish the returned proxy to
    260      implement<DD><CODE>timeoutDuration</CODE> - with timeoutUnit, the maximum length of time that
    261      callers are willing to wait on each method call to the proxy<DD><CODE>timeoutUnit</CODE> - with timeoutDuration, the maximum length of time that
    262      callers are willing to wait on each method call to the proxy
    263 <DT><B>Returns:</B><DD>a time-limiting proxy</DL>
    264 </DD>
    265 </DL>
    266 <HR>
    267 
    268 <A NAME="callWithTimeout(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit, boolean)"><!-- --></A><H3>
    269 callWithTimeout</H3>
    270 <PRE>
    271 public &lt;T&gt; T <B>callWithTimeout</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</A>&lt;T&gt;&nbsp;callable,
    272                              long&nbsp;timeoutDuration,
    273                              <A HREF="http://java.sun.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</A>&nbsp;timeoutUnit,
    274                              boolean&nbsp;amInterruptible)
    275                   throws <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></PRE>
    276 <DL>
    277 <DD><B>Description copied from interface: <CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html#callWithTimeout(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit, boolean)">TimeLimiter</A></CODE></B></DD>
    278 <DD>Invokes a specified Callable, timing out after the specified time limit.
    279  If the target method call finished before the limit is reached, the return
    280  value or exception is propagated to the caller exactly as-is.  If, on the
    281  other hand, the time limit is reached, we attempt to abort the call to the
    282  target, and throw an <A HREF="../../../../../com/google/common/util/concurrent/UncheckedTimeoutException.html" title="class in com.google.common.util.concurrent"><CODE>UncheckedTimeoutException</CODE></A> to the caller.
    283  <p>
    284  <b>Warning:</b> The future of this method is in doubt.  It may be nuked, or
    285  changed significantly.
    286 <P>
    287 <DD><DL>
    288 <DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html#callWithTimeout(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit, boolean)">callWithTimeout</A></CODE> in interface <CODE><A HREF="../../../../../com/google/common/util/concurrent/TimeLimiter.html" title="interface in com.google.common.util.concurrent">TimeLimiter</A></CODE></DL>
    289 </DD>
    290 <DD><DL>
    291 <DT><B>Parameters:</B><DD><CODE>callable</CODE> - the Callable to execute<DD><CODE>timeoutDuration</CODE> - with timeoutUnit, the maximum length of time to wait<DD><CODE>timeoutUnit</CODE> - with timeoutDuration, the maximum length of time to wait<DD><CODE>amInterruptible</CODE> - whether to respond to thread interruption by aborting
    292      the operation and throwing InterruptedException; if false, the
    293      operation is allowed to complete or time out, and the current thread's
    294      interrupt status is re-asserted.
    295 <DT><B>Returns:</B><DD>the result returned by the Callable
    296 <DT><B>Throws:</B>
    297 <DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</A></CODE> - if <code>interruptible</code> is true and our
    298      thread is interrupted during execution
    299 <DD><CODE><A HREF="../../../../../com/google/common/util/concurrent/UncheckedTimeoutException.html" title="class in com.google.common.util.concurrent">UncheckedTimeoutException</A></CODE> - if the time limit is reached
    300 <DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</A></CODE></DL>
    301 </DD>
    302 </DL>
    303 <!-- ========= END OF CLASS DATA ========= -->
    304 <HR>
    305 
    306 
    307 <!-- ======= START OF BOTTOM NAVBAR ====== -->
    308 <A NAME="navbar_bottom"><!-- --></A>
    309 <A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
    310 <TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
    311 <TR>
    312 <TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
    313 <A NAME="navbar_bottom_firstrow"><!-- --></A>
    314 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
    315   <TR ALIGN="center" VALIGN="top">
    316   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
    317   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
    318   <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
    319   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/FakeTimeLimiter.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
    320   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
    321   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
    322   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
    323   <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
    324   </TR>
    325 </TABLE>
    326 </TD>
    327 <TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
    328 </EM>
    329 </TD>
    330 </TR>
    331 
    332 <TR>
    333 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    334 &nbsp;<A HREF="../../../../../com/google/common/util/concurrent/Executors.html" title="class in com.google.common.util.concurrent"><B>PREV CLASS</B></A>&nbsp;
    335 &nbsp;<A HREF="../../../../../com/google/common/util/concurrent/ForwardingFuture.html" title="class in com.google.common.util.concurrent"><B>NEXT CLASS</B></A></FONT></TD>
    336 <TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
    337   <A HREF="../../../../../index.html?com/google/common/util/concurrent/FakeTimeLimiter.html" target="_top"><B>FRAMES</B></A>  &nbsp;
    338 &nbsp;<A HREF="FakeTimeLimiter.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
    339 &nbsp;<SCRIPT type="text/javascript">
    340   <!--
    341   if(window==top) {
    342     document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
    343   }
    344   //-->
    345 </SCRIPT>
    346 <NOSCRIPT>
    347   <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
    348 </NOSCRIPT>
    349 
    350 
    351 </FONT></TD>
    352 </TR>
    353 <TR>
    354 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    355   SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
    356 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
    357 DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
    358 </TR>
    359 </TABLE>
    360 <A NAME="skip-navbar_bottom"></A>
    361 <!-- ======== END OF BOTTOM NAVBAR ======= -->
    362 
    363 <HR>
    364 
    365 </BODY>
    366 </HTML>
    367