You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by si...@apache.org on 2010/12/24 21:24:18 UTC

svn commit: r1052583 [2/4] - in /incubator/river/site/trunk/content/river/doc/api/net/jini/lease: ./ class-use/

Added: incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalManager.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalManager.html?rev=1052583&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalManager.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalManager.html Fri Dec 24 20:24:17 2010
@@ -0,0 +1,992 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:21 EST 2010 -->
+<TITLE>
+LeaseRenewalManager (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.lease.LeaseRenewalManager class">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LeaseRenewalManager (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LeaseRenewalManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalEvent.html" title="class in net.jini.lease"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalService.html" title="interface in net.jini.lease"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lease/LeaseRenewalManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LeaseRenewalManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+net.jini.lease</FONT>
+<BR>
+Class LeaseRenewalManager</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
+  <IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.jini.lease.LeaseRenewalManager</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LeaseRenewalManager</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+Provides for the systematic renewal and overall management of a set
+ of leases associated with one or more remote entities on behalf of a
+ local entity.
+ <p>
+ This class removes much of the administrative burden associated with
+ lease renewal. Clients of the renewal manager simply give their
+ leases to the manager and the manager renews each lease as necessary
+ to achieve a <em>desired expiration</em> time (which may be later
+ than the lease's current <em>actual expiration</em> time). Failures
+ encountered while renewing a lease can optionally be reflected to the
+ client via <code>LeaseRenewalEvent</code> instances.
+ <p>
+ Note that this class is not remote. Entities wishing to use this
+ class must create an instance of this class in their own virtual
+ machine to locally manage the leases granted to them. If the virtual
+ machine that the manager was created in exits or crashes, the renewal
+ manager will be destroyed.
+ <p>
+ The <code>LeaseRenewalManager</code> distinguishes between two time
+ values associated with lease expiration: the <em>desired
+ expiration</em> time for the lease, and the <em>actual
+ expiration</em> time granted when the lease is created or last
+ renewed. The desired expiration represents when the client would like
+ the lease to expire. The actual expiration represents when the lease
+ is going to expire if it is not renewed. Both time values are
+ absolute times, not relative time durations. The desired expiration
+ time can be retrieved using the renewal manager's
+ <code>getExpiration</code> method. The actual expiration time of a
+ lease object can be retrieved by invoking the lease's
+ <code>getExpiration</code> method.
+ <p>
+ Each lease in the managed set also has two other associated
+ attributes: a desired <em>renewal duration</em>, and a <em>remaining
+ desired duration</em>. The desired renewal duration is specified
+ (directly or indirectly) when the lease is added to the set. This
+ duration must normally be a positive number; however, it may be
+ <code>Lease.ANY</code> if the lease's desired expiration is
+ <code>Lease.FOREVER</code>. The remaining desired duration is always
+ the desired expiration less the current time.
+ <p>
+ Each time a lease is renewed, the renewal manager will ask for an
+ extension equal to the lease's renewal duration if the renewal
+ duration is:
+ <ul>
+ <li> <code>Lease.ANY</code>, or 
+ <li> less than the remaining desired duration,
+ </ul>
+ otherwise it will ask for an extension equal to the lease's remaining
+ desired duration.
+ <p>
+ Once a lease is given to a lease renewal manager, the manager will
+ continue to renew the lease until one of the following occurs:
+ <ul>
+ <li> The lease's desired or actual expiration time is reached.
+ <li> An explicit removal of the lease from the set is requested via a
+        <code>cancel</code>, <code>clear</code>, or <code>remove</code>
+        call on the renewal manager.
+ <li> The renewal manager tries to renew the lease and gets a bad
+        object exception, bad invocation exception, or
+        <code>LeaseException</code>.
+ </ul>
+ <p>
+ The methods of this class are appropriately synchronized for
+ concurrent operation. Additionally, this class makes certain
+ guarantees with respect to concurrency. When this class makes a
+ remote call (for example, when requesting the renewal of a lease),
+ any invocations made on the methods of this class will not be
+ blocked. Similarly, this class makes a reentrancy guarantee with
+ respect to the listener objects registered with this class. Should
+ this class invoke a method on a registered listener (a local call),
+ calls from that method to any other method of this class are
+ guaranteed not to result in a deadlock condition.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease"><CODE>Lease</CODE></A>, 
+<A HREF="../../../net/jini/core/lease/LeaseException.html" title="class in net.jini.core.lease"><CODE>LeaseException</CODE></A>, 
+<A HREF="../../../net/jini/lease/LeaseRenewalEvent.html" title="class in net.jini.lease"><CODE>LeaseRenewalEvent</CODE></A><DT><B>Implementation Specifics:</B></DT>
+  <DD><!-- Implementation Specifics -->
+
+ The following implementation-specific items are discussed below:
+ <ul>
+ <li><a href="#configEntries">Configuring LeaseRenewalManager</a>
+ <li><a href="#logging">Logging</a>
+ <li><a href="#algorithm">The renewal algorithm</a>
+ </ul>
+
+ <a name="configEntries">
+ <p><b><font size="+1">Configuring LeaseRenewalManager</font></b><p>
+ </a>
+
+ This implementation of <code>LeaseRenewalManager</code> supports the
+ following configuration entries, with component
+ <code>net.jini.lease.LeaseRenewalManager</code>:
+
+ <table summary="Describes the renewBatchTimeWindow configuration entry"
+          border="0" cellpadding="2">
+   <tr valign="top">
+     <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+     <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+         renewBatchTimeWindow</code></font>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Type: <td> <code>long</code>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Default: <td> <code>5 * 60 * 1000 // 5 minutes</code>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Description: <td> The maximum number of milliseconds earlier than
+     a lease would typically be renewed to allow it to be renewed in
+     order to permit batching its renewal with that of other
+     leases. The value must not be negative. This entry is obtained
+     in the constructor.
+ </table>
+ <table summary="Describes the roundTripTime configuration entry"
+          border="0" cellpadding="2">
+   <tr valign="top">
+     <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+     <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+         roundTripTime</code></font>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Type: <td> <code>long</code>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Default: <td> <code>10 * 1000 // 10 seconds</code>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Description: <td> The worst-case latency, expressed in milliseconds,
+     to assume for a remote call to renew a lease. The value must be greater 
+     than zero. Unrealistically low values for this entry may
+     result in failure to renew a lease. Leases managed by this manager
+     should have durations exceeding the <code>roundTripTime</code>.
+     This entry is obtained in the constructor.
+ </table>
+ <table summary="Describes the taskManager configuration entry"
+          border="0" cellpadding="2">
+   <tr valign="top">
+     <th scope="col" summary="layout"> <font size="+1">&#X2022;</font>
+     <th scope="col" align="left" colspan="2"> <font size="+1"><code>
+         taskManager</code></font>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Type: <td> <A HREF="../../../com/sun/jini/thread/TaskManager.html" title="class in com.sun.jini.thread"><CODE>TaskManager</CODE></A>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Default: <td> <code>new TaskManager(11, 15000, 1.0f)</code>
+   <tr valign="top"> <td> &nbsp <th scope="row" align="right">
+     Description: <td> The object used to manage queuing tasks
+     involved with renewing leases and sending notifications. The
+     value must not be <code>null</code>. The default value creates
+     a maximum of 11 threads for performing operations, waits 15
+     seconds before removing idle threads, and uses a load factor of
+     1.0 when determining whether to create a new thread. Note that
+     the implementation of the renewal algorithm includes an assumption
+     that the <code>TaskManager</code> uses a load factor of 1.0.
+ </table>
+ 
+ <a name="logging">
+ <p><b><font size="+1">Logging</font></b><p>
+ </a>
+
+ This implementation uses the <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Logger.html" title="class or interface in java.util.logging"><CODE>Logger</CODE></A> named
+ <code>net.jini.lease.LeaseRenewalManager</code> to log information at
+ the following logging levels: <p>
+
+ <table border="1" cellpadding="5"
+          summary="Describes logging performed by the
+                   LeaseRenewalManager at different logging levels">
+
+ <caption halign="center" valign="top"><b><code>
+            net.jini.lease.LeaseRenewalManager</code></b></caption>
+
+ <tr> <th scope="col"> Level <th scope="col"> Description
+
+ <tr> <td> <A HREF="../../../com/sun/jini/logging/Levels.html#FAILED"><CODE>FAILED</CODE></A>
+        <td> Lease renewal failure events, or leases that expire before
+           reaching the desired expiration time
+
+ <tr> <td> <A HREF="../../../com/sun/jini/logging/Levels.html#HANDLED"><CODE>HANDLED</CODE></A>
+        <td> Lease renewal attempts that produce indefinite exceptions
+
+ <tr> <td> <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/Level.html#FINE" title="class or interface in java.util.logging"><CODE>FINE</CODE></A>
+        <td> Adding and removing leases, lease renewal attempts, and desired
+             lease expiration events
+
+ </table> <p>
+
+ For a way of using the <code>FAILED</code> and <code>HANDLED</code> logging
+ levels in standard logging configuration files, see the <A HREF="../../../com/sun/jini/logging/LogManager.html" title="class in com.sun.jini.logging"><CODE>LogManager</CODE></A>
+ class.
+
+ <a name="algorithm">
+ <p><b><font size="+1">The renewal algorithm</font></b><p>
+ </a>
+ The time at which a lease is scheduled for renewal is based on the
+ expiration time of the lease, possibly adjusted to account for the
+ latency of the remote renewal call. The configuration entry
+ <code>roundTripTime</code>, which defaults to ten seconds, represents
+ the total time to make the remote call. 
+ <p>
+ The following pseudocode was derived from the code which computes
+ the renewal time. In this code, <code>rtt</code> represents the
+ value of the <code>roundTripTime</code>:
+
+ <pre>    
+          endTime = lease.getExpiration();
+          delta = endTime - now;
+          if (delta <= rtt * 2) {
+                delta = rtt;
+          } else if (delta <= rtt * 8) {
+                delta /= 2;
+          } else if (delta <= 1000 * 60 * 60 * 24 * 7) {
+                delta /= 8;
+          } else if (delta <= 1000 * 60 * 60 * 24 * 14) {
+                delta = 1000 * 60 * 60 * 24;
+          } else {
+                delta = 1000 * 60 * 60 * 24 * 3;
+          }
+          renew = endTime - delta;
+</pre>
+
+ It is important to note that <code>delta</code> is never less than
+ <code>rtt</code> when the renewal time is computed. A lease which 
+ would expire within this time range will be scheduled for immediate
+ renewal. The use of very short lease durations (at or below <code>rtt</code>)
+ can cause the renewal manager to effectively ignore the lease duration
+ and repeatedly schedule the lease for immediate renewal.
+ <p>
+ If an attempt to renew a lease fails with an indefinite exception, a
+ renewal is rescheduled with an updated renewal time as computed by the
+ following pseudocode:
+
+ <pre>
+          delta = endTime - renew;
+          if (delta > rtt) {
+              if (delta <= rtt * 3) {
+                    delta = rtt;
+              } else if (delta <= 1000 * 60 * 60) {
+                    delta /= 3;
+              } else if (delta <= 1000 * 60 * 60 * 24) {
+                    delta = 1000 * 60 * 30;
+              } else if (delta <= 1000 * 60 * 60 * 24 * 7) {
+                    delta = 1000 * 60 * 60 * 3;
+              } else {
+                    delta = 1000 * 60 * 60 * 8;
+              }
+              renew += delta;
+          }
+ </pre>
+
+ Client leases are maintained in a collection sorted by descending renewal
+ time. A renewal thread is spawned whenever the renewal time of the last lease
+ in the collection is reached. This renewal thread examines all of the leases
+ in the collection whose renewal time falls within
+ <code>renewBatchTimeWindow</code> milliseconds of the renewal time of the
+ last lease. If any of these leases can be batch renewed with the last lease (as
+ determined by calling the <A HREF="../../../net/jini/core/lease/Lease.html#canBatch(net.jini.core.lease.Lease)"><CODE>canBatch</CODE></A> method of
+ the last lease) then a <A HREF="../../../net/jini/core/lease/LeaseMap.html" title="interface in net.jini.core.lease"><CODE>LeaseMap</CODE></A> is created, all eligible leases
+ are added to it and the <A HREF="../../../net/jini/core/lease/LeaseMap.html#renewAll()"><CODE>LeaseMap.renewAll()</CODE></A> method is called. Otherwise, the
+ last lease is renewed directly.
+ <p> 
+ The <code>TaskManager</code> that manages the renewal threads has a bound on
+ the number of simultaneous threads it will support. The renewal time of
+ leases may be adjusted earlier in time to reduce the likelihood that the
+ renewal of a lease will be delayed due to exhaustion of the thread pool.
+ Actual renewal times are determined by starting with the lease with the
+ latest (farthest off) desired renewal time and working backwards.  When
+ computing the actual renewal time for a lease, the renewals of all leases
+ with later renewal times, which will be initiated during the round trip time
+ of the current lease's renewal, are considered.  If using the desired
+ renewal time for the current lease would result in more in-progress renewals
+ than the number of threads allowed, the renewal time of the current lease is
+ shifted earlier in time, such that the maximum number of threads is not
+ exceeded.</DD>
+</DL>
+<HR>
+
+<P>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#LeaseRenewalManager()">LeaseRenewalManager</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;No-argument constructor that creates an instance of this class
+ that initially manages no leases.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#LeaseRenewalManager(net.jini.config.Configuration)">LeaseRenewalManager</A></B>(<A HREF="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</A>&nbsp;config)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an instance of this class that initially manages no leases
+ and that uses <code>config</code> to control implementation-specific
+ details of the behavior of the instance created.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#LeaseRenewalManager(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)">LeaseRenewalManager</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                    long&nbsp;desiredExpiration,
+                    <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructs an instance of this class that will initially manage a
+ single lease.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#cancel(net.jini.core.lease.Lease)">cancel</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a given lease from the managed set, and cancels it.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#clear()">clear</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes all leases from the managed set of leases.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#getExpiration(net.jini.core.lease.Lease)">getExpiration</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current desired expiration time associated with a
+ particular lease, (not the actual expiration that was granted
+ when the lease was created or last renewed).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#remove(net.jini.core.lease.Lease)">remove</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes a given lease from the managed set of leases; but does
+ not cancel the given lease.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewFor(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)">renewFor</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+         long&nbsp;desiredDuration,
+         <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Include a lease in the managed set for a specified duration.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewFor(net.jini.core.lease.Lease, long, long, net.jini.lease.LeaseListener)">renewFor</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+         long&nbsp;desiredDuration,
+         long&nbsp;renewDuration,
+         <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Include a lease in the managed set for a specified duration and
+ with specified renewal duration.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)">renewUntil</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+           long&nbsp;desiredExpiration,
+           <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Include a lease in the managed set until a specified time.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, long, net.jini.lease.LeaseListener)">renewUntil</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+           long&nbsp;desiredExpiration,
+           long&nbsp;renewDuration,
+           <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Include a lease in the managed set until a specified time and
+ with a specified renewal duration.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#setExpiration(net.jini.core.lease.Lease, long)">setExpiration</A></B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+              long&nbsp;expiration)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replaces the current desired expiration of a given lease from the
+ managed set with a new desired expiration time.</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://
 java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="LeaseRenewalManager()"><!-- --></A><H3>
