From 950fb6c4aad75b11968bd96cc11873f96b4355a3 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 10 Jul 2008 13:19:21 +0000 Subject: [PATCH] Detect programmer error in delegate usage as early as possible and fail. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5223 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/crowd/client/PlaceController.java | 9 +++++++++ src/java/com/threerings/crowd/server/PlaceManager.java | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/src/java/com/threerings/crowd/client/PlaceController.java b/src/java/com/threerings/crowd/client/PlaceController.java index faf3a44d3..66a5b0485 100644 --- a/src/java/com/threerings/crowd/client/PlaceController.java +++ b/src/java/com/threerings/crowd/client/PlaceController.java @@ -222,6 +222,7 @@ public abstract class PlaceController extends Controller */ protected void addDelegate (PlaceControllerDelegate delegate) { + ratifyDelegate(delegate); if (_delegates == null) { _delegates = new ArrayList(); } @@ -266,6 +267,14 @@ public abstract class PlaceController extends Controller } } + /** + * Protects against programmer error. + */ + protected void ratifyDelegate (PlaceControllerDelegate delegate) + { + // nothing to do here, all PlaceControllerDelegates are safe for us + } + /** A reference to the active client context. */ protected CrowdContext _ctx; diff --git a/src/java/com/threerings/crowd/server/PlaceManager.java b/src/java/com/threerings/crowd/server/PlaceManager.java index 7dbf4c6c0..9889c82b0 100644 --- a/src/java/com/threerings/crowd/server/PlaceManager.java +++ b/src/java/com/threerings/crowd/server/PlaceManager.java @@ -198,6 +198,7 @@ public class PlaceManager */ public void addDelegate (PlaceManagerDelegate delegate) { + ratifyDelegate(delegate); if (_delegates == null) { _delegates = Lists.newArrayList(); } @@ -675,6 +676,14 @@ public class PlaceManager return 5 * 60 * 1000L; } + /** + * Protects against programmer error. + */ + protected void ratifyDelegate (PlaceManagerDelegate delegate) + { + // nothing to do here, all PlaceManagerDelegates are safe for us + } + /** * An extensible way to add to the string representation of this class. Override this (being * sure to call super) and append your info to the buffer.