On 1/30/07, Geir Magnusson Jr. <[EMAIL PROTECTED]> wrote:
I have a comment, that I'll bring out to the dev list - Is there any problem with some other thread adding the entry for currentURL while the if (jf==null) block is doing it's work? That's one difference I can see between sync-ing the block, vs just syncing the map. I don't know if it matters, though.
This remark is quite relevant. Each thread which gets jf == null for some URL does the same job on openning connection, getting jar file and putting it to a map. Block synchronization ensures that this job is done once for each jar file. Moreover, I ran the classloader.StressLoader test on an unpatched build and see stable hang on a Windows 2CPUx4core machine. Threads are deadlocked while doing the same job somewhere in org/apache/harmony/luni/internal/net/www/protocol/jar/JarURLConnection.findJarFile(). The patch resolves the issue. Mikhail, could you please add some more comments to https://issues.apache.org/jira/browse/HARMONY-2982? Elena geir
On Jan 30, 2007, at 7:48 AM, Mikhail Markov wrote: > Elena, thanks for the patch! > I've reviewed it and posted the comment to this JIRA. > > Regards, > Mikhail > > > On 1/30/07, Elena Semukhina <[EMAIL PROTECTED]> wrote: >> >> The DRLVM smoke test classloader.StressLoader fails intermittently. >> Investigation revealed that java.net.URLClassLoader implementation >> does >> not >> take care of synchronizing on access to its IdentityHashMap field. I >> suggested a patch to fix the issue at >> https://issues.apache.org/jira/browse/HARMONY-2982. >> >> Could anyone please take a look and review the patch? >> >> -- >> Thanks, >> Elena >> >>
-- Thanks, Elena