+LeaseRenewalManager</H3>
+<PRE>
+public <B>LeaseRenewalManager</B>()</PRE>
+<DL>
+<DD>No-argument constructor that creates an instance of this class
+ that initially manages no leases.
+<P>
+</DL>
+<HR>
+
+<A NAME="LeaseRenewalManager(net.jini.config.Configuration)"><!-- --></A><H3>
+LeaseRenewalManager</H3>
+<PRE>
+public <B>LeaseRenewalManager</B>(<A HREF="../../../net/jini/config/Configuration.html" title="interface in net.jini.config">Configuration</A>&nbsp;config)
+                    throws <A HREF="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</A></PRE>
+<DL>
+<DD>Constructs an instance of this class that initially manages no leases
+ and that uses <code>config</code> to control implementation-specific
+ details of the behavior of the instance created.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>config</CODE> - supplies entries that control the configuration of this
+              instance
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../net/jini/config/ConfigurationException.html" title="class in net.jini.config">ConfigurationException</A></CODE> - if a problem occurs when obtaining
+               entries from the configuration
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if the configuration is <code>null</code></DL>
+</DL>
+<HR>
+
+<A NAME="LeaseRenewalManager(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><!-- --></A><H3>
+LeaseRenewalManager</H3>
+<PRE>
+public <B>LeaseRenewalManager</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                           long&nbsp;desiredExpiration,
+                           <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Constructs an instance of this class that will initially manage a
+ single lease. Employing this form of the constructor is
+ equivalent to invoking the no-argument form of the constructor
+ followed by an invocation of the three-argument form of the
+ <code>renewUntil</code> method. See <code>renewUntil</code> for
+ details on the arguments and what exceptions may be thrown by
+ this constructor.
+<P>
+<DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - reference to the initial lease to manage<DD><CODE>desiredExpiration</CODE> - the desired expiration for
+              <code>lease</code><DD><CODE>listener</CODE> - reference to the <code>LeaseListener</code>
+              object that will receive notifications of any exceptional
+              conditions that occur during renewal attempts. If
+              <code>null</code> no notifications will be sent.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>lease</code> is
+               <code>null</code><DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease"><CODE>LeaseListener</CODE></A>, 
+<A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><CODE>renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)</CODE></A></DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><!-- --></A><H3>
+renewUntil</H3>
+<PRE>
+public void <B>renewUntil</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                       long&nbsp;desiredExpiration,
+                       <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Include a lease in the managed set until a specified time. 
+ <p>
+ If <code>desiredExpiration</code> is <code>Lease.ANY</code>
+ calling this method is equivalent the following call:
+ <pre>
+     renewUntil(lease, Lease.FOREVER, Lease.ANY, listener)
+ </pre>
+ otherwise it is equivalent to this call:
+ <pre>
+     renewUntil(lease, desiredExpiration, Lease.FOREVER, listener)
+ </pre>
+ <p>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the <code>Lease</code> to be managed<DD><CODE>desiredExpiration</CODE> - when the client wants the lease to
+              expire, in milliseconds since the beginning of the epoch<DD><CODE>listener</CODE> - reference to the <code>LeaseListener</code>
+              object that will receive notifications of any exceptional
+              conditions that occur during renewal attempts. If
+              <code>null</code> no notifications will be sent.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>lease</code> is
+               <code>null</code><DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><CODE>renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="renewUntil(net.jini.core.lease.Lease, long, long, net.jini.lease.LeaseListener)"><!-- --></A><H3>
+renewUntil</H3>
+<PRE>
+public void <B>renewUntil</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                       long&nbsp;desiredExpiration,
+                       long&nbsp;renewDuration,
+                       <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Include a lease in the managed set until a specified time and
+ with a specified renewal duration.
+ <p>
+ This method takes as arguments: a reference to the lease to
+ manage, the desired expiration time of the lease, the renewal
+ duration time for the lease, and a reference to the
+ <code>LeaseListener</code> object that will receive notification
+ of exceptional conditions when attempting to renew this
+ lease. The <code>LeaseListener</code> argument may be
+ <code>null</code>.
+ <p>
+ If the <code>lease</code> argument is <code>null</code>, a
+ <code>NullPointerException</code> will be thrown. If the
+ <code>desiredExpiration</code> argument is
+ <code>Lease.FOREVER</code>, the <code>renewDuration</code>
+ argument may be <code>Lease.ANY</code> or any positive value;
+ otherwise, the <code>renewDuration</code> argument must be a
+ positive value. If the <code>renewDuration</code> argument does
+ not meet these requirements, an
+ <code>IllegalArgumentException</code> will be thrown.
+ <p>
+ If the lease passed to this method is already in the set of
+ managed leases, the listener object, the desired expiration, and
+ the renewal duration associated with that lease will be replaced
+ with the new listener, desired expiration, and renewal duration.
+ <p>
+ The lease will remain in the set until one of the following
+ occurs:
+ <ul>
+ <li> The lease's desired or actual expiration time is reached.
+ <li> An explicit removal of the lease from the set is requested
+            via a <code>cancel</code>, <code>clear</code>, or
+            <code>remove</code> call on the renewal manager.
+ <li> The renewal manager tries to renew the lease and gets a bad
+            object exception, bad invocation exception, or
+            <code>LeaseException</code>.
+ </ul>
+ <p>
+ This method will interpret the value of the
+ <code>desiredExpiration</code> argument as the desired absolute
+ system time after which the lease is no longer valid. This
+ argument provides the ability to indicate an expiration time that
+ extends beyond the actual expiration of the lease. If the value
+ passed for this argument does indeed extend beyond the lease's
+ actual expiration time, then the lease will be systematically
+ renewed at appropriate times until one of the conditions listed
+ above occurs. If the value is less than or equal to the actual
+ expiration time, nothing will be done to modify the time when the
+ lease actually expires. That is, the lease will not be renewed
+ with an expiration time that is less than the actual expiration
+ time of the lease at the time of the call.
+ <p>
+ If the <code>LeaseListener</code> argument is a
+ non-<code>null</code> object reference, it will receive
+ notification of exceptional conditions occurring upon a renewal
+ attempt of the lease. In particular, exceptional conditions
+ include the reception of a <code>LeaseException</code>, bad
+ object exception, or bad invocation exception (collectively these
+ are referred to as <em>definite exceptions</em>) during a renewal
+ attempt or the lease's actual expiration being reached before its
+ desired expiration.
+ <p>
+ If a definite exception occurs during a lease renewal request,
+ the exception will be wrapped in an instance of the
+ <code>LeaseRenewalEvent</code> class and sent to the listener.
+ <p>
+ If an indefinite exception occurs during a renewal request for
+ the lease, renewal requests will continue to be made for that
+ lease until: the lease is renewed successfully, a renewal attempt
+ results in a definite exception, or the lease's actual expiration
+ time has been exceeded. If the lease cannot be successfully
+ renewed before its actual expiration is reached, the exception
+ associated with the most recent renewal attempt will be wrapped
+ in an instance of the <code>LeaseRenewalEvent</code> class and
+ sent to the listener.
+ <p>
+ If the lease's actual expiration is reached before the lease's
+ desired expiration time, and either 1) the last renewal attempt
+ succeeded or 2) there have been no renewal attempts, a
+ <code>LeaseRenewalEvent</code> containing a <code>null</code>
+ exception will be sent to the listener.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the <code>Lease</code> to be managed<DD><CODE>desiredExpiration</CODE> - when the client wants the lease to
+              expire, in milliseconds since the beginning of the epoch<DD><CODE>renewDuration</CODE> - the renewal duration to associate with the
+              lease, in milliseconds<DD><CODE>listener</CODE> - reference to the <code>LeaseListener</code>
+              object that will receive notifications of any exceptional
+              conditions that occur during renewal attempts. If
+              <code>null</code>, no notifications will be sent.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>lease</code> is
+               <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>renewDuration</code> is
+               invalid<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalEvent.html" title="class in net.jini.lease"><CODE>LeaseRenewalEvent</CODE></A>, 
+<A HREF="../../../net/jini/core/lease/LeaseException.html" title="class in net.jini.core.lease"><CODE>LeaseException</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="renewFor(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><!-- --></A><H3>
+renewFor</H3>
+<PRE>
+public void <B>renewFor</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                     long&nbsp;desiredDuration,
+                     <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Include a lease in the managed set for a specified duration.
+ <p>
+ Calling this method is equivalent the following call:
+ <pre>
+     renewFor(lease, desiredDuration, Lease.FOREVER, listener)
+ </pre>
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - reference to the new lease to manage<DD><CODE>desiredDuration</CODE> - the desired duration (relative time) that
+              the caller wants <code>lease</code> to be valid for, in
+              milliseconds<DD><CODE>listener</CODE> - reference to the <code>LeaseListener</code>
+              object that will receive notifications of any exceptional
+              conditions that occur during renewal attempts. If
+              <code>null</code>, no notifications will be sent.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>lease</code> is
+               <code>null</code><DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewFor(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><CODE>renewFor(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="renewFor(net.jini.core.lease.Lease, long, long, net.jini.lease.LeaseListener)"><!-- --></A><H3>
+renewFor</H3>
+<PRE>
+public void <B>renewFor</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                     long&nbsp;desiredDuration,
+                     long&nbsp;renewDuration,
+                     <A HREF="../../../net/jini/lease/LeaseListener.html" title="interface in net.jini.lease">LeaseListener</A>&nbsp;listener)</PRE>
+<DL>
+<DD>Include a lease in the managed set for a specified duration and
+ with specified renewal duration.
+ <p>
+ The semantics of this method are similar to those of the
+ four-argument form of <code>renewUntil</code>, with
+ <code>desiredDuration</code> + current time being used for the
+ value of the <code>desiredExpiration</code> argument of
+ <code>renewUntil</code>. The only exception to this is that, in
+ the context of <code>renewFor</code>, the value of the
+ <code>renewDuration</code> argument may only be
+ <code>Lease.ANY</code> if the value of the
+ <code>desiredDuration</code> argument is <em>exactly</em>
+ <code>Lease.FOREVER.</code>
+ <p>
+ This method tests for arithmetic overflow in the desired
+ expiration time computed from the value of
+ <code>desiredDuration</code> argument
+ (<code>desiredDuration</code> + current time). Should such
+ overflow be present, a value of <code>Lease.FOREVER</code> is
+ used to represent the lease's desired expiration time.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - reference to the new lease to manage<DD><CODE>desiredDuration</CODE> - the desired duration (relative time) that
+              the caller wants <code>lease</code> to be valid for, in
+              milliseconds<DD><CODE>renewDuration</CODE> - the renewal duration to associate with the
+              lease, in milliseconds<DD><CODE>listener</CODE> - reference to the <code>LeaseListener</code>
+              object that will receive notifications of any exceptional
+              conditions that occur during renewal attempts. If
+              <code>null</code>, no notifications will be sent.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html" title="class or interface in java.lang">NullPointerException</A></CODE> - if <code>lease</code> is
+               <code>null</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>renewDuration</code> is
+               invalid<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><CODE>renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getExpiration(net.jini.core.lease.Lease)"><!-- --></A><H3>
+getExpiration</H3>
+<PRE>
+public long <B>getExpiration</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)
+                   throws <A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></PRE>
+<DL>
+<DD>Returns the current desired expiration time associated with a
+ particular lease, (not the actual expiration that was granted
+ when the lease was created or last renewed).
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the lease the caller wants the current desired
+              expiration for
+<DT><B>Returns:</B><DD>a <code>long</code> value corresponding to the current
+               desired expiration time associated with <code>lease</code>
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></CODE> - if the lease passed to this method
+               is not in the set of managed leases<DT><B>See Also:</B><DD><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease"><CODE>UnknownLeaseException</CODE></A>, 
+<A HREF="../../../net/jini/lease/LeaseRenewalManager.html#setExpiration(net.jini.core.lease.Lease, long)"><CODE>setExpiration(net.jini.core.lease.Lease, long)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setExpiration(net.jini.core.lease.Lease, long)"><!-- --></A><H3>
+setExpiration</H3>
+<PRE>
+public void <B>setExpiration</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease,
+                          long&nbsp;expiration)
+                   throws <A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></PRE>
+<DL>
+<DD>Replaces the current desired expiration of a given lease from the
+ managed set with a new desired expiration time.
+ <p>
+ Note that an invocation of this method with a lease that is
+ currently a member of the managed set is equivalent to an
+ invocation of the <code>renewUntil</code> method with the lease's
+ current listener as that method's <code>listener</code>
+ argument. Specifically, if the value of the
+ <code>expiration</code> argument is less than or equal to the
+ lease's current desired expiration, this method takes no action.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the lease whose desired expiration time should be
+              replaced<DD><CODE>expiration</CODE> - <code>long</code> value representing the new
+              desired expiration time for the <code>lease</code>
+              argument
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></CODE> - if the lease passed to this method
+               is not in the set of managed leases<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalManager.html#renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)"><CODE>renewUntil(net.jini.core.lease.Lease, long, net.jini.lease.LeaseListener)</CODE></A>, 
+<A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease"><CODE>UnknownLeaseException</CODE></A>, 
+<A HREF="../../../net/jini/lease/LeaseRenewalManager.html#getExpiration(net.jini.core.lease.Lease)"><CODE>getExpiration(net.jini.core.lease.Lease)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="cancel(net.jini.core.lease.Lease)"><!-- --></A><H3>
+cancel</H3>
+<PRE>
+public void <B>cancel</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)
+            throws <A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A>,
+                   <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></PRE>
+<DL>
+<DD>Removes a given lease from the managed set, and cancels it.
+ <p>
+ Note that even if an exception is thrown as a result of the
+ cancel operation, the lease will still have been removed from the
+ set of leases managed by this class. Additionally, any exception
+ thrown by the <code>cancel</code> method of the lease object
+ itself may also be thrown by this method.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the lease to remove and cancel
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></CODE> - if the lease passed to this method
+               is not in the set of managed leases
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></CODE> - typically, this exception occurs when
+         there is a communication failure between the client and
+         the server. When this exception does occur, the lease may
+         or may not have been successfully cancelled, (but the
+         lease is guaranteed to have been removed from the managed
+         set).<DT><B>See Also:</B><DD><A HREF="../../../net/jini/core/lease/Lease.html#cancel()"><CODE>Lease.cancel()</CODE></A>, 
+<A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease"><CODE>UnknownLeaseException</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="remove(net.jini.core.lease.Lease)"><!-- --></A><H3>
+remove</H3>
+<PRE>
+public void <B>remove</B>(<A HREF="../../../net/jini/core/lease/Lease.html" title="interface in net.jini.core.lease">Lease</A>&nbsp;lease)
+            throws <A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></PRE>
+<DL>
+<DD>Removes a given lease from the managed set of leases; but does
+ not cancel the given lease.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>lease</CODE> - the lease to remove from the managed set
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease">UnknownLeaseException</A></CODE> - if the lease passed to this method
+         is not in the set of managed leases<DT><B>See Also:</B><DD><A HREF="../../../net/jini/core/lease/UnknownLeaseException.html" title="class in net.jini.core.lease"><CODE>UnknownLeaseException</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="clear()"><!-- --></A><H3>
+clear</H3>
+<PRE>
+public void <B>clear</B>()</PRE>
+<DL>
+<DD>Removes all leases from the managed set of leases. This method
+ does not request the cancellation of the removed leases.
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LeaseRenewalManager.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalEvent.html" title="class in net.jini.lease"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalService.html" title="interface in net.jini.lease"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lease/LeaseRenewalManager.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LeaseRenewalManager.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>

