Workshop performance issue in Apache commons-discovery packages when using Beehive controls. (Doc ID 1307052.1)

Last updated on AUGUST 16, 2016

Applies to:

Oracle Workshop for Weblogic - Version 10.3 and later
Information in this document applies to any platform.

Symptoms

During performance test, it's observed that most active threads were spending a lot of time in the Sun classloader.
From stack trace, the threads were working on some Apache commons-discovery packages, from Beehive control instantiation.


"ExecuteThread: '12' for queue: 'default'" daemon prio=5 tid=0063a000 nid=26 lwp_id=1712503 waiting for monitor entry [389bf000..389c0db0]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.misc.URLClassPath.getLoader(URLClassPath.java:278)
- waiting to lock <4b1c58c8> (a sun.misc.URLClassPath)
at sun.misc.URLClassPath.findResource(URLClassPath.java:144)
at java.net.URLClassLoader$2.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findResource(URLClassLoader.java:359)
at java.lang.ClassLoader.getResource(ClassLoader.java:978)
at java.lang.ClassLoader.getResource(ClassLoader.java:973)
at java.lang.ClassLoader.getResource(ClassLoader.java:973)
at weblogic.utils.classloaders.GenericClassLoader.getResourceInternal(GenericClassLoader.java:167)
at weblogic.utils.classloaders.GenericClassLoader.getResource(GenericClassLoader.java:184)
at weblogic.utils.classloaders.FilteringClassLoader.getResource(FilteringClassLoader.java:95)
at java.lang.ClassLoader.getResource(ClassLoader.java:973)
at weblogic.utils.classloaders.GenericClassLoader.getResource(GenericClassLoader.java:187)
at org.apache.commons.discovery.jdk.JDK12Hooks.getResources(JDK12Hooks.java:149)
at org.apache.commons.discovery.resource.DiscoverResources$1.getNextResources(DiscoverResources.java:153)
at org.apache.commons.discovery.resource.DiscoverResources$1.getNextResource(DiscoverResources.java:129)
at org.apache.commons.discovery.resource.DiscoverResources$1.hasNext(DiscoverResources.java:116)
at org.apache.commons.discovery.resource.names.DiscoverNamesInFile$1.getNextClassNames(DiscoverNamesInFile.java:186)
at org.apache.commons.discovery.resource.names.DiscoverNamesInFile$1.getNextClassName(DiscoverNamesInFile.java:170)
at org.apache.commons.discovery.resource.names.DiscoverNamesInFile$1.hasNext(DiscoverNamesInFile.java:157)
at org.apache.commons.discovery.resource.classes.ResourceClassDiscoverImpl$1.getNextResource(ResourceClassDiscoverImpl.java:159)
at org.apache.commons.discovery.resource.classes.ResourceClassDiscoverImpl$1.hasNext(ResourceClassDiscoverImpl.java:147)
at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java:389)
at org.apache.commons.discovery.tools.DiscoverClass.find(DiscoverClass.java:279)
at org.apache.beehive.controls.api.bean.Controls.instantiate(Controls.java:99)

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms