GigaSpaces XAP 9.0 API

net.jini.lease
Class RenewalFailureEvent

java.lang.Object
  extended by java.util.EventObject
      extended by net.jini.core.event.RemoteEvent
          extended by 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

Field Summary
 
Fields inherited from class net.jini.core.event.RemoteEvent
eventID, handback, seqNum, source
 
Constructor Summary
RenewalFailureEvent(LeaseRenewalSet source, long seqNum, MarshalledObject handback)
          Simple constructor.
 
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.
 
Methods inherited from class net.jini.core.event.RemoteEvent
getID, getRegistrationObject, getSequenceNumber
 
Methods inherited from class java.util.EventObject
getSource, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

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 event
seqNum - the sequence number of this event
handback - the client handback
Method Detail

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

GigaSpaces XAP 9.0 API

Copyright © GigaSpaces.