diff options
Diffstat (limited to 'gnu/java/rmi/dgc/LeaseRenewingTask.java')
-rw-r--r-- | gnu/java/rmi/dgc/LeaseRenewingTask.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gnu/java/rmi/dgc/LeaseRenewingTask.java b/gnu/java/rmi/dgc/LeaseRenewingTask.java index 7e3bb258b..ffb5560af 100644 --- a/gnu/java/rmi/dgc/LeaseRenewingTask.java +++ b/gnu/java/rmi/dgc/LeaseRenewingTask.java @@ -110,9 +110,12 @@ public class LeaseRenewingTask */ public LeaseRenewingTask(UnicastRef renewIt) { - ref.add(new WeakReference(renewIt)); lease = notifyDGC(renewIt); - schedule(lease); + if (lease != null) + { + schedule(lease); + ref.add(new WeakReference(renewIt)); + } } /** @@ -122,6 +125,9 @@ public class LeaseRenewingTask */ public static void scheduleLeases(UnicastRef renewIt) { + // No need to schedule leases for null. + if (renewIt == null) + return; try { synchronized (existingTasks) { @@ -144,7 +150,9 @@ public class LeaseRenewingTask } catch (Exception ex) { - ex.printStackTrace(); + InternalError ierr = new InternalError("Lease for "+renewIt); + ierr.initCause(ex); + throw ierr; } } |