Hi Thomas,

I shut down my animation timer and I no longer see the exception.  I still
have to reload twice to get the document to appear.  I'm doing:

animationTimer_.shutdown(); // and waits for thread to stop
canvas_.setSVGDocument(null);
// create a new document
canvas_.setSVGDocument(newDocument);

Do you see any problem with that?

Thanks,
  Denis

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


> Denis Bohm wrote:
>
> > 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...
>
>     Yes during document loading there is a time where the UpdateManager
from
> the previous document is still available but shut down, and the
UpdateManager
> from the new document has yet to be installed.
>
>     The UpdateManager does have a 'isRunning()' member, however I would
strongly
> suggest shutting down your animation engine while a document is being
loaded.
>  From the time you call setDocument/URI to the completion of the first GVT
rendering
> you should really just leave the canvas alone! :)
>
> >
> > 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]
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> 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