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 254482 - java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr
Summary: java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRunt...
Status: NEW
Alias: None
Product: profiler
Classification: Unclassified
Component: Engine (show other bugs)
Version: 8.1
Hardware: PC Windows 7
: P3 normal (vote)
Assignee: Tomas Hurka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-18 12:32 UTC by Tomas Pavek
Modified: 2015-09-08 15:40 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
messages.log from the profiled instance (71.82 KB, application/octet-stream)
2015-08-18 12:32 UTC, Tomas Pavek
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tomas Pavek 2015-08-18 12:32:07 UTC
Created attachment 155425 [details]
messages.log from the profiled instance

I tried to profile NetBeans ODCS support from NetBeans and got the following exceptions from the profiled IDE:
java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr
	at org.codehaus.jackson.map.introspect.AnnotatedMethodMap.iterator(AnnotatedMethodMap.java:83)
	at org.codehaus.jackson.map.introspect.POJOPropertiesCollector._addMethods(POJOPropertiesCollector.java:401)
	at org.codehaus.jackson.map.introspect.POJOPropertiesCollector.collect(POJOPropertiesCollector.java:202)
	at org.codehaus.jackson.map.introspect.BasicClassIntrospector.collectProperties(BasicClassIntrospector.java:160)
	at org.codehaus.jackson.map.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:108)
	at org.codehaus.jackson.map.introspect.BasicClassIntrospector.forDeserialization(BasicClassIntrospector.java:16)
	at org.codehaus.jackson.map.DeserializationConfig.introspect(DeserializationConfig.java:868)
	at org.codehaus.jackson.map.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:534)
	at org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:432)
	at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:341)
	at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321)
	at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167)
	at org.codehaus.jackson.map.deser.StdDeserializerProvider.findTypedValueDeserializer(StdDeserializerProvider.java:188)
	at org.codehaus.jackson.map.ObjectMapper._findRootDeserializer(ObjectMapper.java:2820)
	at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2719)
	at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1877)
	at com.tasktop.c2c.server.common.service.web.ApacheHttpRestClientDelegate.postForObject(ApacheHttpRestClientDelegate.java:244)
	at com.tasktop.c2c.server.profile.service.ProfileWebServiceClient$PostCall.doCall(ProfileWebServiceClient.java:313)
	at com.tasktop.c2c.server.profile.service.ProfileWebServiceClient.findProjects(ProfileWebServiceClient.java:531)
	at org.netbeans.modules.odcs.client.ODCSClientImpl.getMyProjects(ODCSClientImpl.java:87)
	at org.netbeans.modules.odcs.api.ODCSServer.getMyProjects(ODCSServer.java:295)
	at org.netbeans.modules.odcs.ui.Utilities.getMyProjects(Utilities.java:157)
	at org.netbeans.modules.odcs.ui.dashboard.ProjectAccessorImpl.getMemberProjects(ProjectAccessorImpl.java:91)
	at org.netbeans.modules.team.server.ui.common.OneProjectDashboard$MemberProjectsLoader$1.run(OneProjectDashboard.java:1119)
[catch] at java.lang.Thread.run(Thread.java:745)

and

