It looks to me like you need to shut down your SVGStage.AnimationTimer before you 'unload' the current document (or load a new document). Since this class appears to be 'outside' of Batik there is no way for us to shut it down for you.
If it is really on a Java Timer I believe you can cancel them.
Denis Bohm wrote:
I'm having a problem reloading a document. The first time I try to reload I just get a blank page, on the second try to reload it seems to work. But sometimes on the second reload I get:
java.lang.IllegalStateException: RunnableQueue not started or has exited at org.apache.batik.util.RunnableQueue.invokeAndWait(RunnableQueue.java:257) at com.fireflydesign.svg.SVGStage$AnimationTimer.run(SVGStage.java:639)
and things don't function anymore.
I assume that I need to shut somethings down before changing the document? Is that what you are referring to when you say "don't load new SVG documents until pending DOM updates"?
Thanks, Denis
----- Original Message ----- From: "George Armhold" <[EMAIL PROTECTED]>
To: "Batik Users" <[EMAIL PROTECTED]>
Sent: Monday, September 29, 2003 12:29 PM
Subject: Re: JSVGComponent dynamic DOM update, invokeAndWait threading issue
Sorry for the late reply to this thread; I was travelling when your reply came in.
Thomas DeWeese wrote:
>> So now my question is: how can I know when it's safe to call >> UpdateManager um = getUpdateManager(); >> RunnableQueue rq = um.getUpdateRunnableQueue(); >> >> and add things to the RunnableQueue? > > > It is safe after the first GVT rendering completes. This is > _before_ the managerStarted call back, so this shouldn't be the > problem. You should have enough instrumentation in your code now to > figure out what the sequence of events is that leads to the Null > UpdateManager is.
Indeed, thanks to your help. It seems there were two key issues in my code:
- make sure sure UpdateManager is available (wait until gvtRenderingCompleted event) before starting DOM updates.
- don't load new SVG documents until pending DOM updates (UpdateManager's RunnableQueue) to the currently loaded doc have completed.
Although I need to complete more testing, I have not seen any more crashes since applying these two fixes. Thanks!
-- George Armhold Rutgers University eLearning Grant, DCIS
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]