public abstract class RenewalFailureEvent extends RemoteEvent
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.
LeaseRenewalSet
,
Serialized FormeventID, handback, seqNum, source
Constructor and Description |
---|
RenewalFailureEvent(LeaseRenewalSet source,
long seqNum,
MarshalledObject handback)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
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. |
getID, getRegistrationObject, getSequenceNumber, getSource
toString
public RenewalFailureEvent(LeaseRenewalSet source, long seqNum, MarshalledObject handback)
LeaseRenewalSet.RENEWAL_FAILURE_EVENT_ID
.source
- the LeaseRenewalSet
that generated the
eventseqNum
- the sequence number of this eventhandback
- the client handbackpublic abstract Lease getLease() throws IOException, ClassNotFoundException
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.
IOException
- if there are difficulties unmarshalling the
lease, usually this will be some sort of class mismatchClassNotFoundException
- if there are difficulties
unmarshalling the lease, usually this will indicate one
of the classes associated with the lease's implementation
could not be loadedpublic abstract Throwable getThrowable() throws IOException, ClassNotFoundException
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.
Throwable
(if any) that was thrown by
the last renewal attemptIOException
- if there are difficulties unmarshalling the
Throwable
, usually this will be some sort of
class mismatchClassNotFoundException
- 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
loadedCopyright 2007-2013, multiple authors.
Licensed under the Apache License, Version 2.0, see the NOTICE file for attributions.