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

Reply via email to