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.

Bug 248639 - NoClassDefFoundError on shutdown
Summary: NoClassDefFoundError on shutdown
Status: RESOLVED FIXED
Alias: None
Product: connecteddeveloper
Classification: Unclassified
Component: Team Framework (show other bugs)
Version: 8.1
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: Tomas Stupka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-14 09:34 UTC by Tomas Pavek
Modified: 2015-08-20 17:42 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tomas Pavek 2014-11-14 09:34:03 UTC
I've received a report of the following exception from shutdown. Unless the reporter had the org-eclipse-mylyn-tasks-core.jar missing (deleted) which is rather unlikely, this looks like a module system bug possibly related to the shutdown.

Regardless the exception, this caught my attention because the NetBeans mylyn.util module initializes the whole MylynSupport here - its instance is created first time. It seems strange to force the initialization just on shutdown when it was not used at all during the IDE session. If this can be not done, it may help performance and also get rid of the exception (or possible other issues due to initializing new things on shutdown).

If you don't agree, please pass this at least to module system for evaluation. I'll try to find out if the reporter had not the installation broken.

java.lang.NoClassDefFoundError: org/eclipse/mylyn/internal/tasks/core/TaskRepositoryManager
  org.netbeans.modules.mylyn.util.MylynSupport.<init>(MylynSupport.java:159)
  org.netbeans.modules.mylyn.util.MylynSupport.getInstance(MylynSupport.java:150)
  org.netbeans.modules.mylyn.util.internal.Accessor.getInstance(Accessor.java:61)
  org.netbeans.modules.mylyn.util.internal.ModuleLifecycleManager.closing(ModuleLifecycleManager.java:57)
  org.netbeans.core.startup.NbInstaller.closing(NbInstaller.java:707)
  org.netbeans.ModuleManager.shutDownAsync(ModuleManager.java:2004)
  org.netbeans.core.startup.ModuleSystem.shutDownAsync(ModuleSystem.java:349)
  org.netbeans.core.NbLifeExit.doExit(NbLifeExit.java:137)
  org.netbeans.core.NbLifeExit.run(NbLifeExit.java:94)
  org.openide.util.Mutex.doEvent(Mutex.java:1356)
  org.openide.util.Mutex.readAccess(Mutex.java:355)
  org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:213)
  org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:119)
  org.netbeans.core.windows.view.ui.MainWindow$9.windowClosing(MainWindow.java:525)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:350)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
  java.awt.Window.processWindowEvent(Window.java:2051)
  javax.swing.JFrame.processWindowEvent(JFrame.java:296)
  java.awt.Window.processEvent(Window.java:2009)
  java.awt.Component.dispatchEventImpl(Component.java:4861)
  java.awt.Container.dispatchEventImpl(Container.java:2287)
  java.awt.Window.dispatchEventImpl(Window.java:2719)
  java.awt.Component.dispatchEvent(Component.java:4687)
  java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  java.awt.EventQueue.access$200(EventQueue.java:103)
  java.awt.EventQueue$3.run(EventQueue.java:694)
  java.awt.EventQueue$3.run(EventQueue.java:692)
  java.security.AccessController.doPrivileged(Native Method)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  java.awt.EventQueue$4.run(EventQueue.java:708)
  java.awt.EventQueue$4.run(EventQueue.java:706)
  java.security.AccessController.doPrivileged(Native Method)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
  oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
  java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
  java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
  java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
  java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
  java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
  java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by:
