Hi Thomas,

My animation timer doesn't cache anything (including the runnable queue) -
it get's it from the canvas each time an animation is activated.  So it
appears that during a reload a canvas can have a runnable queue still
around - but one that has exited?  I don't think I understand which canvas
objects are shutdown, recreated, etc and the timing of all that.  I'll take
a look at the Batik source in those areas...

Thanks,
  Denis

----- Original Message ----- 
From: "Thomas DeWeese" <[EMAIL PROTECTED]>
To: "Batik Users" <[EMAIL PROTECTED]>
Sent: Wednesday, October 01, 2003 2:38 AM
Subject: Re: JSVGComponent dynamic DOM update, invokeAndWait threading issue


> Hi Denis.
>
>     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]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to