I think a ConcurrentModificationException is caused when one thread is
in the process of iterating a collection (e.g. a Vector) and another
thread modifies the collection by adding or removing elements.
I don't know if this is the best but here is my method for updating the
runnableQueue:
public synchronized void runnableQueueInvoke(Runnable runnable, boolean
wait)
{
try
{
if (runnableQueue == null)
{
UpdateManager updateManager = svgCanvas.getUpdateManager();
if (updateManager != null)
{
if (updateManager.isRunning())
{
runnableQueue =
updateManager.getUpdateRunnableQueue();
if (runnableQueue.getQueueState() !=
RunnableQueue.RUNNING)
runnableQueue = null;
}
updateManager = null;
}
}
if (runnableQueue != null)
{
if (runnableQueue.getQueueState() == RunnableQueue.RUNNING)
{
if (wait)
runnableQueue.invokeAndWait(runnable);
else
runnableQueue.invokeLater(runnable);
}
else
runnableQueue = null;
}
}
catch (Exception ex) {
System.out.println("runnableQueueInvoke:"+ex);
}
}
Any comments are welcome.
Stan Dickerson
On Mon, 2004-10-04 at 14:25, Frederik Santens wrote:
> Hi,
>
>
>
> We have a svg application that updates a svg canvas via its
> updatemanager. The changes are triggered by a poller that polls for
> database changes. This poller runs in a separte thread. Every 2
> seconds, a maximum of 400 svg parts can get updated. However we
> receive the following exception:
>
>
>
>
>
> java.util.ConcurrentModificationException
>
> at
> java.util.HashMap$HashIterator.nextEntry(HashMap.java:782)
>
> at java.util.HashMap$KeyIterator.next(HashMap.java:818)
>
> at
> org.apache.batik.gvt.UpdateTracker.getDirtyAreas(UpdateTracker.java:99)
>
> at org.apache.batik.bridge.UpdateManager.repaint(Unknown
> Source)
>
> at
> org.apache.batik.bridge.UpdateManager$UpdateManagerRunHander.runnableInvoked(Unknown
> Source)
>
> at
> org.apache.batik.util.RunnableQueue.runnableInvoked(RunnableQueue.java:473)
>
> at
> org.apache.batik.util.RunnableQueue.run(RunnableQueue.java:217)
>
> at java.lang.Thread.run(Thread.java:534)
>
>
>
> Any Idea’s?
>
>
>
> Thx,
>
> Frederik
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.769 / Virus Database: 516 - Release Date: 9/24/2004
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]