java.lang.ClassNotFoundException: org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager starting from ModuleCL@f5c97a4[org.netbeans.modules.mylyn.util] with possible defining loaders [Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-mylyn-tasks-core.jar]] and declared parents [ModuleCL@6e7fa4e0[org.netbeans.modules.team.commons], Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-core-jobs.jar], ModuleCL@73e5295a[org.openide.awt], org.netbeans.MainImpl$BootClassLoader@1435e0ef, Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-mylyn-commons-net.jar], ModuleCL@6bc5a139[org.netbeans.modules.bugtracking], Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-mylyn-wikitext-core.jar], Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-core-runtime.jar], ModuleCL@bf841f8[org.netbeans.modules.spellchecker.apimodule], Netigso[reference:file:jdeveloper/netbeans/ide/modules/org-eclipse-mylyn-tasks-core.jar], ...2 more]
  org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:224)
  java.lang.ClassLoader.loadClass(ClassLoader.java:358)
  org.netbeans.modules.mylyn.util.MylynSupport.<init>(MylynSupport.java:159)
  org.netbeans.modules.mylyn.util.MylynSupport.getInstance(MylynSupport.java:150)
  org.netbeans.modules.mylyn.util.internal.Accessor.getInstance(Accessor.java:61)
  org.netbeans.modules.mylyn.util.internal.ModuleLifecycleManager.closing(ModuleLifecycleManager.java:57)
  org.netbeans.core.startup.NbInstaller.closing(NbInstaller.java:707)
  org.netbeans.ModuleManager.shutDownAsync(ModuleManager.java:2004)
  org.netbeans.core.startup.ModuleSystem.shutDownAsync(ModuleSystem.java:349)
  org.netbeans.core.NbLifeExit.doExit(NbLifeExit.java:137)
  org.netbeans.core.NbLifeExit.run(NbLifeExit.java:94)
  org.openide.util.Mutex.doEvent(Mutex.java:1356)
  org.openide.util.Mutex.readAccess(Mutex.java:355)
  org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:213)
  org.netbeans.core.NbLifecycleManager.exit(NbLifecycleManager.java:119)
  org.netbeans.core.windows.view.ui.MainWindow$9.windowClosing(MainWindow.java:525)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:350)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
  java.awt.AWTEventMulticaster.windowClosing(AWTEventMulticaster.java:349)
  java.awt.Window.processWindowEvent(Window.java:2051)
  javax.swing.JFrame.processWindowEvent(JFrame.java:296)
  java.awt.Window.processEvent(Window.java:2009)
  java.awt.Component.dispatchEventImpl(Component.java:4861)
  java.awt.Container.dispatchEventImpl(Container.java:2287)
  java.awt.Window.dispatchEventImpl(Window.java:2719)
  java.awt.Component.dispatchEvent(Component.java:4687)
  java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
  java.awt.EventQueue.access$200(EventQueue.java:103)
  java.awt.EventQueue$3.run(EventQueue.java:694)
  java.awt.EventQueue$3.run(EventQueue.java:692)
  java.security.AccessController.doPrivileged(Native Method)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
  java.awt.EventQueue$4.run(EventQueue.java:708)
  java.awt.EventQueue$4.run(EventQueue.java:706)
  java.security.AccessController.doPrivileged(Native Method)
  java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
  java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
  oracle.javatools.internal.ui.EventQueueWrapper._dispatchEvent(EventQueueWrapper.java:169)
  oracle.javatools.internal.ui.EventQueueWrapper.dispatchEvent(EventQueueWrapper.java:151)
  java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
  java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
  java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
  java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
  java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
  java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Comment 1 Tomas Stupka 2014-11-14 10:51:22 UTC
indeed, no need to initiaize MylynSupport on shutdown - fixed in core-main #8a60cf5a72ce

reassigning to module system for further evaluation
Comment 2 Jaroslav Tulach 2014-11-14 16:42:43 UTC
I don't want the bug! Moreover it seems similar to bug 247735 - the OSGi bundles get closed on shutdown even the NetBeans code can still run. E.g. it's definitiely good not to initialize any OSGi on shutdown.
Comment 3 Tomas Stupka 2014-11-14 16:49:15 UTC
(In reply to Jaroslav Tulach from comment #2)
> I don't want the bug! Moreover it seems similar to bug 247735 - the OSGi
> bundles get closed on shutdown even the NetBeans code can still run. E.g.
> it's definitiely good not to initialize any OSGi on shutdown.
well then, perhaps fixed by not initializing osgi on shutdown at the reported place. 

core-main #8a60cf5a72ce
Comment 4 Quality Engineering 2014-11-15 05:41:54 UTC
Integrated into 'main-silver', will be available in build *201411150001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/8a60cf5a72ce
User: Tomas Stupka <tstupka@netbeans.org>
Log: issue #248639 - New: NoClassDefFoundError on shutdown

do not initialize MylynSupport in shutdown
Comment 5 Quality Engineering 2015-08-20 17:42:11 UTC
Integrated into 'releases/release801', will be available in build *201508201622* or newer. Wait for official and publicly available build.

Changeset: http://hg.netbeans.org/releases/rev/fc8431cbb699
User: Tomas Stupka <tstupka@netbeans.org>
Log: issue #248639 - New: NoClassDefFoundError on shutdown

do not initialize MylynSupport in shutdown