This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
In NetbinoxLoader.loadClass() the invariant that the CL is not locked is enforced with an assert: @Override protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { assert !Thread.holdsLock(this) : "Classloading while holding classloader lock!"; return super.loadClass(name, resolve); } In JDev, running with Netbinox loader, when assertions are enabled, this runs into a bug when interacting with the latest version of cglib. When assertions are disabled, the code works fine, so it seems that the lock being held is kind of a benign condition that does not warrant such a harsh treatment as using the assertion framework. Just removing the assert or logging a message might be sufficient with whatever defensive mechanism is being enforced here.
The stack trace: Performing action (134) Check for Updates... [ from MessagePage ] org.netbeans.core.netigso.Netigso:Feb 24, 2017 4:59:02 PM org.netbeans.core.netigso.Netigso$1 run INFO: bundle oracle.external.cglib@12.2.1 started Feb 24, 2017 4:59:02 PM oracle.ideimpl.feedback2.client.FeedbackManagerImpl uncaughtException SEVERE: Uncaught Exception java.lang.ExceptionInInitializerError at oracle.jdevimpl.credential.singleton.CredentialHelper.createExtendedTrustManagerProxy(CredentialHelper.java:1117) at oracle.jdevimpl.credential.singleton.CredentialHelper.getClientSSLContextForCredentialImpl(CredentialHelper.java:748) at oracle.jdevimpl.credential.singleton.CredentialHelper.getClientSSLContext(CredentialHelper.java:560) at oracle.jdevimpl.credential.LazySSLContextSpi.get(LazySSLContextSpi.java:42) at oracle.jdevimpl.credential.LazySSLContextSpi.engineGetSocketFactory(LazySSLContextSpi.java:71) at javax.net.ssl.SSLContext.getSocketFactory(SSLContext.java:294) at javax.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122) at javax.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332) at javax.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289) at sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85) at sun.net.www.protocol.https.Handler.openConnection(Handler.java:62) at sun.net.www.protocol.https.Handler.openConnection(Handler.java:57) at java.net.URL.openConnection(URL.java:979) at oracle.ideimpl.webupdate.util.UpdateUtil.openConnectionCheckRedirects(UpdateUtil.java:120) at oracle.ideimpl.webupdate.CheckUpdatesRunnable.getAllAvailableUpdates(CheckUpdatesRunnable.java:475) at oracle.ideimpl.webupdate.CheckUpdatesRunnable.run(CheckUpdatesRunnable.java:133) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: Unable to load cache item at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79) at net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116) at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291) at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174) at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153) at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73) ... 17 more Caused by: java.lang.AssertionError: Classloading while holding classloader lock! at org.netbeans.modules.netbinox.NetbinoxLoader.loadClass(NetbinoxLoader.java:79) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at net.sf.cglib.core.DefaultNamingPolicy.getClassName(DefaultNamingPolicy.java:48) at net.sf.cglib.core.AbstractClassGenerator.generateClassName(AbstractClassGenerator.java:154) at net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:317) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93) at net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91) at net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) ... 24 more java.lang.ExceptionInInitializerError o.ji.credential.singleton.CredentialHelper.createExtendedTrustManagerProxy(CredentialHelper.java:1117) o.ji.credential.singleton.CredentialHelper.getClientSSLContextForCredentialImpl(CredentialHelper.java:748) o.ji.credential.singleton.CredentialHelper.getClientSSLContext(CredentialHelper.java:560) o.ji.credential.LazySSLContextSpi.get(LazySSLContextSpi.java:42) o.ji.credential.LazySSLContextSpi.engineGetSocketFactory(LazySSLContextSpi.java:71) jx.net.ssl.SSLContext.getSocketFactory(SSLContext.java:294) jx.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122) jx.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332) jx.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289) sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85) sun.net.www.protocol.https.Handler.openConnection(Handler.java:62) sun.net.www.protocol.https.Handler.openConnection(Handler.java:57) j.net.URL.openConnection(URL.java:979) o.ii.webupdate.util.UpdateUtil.openConnectionCheckRedirects(UpdateUtil.java:120) o.ii.webupdate.CheckUpdatesRunnable.getAllAvailableUpdates(CheckUpdatesRunnable.java:475) o.ii.webupdate.CheckUpdatesRunnable.run(CheckUpdatesRunnable.java:133) j.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: Unable to load cache item net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:79) net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116) net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291) net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221) net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174) net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153) net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73) o.ji.credential.singleton.CredentialHelper.createExtendedTrustManagerProxy(CredentialHelper.java:1117) o.ji.credential.singleton.CredentialHelper.getClientSSLContextForCredentialImpl(CredentialHelper.java:748) o.ji.credential.singleton.CredentialHelper.getClientSSLContext(CredentialHelper.java:560) o.ji.credential.LazySSLContextSpi.get(LazySSLContextSpi.java:42) o.ji.credential.LazySSLContextSpi.engineGetSocketFactory(LazySSLContextSpi.java:71) jx.net.ssl.SSLContext.getSocketFactory(SSLContext.java:294) jx.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122) jx.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332) jx.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289) sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85) sun.net.www.protocol.https.Handler.openConnection(Handler.java:62) sun.net.www.protocol.https.Handler.openConnection(Handler.java:57) j.net.URL.openConnection(URL.java:979) o.ii.webupdate.util.UpdateUtil.openConnectionCheckRedirects(UpdateUtil.java:120) o.ii.webupdate.CheckUpdatesRunnable.getAllAvailableUpdates(CheckUpdatesRunnable.java:475) o.ii.webupdate.CheckUpdatesRunnable.run(CheckUpdatesRunnable.java:133) j.lang.Thread.run(Thread.java:745) Caused by: java.lang.AssertionError: Classloading while holding classloader lock! org.netbeans.modules.netbinox.NetbinoxLoader.loadClass(NetbinoxLoader.java:79) j.lang.ClassLoader.loadClass(ClassLoader.java:357) net.sf.cglib.core.DefaultNamingPolicy.getClassName(DefaultNamingPolicy.java:48) net.sf.cglib.core.AbstractClassGenerator.generateClassName(AbstractClassGenerator.java:154) net.sf.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:317) net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:93) net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:91) net.sf.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54) j.util.concurrent.FutureTask.run(FutureTask.java:266) net.sf.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61) net.sf.cglib.core.internal.LoadingCache.get(LoadingCache.java:34) net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:116) net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:291) net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:221) net.sf.cglib.core.KeyFactory.create(KeyFactory.java:174) net.sf.cglib.core.KeyFactory.create(KeyFactory.java:153) net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:73) o.ji.credential.singleton.CredentialHelper.createExtendedTrustManagerProxy(CredentialHelper.java:1117) o.ji.credential.singleton.CredentialHelper.getClientSSLContextForCredentialImpl(CredentialHelper.java:748) o.ji.credential.singleton.CredentialHelper.getClientSSLContext(CredentialHelper.java:560) o.ji.credential.LazySSLContextSpi.get(LazySSLContextSpi.java:42) o.ji.credential.LazySSLContextSpi.engineGetSocketFactory(LazySSLContextSpi.java:71) jx.net.ssl.SSLContext.getSocketFactory(SSLContext.java:294) jx.net.ssl.SSLSocketFactory.getDefault(SSLSocketFactory.java:122) jx.net.ssl.HttpsURLConnection.getDefaultSSLSocketFactory(HttpsURLConnection.java:332) jx.net.ssl.HttpsURLConnection.<init>(HttpsURLConnection.java:289) sun.net.www.protocol.https.HttpsURLConnectionImpl.<init>(HttpsURLConnectionImpl.java:85) sun.net.www.protocol.https.Handler.openConnection(Handler.java:62) sun.net.www.protocol.https.Handler.openConnection(Handler.java:57) j.net.URL.openConnection(URL.java:979) o.ii.webupdate.util.UpdateUtil.openConnectionCheckRedirects(UpdateUtil.java:120) o.ii.webupdate.CheckUpdatesRunnable.getAllAvailableUpdates(CheckUpdatesRunnable.java:475) o.ii.webupdate.CheckUpdatesRunnable.run(CheckUpdatesRunnable.java:133) j.lang.Thread.run(Thread.java:745) ====================================
Related to bug 226084.