java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr
	at oracle.eclipse.tools.cloud.dev.tasks.CloudDevAttribute.<clinit>(CloudDevAttribute.java:5)
	at org.netbeans.modules.odcs.tasks.issue.IssueField.<clinit>(Unknown Source)
	at org.netbeans.modules.odcs.tasks.issue.ODCSIssue.getColumnDescriptors(ODCSIssue.java:779)
	at org.netbeans.modules.odcs.tasks.query.ODCSQuery.getColumnDescriptors(ODCSQuery.java:183)
	at org.netbeans.modules.odcs.tasks.query.ODCSQueryController.<init>(Unknown Source)
	at org.netbeans.modules.odcs.tasks.query.ODCSQuery.getController(ODCSQuery.java:246)
	at org.netbeans.modules.odcs.tasks.ODCSQueryProvider.setIssueContainer(ODCSQueryProvider.java:96)
	at org.netbeans.modules.odcs.tasks.ODCSQueryProvider.setIssueContainer(ODCSQueryProvider.java:54)
	at org.netbeans.modules.bugtracking.QueryImpl.<init>(QueryImpl.java:85)
	at org.netbeans.modules.bugtracking.RepositoryImpl$2.createWrapper(RepositoryImpl.java:106)
	at org.netbeans.modules.bugtracking.RepositoryImpl$2.createWrapper(RepositoryImpl.java:103)
	at org.netbeans.modules.bugtracking.RepositoryImpl$WrapperMap.getWrapper(RepositoryImpl.java:493)
	at org.netbeans.modules.bugtracking.RepositoryImpl.getQuery(RepositoryImpl.java:419)
	at org.netbeans.modules.bugtracking.RepositoryImpl.getQueries(RepositoryImpl.java:292)
	at org.netbeans.modules.bugtracking.api.Repository.getQueries(Repository.java:153)
	at org.netbeans.modules.odcs.tasks.bridge.QueryAccessorImpl.getAllIssuesQuery(QueryAccessorImpl.java:89)
	at org.netbeans.modules.odcs.ui.dashboard.OdcsProjectNode$6.run(OdcsProjectNode.java:360)
	at org.openide.util.RequestProcessor$Task.run(Unknown Source)


In the profiler I've invoked 'Attach to Project (ODCS API)' (i.e. with the odcs NetBeans project opened) and selected two classes to profile:
org.netbeans.modules.odcs.tasks.query.ODCSQuery
java.net.SocketInputStream

After the profiler started I went to the profiled NetBeans and logged in to a DCS server (I can provide details on request) and got the exceptions - which broke the profiled IDE so that it became unusable. It is always reproducible.
Comment 1 Tomas Pavek 2015-08-18 14:13:03 UTC
Another case, tried to profile org.netbeans.modules.bugtracking.RepositoryRegistry and org.netbeans.modules.bugtracking.ui.selectors.RepositorySelector. Got this exception:

java.lang.NoClassDefFoundError: org/netbeans/lib/profiler/server/ProfilerRuntimeCPUFullInstr
	at org.eclipse.mylyn.tasks.core.TaskRepository.getRepositoryUrl(TaskRepository.java:677)
	at org.netbeans.modules.localtasks.LocalRepository.getUrl(Unknown Source)
	at org.netbeans.modules.localtasks.RepositoryProviderImpl.getInfo(RepositoryProviderImpl.java:62)
	at org.netbeans.modules.localtasks.RepositoryProviderImpl.getInfo(Unknown Source)
	at org.netbeans.modules.bugtracking.RepositoryImpl.getDisplayName(RepositoryImpl.java:199)
	at org.netbeans.modules.bugtracking.tasks.DashboardUtils.getRepositoryDisplayText(DashboardUtils.java:125)
	at org.netbeans.modules.bugtracking.tasks.dashboard.RepositoryNode.configure(RepositoryNode.java:120)
	at org.netbeans.modules.team.commons.treelist.AsynchronousNode.getComponent(AsynchronousNode.java:114)
	at org.netbeans.modules.team.commons.treelist.RendererPanel.configure(RendererPanel.java:146)
	at org.netbeans.modules.team.commons.treelist.TreeListNode.getRenderer(TreeListNode.java:185)
	at org.netbeans.modules.team.commons.treelist.TreeList$TreeListRenderer.getListCellRendererComponent(TreeList.java:297)
	at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1361)
	at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1311)
	at javax.swing.plaf.basic.BasicListUI.getCellBounds(BasicListUI.java:952)
	at javax.swing.plaf.basic.BasicListUI$Handler.repaintCellFocus(BasicListUI.java:2807)
	at javax.swing.plaf.basic.BasicListUI$Handler.focusLost(BasicListUI.java:2823)
	at java.awt.Component.processFocusEvent(Component.java:6417)
	at java.awt.Component.processEvent(Component.java:6281)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1954)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:995)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:661)
	at java.awt.Component.dispatchEventImpl(Component.java:4752)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.SentEvent.dispatch(SentEvent.java:70)
	at java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent.dispatch(DefaultKeyboardFocusManager.java:217)
	at java.awt.DefaultKeyboardFocusManager.sendMessage(DefaultKeyboardFocusManager.java:244)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:731)
	at java.awt.Component.dispatchEventImpl(Component.java:4752)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.SequencedEvent.dispatch(SequencedEvent.java:128)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
[catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
	at java.awt.Dialog.show(Dialog.java:1084)
	at org.netbeans.core.windows.services.NbPresenter.superShow(NbPresenter.java:1065)
	at org.netbeans.core.windows.services.NbPresenter.doShow(NbPresenter.java:1115)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:1087)
	at org.netbeans.core.windows.services.NbPresenter.run(NbPresenter.java:128)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.doEventAccess(NbMutexEventProvider.java:138)
	at org.netbeans.modules.openide.util.NbMutexEventProvider$Event.readAccess(NbMutexEventProvider.java:98)
	at org.netbeans.modules.openide.util.LazyMutexImplementation.readAccess(LazyMutexImplementation.java:94)
	at org.openide.util.Mutex.readAccess(Mutex.java:218)
	at org.netbeans.core.windows.services.NbPresenter.show(NbPresenter.java:1072)
	at java.awt.Component.show(Component.java:1654)
	at java.awt.Component.setVisible(Component.java:1606)
	at java.awt.Window.setVisible(Window.java:1014)
	at java.awt.Dialog.setVisible(Dialog.java:1005)
	at org.netbeans.core.windows.services.DialogDisplayerImpl$1AWTQuery.showDialog(DialogDisplayerImpl.java:272)
	at org.netbeans.core.windows.services.DialogDisplayerImpl.notify(Unknown Source)
	at org.netbeans.core.windows.services.DialogDisplayerImpl.notify(Unknown Source)
	at org.netbeans.modules.bugtracking.ui.selectors.SelectorPanel.create(Unknown Source)
	at org.netbeans.modules.bugtracking.ui.selectors.RepositorySelector.create(RepositorySelector.java:82)
	at org.netbeans.modules.bugtracking.util.BugtrackingUtil.createRepository(Unknown Source)
	at org.netbeans.modules.bugtracking.tasks.actions.Actions$CreateRepositoryAction.actionPerformed(Actions.java:810)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mousePressed(BasicButtonListener.java:235)
	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
	at java.awt.Component.processMouseEvent(Component.java:6522)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6290)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at org.netbeans.modules.team.commons.treelist.AbstractListUI.redispatchComponent(AbstractListUI.java:175)
	at org.netbeans.modules.team.commons.treelist.AbstractListUI.access$000(AbstractListUI.java:61)
	at org.netbeans.modules.team.commons.treelist.AbstractListUI$1.mousePressed(AbstractListUI.java:78)
	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
	at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
	at java.awt.Component.processMouseEvent(Component.java:6522)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6290)
	at java.awt.Container.processEvent(Container.java:2234)
	at java.awt.Component.dispatchEventImpl(Component.java:4881)
	at java.awt.Container.dispatchEventImpl(Container.java:2292)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4530)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
	at java.awt.Container.dispatchEventImpl(Container.java:2278)
	at java.awt.Window.dispatchEventImpl(Window.java:2750)
	at java.awt.Component.dispatchEvent(Component.java:4703)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Comment 2 Tomas Pavek 2015-08-20 09:35:06 UTC
BTW profiling the same in JDeveloper works (i.e. when profiling JDev from NetBeans).
Comment 3 Tomas Pavek 2015-08-20 10:14:53 UTC
I guess it's because JDev uses -Dorg.osgi.framework.bootdelegation=*

If I add -J-Dorg.osgi.framework.bootdelegation=org.netbeans.lib.profiler.* to netbeans.conf, it works in NetBeans as well.
Comment 4 Lou Dasaro 2015-08-27 04:47:27 UTC
Reporter, can this be Resolved->WORKSFORME, or is there still some action required?
Comment 5 Tomas Pavek 2015-09-08 15:40:08 UTC
> Reporter, can this be Resolved->WORKSFORME, or is there still some action
> required?

It's up to the NetBeans/Profiler team to decide if they want to add something like -J-Dorg.osgi.framework.bootdelegation=org.netbeans.lib.profiler.* into netbeans.conf by default to support profiling of NetBeans itself. It might seem it is relevant only for a small set of people (NetBeans developers), OTOH the switch is harmless while not really obvious for someone to figure it out.