On Sun, 10 Jun 2001, Remy Maucherat wrote:
> > Not really sure what caused this, but I just saw it printed to my window
> > that I'm running T4 in...this is from fairly recent CVS...
> >
> > java.util.ConcurrentModificationException
> > at java.util.HashMap$HashIterator.next(HashMap.java:736)
> > at
> java.util.AbstractCollection.toArray(AbstractCollection.java:173)
> > at
> > org.apache.catalina.loader.StandardClassLoader.modified(StandardClass
> > Loader.java:550)
> > at
> > org.apache.catalina.loader.StandardLoader.run(StandardLoader.java:129
> > 1)
> > at java.lang.Thread.run(Thread.java:496)
> >
> >
> > P.s. I'm pretty convinced at this point that class reloading is still
> broken
> > in T4. I will be working on a test case when I have more time and the
> > problem becomes unbearable. :-)
>
> There are a couple of puts in findClass that are not synced. Maybe that's
> the problem here ...
Ugh, who wrote that code :-(
The put() calls definitely need to be synchronized. Otherwise, a new
class that is defined exactly when the modified() method is run by the
background thread will cause this kind of exception.
> I didn't get that particular exception before, though.
>
I didn't either, but I just checked in a patch that should avoid it.
> Remy
>
>
Craig