From 7a9946e0adadc5cae39b333ddc91f2d251e42e52 Mon Sep 17 00:00:00 2001 From: Walter Korman Date: Mon, 10 Jun 2002 21:31:56 +0000 Subject: [PATCH] Catch and report any exceptions thrown by Component.paint() to allow peacable continued frame painting in cases where a component gets in a bad way and fails to paint itself happily. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1432 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/media/FrameRepaintManager.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/java/com/threerings/media/FrameRepaintManager.java b/src/java/com/threerings/media/FrameRepaintManager.java index 4f0935384..02edd97db 100644 --- a/src/java/com/threerings/media/FrameRepaintManager.java +++ b/src/java/com/threerings/media/FrameRepaintManager.java @@ -1,5 +1,5 @@ // -// $Id: FrameRepaintManager.java,v 1.7 2002/05/04 05:13:54 mdb Exp $ +// $Id: FrameRepaintManager.java,v 1.8 2002/06/10 21:31:56 shaper Exp $ package com.threerings.media; @@ -345,7 +345,16 @@ public class FrameRepaintManager extends RepaintManager g.setClip(drect); g.translate(_cbounds.x, _cbounds.y); - ocomp.paint(g); + try { + // some components are ill-behaved and may throw an + // exception while painting themselves, and so we + // needs must deal with these fellows gracefully + ocomp.paint(g); + } catch (Exception e) { + Log.warning("Exception while painting component " + + "[comp=" + ocomp + ", e=" + e + "]."); + Log.logStackTrace(e); + } g.translate(-_cbounds.x, -_cbounds.y); } else if (root != null) {