Added: incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalService.html
URL: http://svn.apache.org/viewvc/incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalService.html?rev=1052583&view=auto
==============================================================================
--- incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalService.html (added)
+++ incubator/river/site/trunk/content/river/doc/api/net/jini/lease/LeaseRenewalService.html Fri Dec 24 20:24:17 2010
@@ -0,0 +1,236 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.5.0_15) on Mon Mar 08 17:46:21 EST 2010 -->
+<TITLE>
+LeaseRenewalService (Apache River v2.1.2-SNAPSHOT API Documentation)
+</TITLE>
+
+<META NAME="keywords" CONTENT="net.jini.lease.LeaseRenewalService interface">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+    parent.document.title="LeaseRenewalService (Apache River v2.1.2-SNAPSHOT API Documentation)";
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LeaseRenewalService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalSet.html" title="interface in net.jini.lease"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lease/LeaseRenewalService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LeaseRenewalService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+net.jini.lease</FONT>
+<BR>
+Interface LeaseRenewalService</H2>
+<HR>
+<DL>
+<DT><PRE>public interface <B>LeaseRenewalService</B></DL>
+</PRE>
+
+<P>
+Interface to the lease renewal service. The interface is not a remote
+ interface; each implementation of the renewal service exports proxy
+ objects that implement the <code>LeaseRenewalService</code> interface
+ that use an implementation-specific protocol to communicate with the
+ actual remote server. All of the proxy methods obey normal RMI remote
+ interface semantics. Two proxy objects are equal if they are proxies
+ for the same renewal service. Every method invocation (on both a
+ <code>LeaseRenewalService</code> and any <code>LeaseRenewalSet</code>
+ it has created) is atomic with respect to other invocations.
+<P>
+
+<P>
+<DL>
+<DT><B>Author:</B></DT>
+  <DD>Sun Microsystems, Inc.</DD>
+<DT><B>See Also:</B><DD><A HREF="../../../net/jini/lease/LeaseRenewalSet.html" title="interface in net.jini.lease"><CODE>LeaseRenewalSet</CODE></A></DL>
+<HR>
+
+<P>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalSet.html" title="interface in net.jini.lease">LeaseRenewalSet</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../net/jini/lease/LeaseRenewalService.html#createLeaseRenewalSet(long)">createLeaseRenewalSet</A></B>(long&nbsp;leaseDuration)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a new <code>LeaseRenewalSet</code> that the client can
+ populate with leases to be renewed.</TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="createLeaseRenewalSet(long)"><!-- --></A><H3>
+createLeaseRenewalSet</H3>
+<PRE>
+<A HREF="../../../net/jini/lease/LeaseRenewalSet.html" title="interface in net.jini.lease">LeaseRenewalSet</A> <B>createLeaseRenewalSet</B>(long&nbsp;leaseDuration)
+                                      throws <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></PRE>
+<DL>
+<DD>Create a new <code>LeaseRenewalSet</code> that the client can
+ populate with leases to be renewed. The initial duration of the
+ lease granted on this set will be less than or equal to
+ <code>leaseDuration</code>.
+ <p>
+ Two calls to this method should never return objects that are
+ equal.
+<P>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>leaseDuration</CODE> - requested lease duration in milliseconds
+<DT><B>Returns:</B><DD>a new <code>LeaseRenewalSet</code> in the renewal service
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/IllegalArgumentException.html" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if <code>leaseDuration</code> is
+               not positive, <code>Lease.ANY</code>, or
+               <code>Lease.FOREVER</code>
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html" title="class or interface in java.rmi">RemoteException</A></CODE> - if a communication-related exception
+               occurs</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+  <TR ALIGN="center" VALIGN="top">
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/LeaseRenewalService.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+  </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalManager.html" title="class in net.jini.lease"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<A HREF="../../../net/jini/lease/LeaseRenewalSet.html" title="interface in net.jini.lease"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+  <A HREF="../../../index.html?net/jini/lease/LeaseRenewalService.html" target="_top"><B>FRAMES</B></A>  &nbsp;
+&nbsp;<A HREF="LeaseRenewalService.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+  <!--
+  if(window==top) {
+    document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
+  }
+  //-->
+</SCRIPT>
+<NOSCRIPT>
+  <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright 2007, multiple authors.<br>Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0" target="child" >Apache License, Version 2.0</a>, see the <a href="../../../doc-files/NOTICE" target="child" >NOTICE</a> file for attributions.
+</BODY>
+</HTML>