You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Elena Semukhina (JIRA)" <ji...@apache.org> on 2007/03/02 11:19:51 UTC
[jira] Updated: (HARMONY-2982) [classlib][net ]
java.net.URLClassLoader implementation is not thread safe.
[ https://issues.apache.org/jira/browse/HARMONY-2982?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Elena Semukhina updated HARMONY-2982:
-------------------------------------
Attachment: H-2982_4.patch
I ran the test and found out that the patch does not work properly on my linux machine: it throws NPE sometimes although the test passes on Windows for 1000 times.
The attached H-2982-4.patch resolves the issue. We should exit from the loop each time when we meet a URL which is in the invalidUrls list.
Sorry for my careless mistake.
> [classlib][net ] java.net.URLClassLoader implementation is not thread safe.
> ---------------------------------------------------------------------------
>
> Key: HARMONY-2982
> URL: https://issues.apache.org/jira/browse/HARMONY-2982
> Project: Harmony
> Issue Type: Bug
> Components: Classlib
> Reporter: Elena Semukhina
> Assigned To: Alexei Zakharov
> Attachments: H-2982.patch, H-2982_1.patch, H-2982_2.patch, H-2982_3.patch, H-2982_4.patch
>
>
> The DRLVM smoke test classloader.StressLoader fails intermittently on both Linux and Windows.
> To reproduce the failure you should run the test iteratively in the following way:
> while true; do $DRLVM -cp <path to smoke test classes> classloader.StressLoader; done
> I observe two sorts of intermittent failures:
> 1. java.lang.NullPointerException
> at java.net.URLClassLoader.explore(URLClassLoader.java:1200)
> at java.net.URLClassLoader.findResourceImpl(URLClassLoader.java:809)
> at java.net.URLClassLoader$5.run(URLClassLoader.java:667)
> at java.net.URLClassLoader$5.run(URLClassLoader.java)
> at java.security.AccessController.doPrivilegedImpl(Unknown Source)
> at java.security.AccessController.doPrivileged(Unknown Source)
> at java.net.URLClassLoader.findResource(URLClassLoader.java:665)
> at java.lang.ClassLoader$BootstrapLoader.findResource(Unknown Source)
> at java.lang.ClassLoader.getResource(Unknown Source)
> at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
> at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
> at classloader.LogLoader.loadClass(Unknown Source)
> at classloader.StressLoader.run(Unknown Source)
> 2. java.lang.ArrayIndexOutOfBoundsException
> at java.util.IdentityHashMap.rehash(IdentityHashMap.java:501)
> at java.util.IdentityHashMap.put(IdentityHashMap.java:463)
> at java.net.URLClassLoader.findResourceImpl(URLClassLoader.java:720)
> at java.net.URLClassLoader$5.run(URLClassLoader.java:667)
> at java.net.URLClassLoader$5.run(URLClassLoader.java)
> at java.security.AccessController.doPrivilegedImpl(Unknown Source)
> at java.security.AccessController.doPrivileged(Unknown Source)
> at java.net.URLClassLoader.findResource(URLClassLoader.java:665)
> at java.lang.ClassLoader$BootstrapLoader.findResource(Unknown Source)
> at java.lang.ClassLoader.getResource(Unknown Source)
> at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
> at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
> at classloader.LogLoader.loadClass(Unknown Source)
> at classloader.StressLoader.run(Unknown Source)
> java.lang.ArrayIndexOutOfBoundsException
> at java.util.IdentityHashMap.rehash(IdentityHashMap.java:501)
> at java.util.IdentityHashMap.put(IdentityHashMap.java:463)
> at java.net.URLClassLoader.findResourceImpl(URLClassLoader.java:720)
> at java.net.URLClassLoader$5.run(URLClassLoader.java:667)
> at java.net.URLClassLoader$5.run(URLClassLoader.java)
> at java.security.AccessController.doPrivilegedImpl(Unknown Source)
> at java.security.AccessController.doPrivileged(Unknown Source)
> at java.net.URLClassLoader.findResource(URLClassLoader.java:665)
> at java.lang.ClassLoader$BootstrapLoader.findResource(Unknown Source)
> at java.lang.ClassLoader.getResource(Unknown Source)
> at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
> at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
> at classloader.LogLoader.loadClass(Unknown Source)
> at classloader.StressLoader.run(Unknown Source)
> java.lang.ArrayIndexOutOfBoundsException
> at java.util.IdentityHashMap.rehash(IdentityHashMap.java:501)
> at java.util.IdentityHashMap.put(IdentityHashMap.java:463)
> at java.net.URLClassLoader.findResourceImpl(URLClassLoader.java:720)
> at java.net.URLClassLoader$5.run(URLClassLoader.java:667)
> at java.net.URLClassLoader$5.run(URLClassLoader.java)
> at java.security.AccessController.doPrivilegedImpl(Unknown Source)
> at java.security.AccessController.doPrivileged(Unknown Source)
> at java.net.URLClassLoader.findResource(URLClassLoader.java:665)
> at java.lang.ClassLoader$BootstrapLoader.findResource(Unknown Source)
> at java.lang.ClassLoader.getResource(Unknown Source)
> at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
> at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
> at classloader.LogLoader.loadClass(Unknown Source)
> at classloader.StressLoader.run(Unknown Source)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.