net.jini.lease
Class RenewalFailureEvent
java.lang.Object
java.util.EventObject
net.jini.core.event.RemoteEvent
net.jini.lease.RenewalFailureEvent
- All Implemented Interfaces:
- Serializable
- Direct Known Subclasses:
- BasicRenewalFailureEvent
public abstract class RenewalFailureEvent
- extends RemoteEvent
Event generated by a lease renewal set when it can't renew a lease it
is responsible for.
RenewalFailureEvent
is a subclass of
RemoteEvent
, adding two additional items of abstract
state: the client lease that could not be renewed before expiration
and the Throwable
object that was thrown by the last
renewal attempt (if any).
The methods of this interface are declared to allow implementations
to defer the unmarshalling of the lease and Throwable
until the client explicitly asks for them.
- Author:
- Sun Microsystems, Inc.
- See Also:
LeaseRenewalSet
,
Serialized Form
Method Summary |
abstract Lease |
getLease()
Returns the lease that could not be renewed. |
abstract Throwable |
getThrowable()
Returns the Throwable (if any) that was thrown by
the last renewal attempt. |
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
RenewalFailureEvent
public RenewalFailureEvent(LeaseRenewalSet source,
long seqNum,
MarshalledObject handback)
- Simple constructor. Note event id is fixed to
LeaseRenewalSet.RENEWAL_FAILURE_EVENT_ID
.
- Parameters:
source
- the LeaseRenewalSet
that generated the
eventseqNum
- the sequence number of this eventhandback
- the client handback
getLease
public abstract Lease getLease()
throws IOException,
ClassNotFoundException
- Returns the lease that could not be renewed. This method may
cause the lease to be unmarshalled. If it does and unmarshalling
fails, future calls will attempt to re-unmarshal the lease. Once
this method succeeds, subsequent calls must return the same
object.
If the renewal service was able to renew the lease before the
event occurred, the expiration time of the Lease
object returned by this method will reflect the result of the
last successful renewal call. This time may be distorted by clock
skew between hosts if it is currently set to use the
Lease.ABSOLUTE
serial format. If the
Lease
object is using the
Lease.DURATION
serial format, and the implementation
only unmarshals the lease when getLease
is called,
the expiration time may be distorted if a long time has passed
between the time the event was generated by the renewal service
and when the client called getLease
. When a renewal
failure event is generated for a given lease, that lease is
removed from the set.
- Returns:
- the lease that could not be renewed
- Throws:
IOException
- if there are difficulties unmarshalling the
lease, usually this will be some sort of class mismatch
ClassNotFoundException
- if there are difficulties
unmarshalling the lease, usually this will indicate one
of the classes associated with the lease's implementation
could not be loaded
getThrowable
public abstract Throwable getThrowable()
throws IOException,
ClassNotFoundException
- Returns the
Throwable
(if any) that was thrown by
the last renewal attempt. If null
is returned it can
be assumed ether the last renewal attempt succeeded, or that the
renewal service was unable to make a renewal attempt before the
lease expired.
This method may cause the Throwable
to be
unmarshalled. If it does and unmarshalling fails, future calls
will attempt to re-unmarshal the Throwable
. Once
this method succeeds, subsequent calls must return the same
object.
- Returns:
- the
Throwable
(if any) that was thrown by
the last renewal attempt
- Throws:
IOException
- if there are difficulties unmarshalling the
Throwable
, usually this will be some sort of
class mismatch
ClassNotFoundException
- if there are difficulties
unmarshalling the Throwable
, usually this
will indicate one of the classes associated with the
implementation of the Throwable
could not be
loaded
Copyright 2007-2010, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.