I think I ran into a problem with the class loader in 3.0.1 on a multiprocessor Windows2000. The UnifiedLoaderRepository2 is being used, and there is a thread that appears to be in an infinite loop accessing the 'classes' HashMap in that class.
Looking at the synchronization of that class, one of the public loadClass() methods is not synchronized and can end up calling methods that can make changes to the 'classes' HashMap. Since the HashMap class itself is not synchronized it seems that perhaps I hit a case of two threads modifying the HashMap at the same time and one ending up in an infinite loop as a result.
My first question is whether this has been seen before or is a known problem. It seems like there has been a fair amount of development on the unified class loading implementation since 3.0.1. I also saw a description of a deadlock in class loading which makes me think that there has definitely been some problems and some work with the synchronization model of those classes.
My second question is what release would be my best bet to run at this point? It looks like there have been reports of deadlocks in class loading in 3.0.4, etc.. What's my best bet?
get 3.0.4 or newer and see if you can reproduce the problem