Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 448998

Summary: dev-util/netbeans UI design view broken
Product: Gentoo Linux Reporter: Brendan Jurd <direvus>
Component: [OLD] JavaAssignee: Miroslav Šulc <fordfrog>
Status: RESOLVED FIXED    
Severity: normal CC: java, richard.kenney
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge --info output

Description Brendan Jurd 2012-12-28 08:52:09 UTC
Created attachment 333562 [details]
emerge --info output

When using Netbeans 7.1.2 or 7.2, the UI Design view shows the text "Loading ..." but never actually displays the form.  Source view still works fine.

This may be the same issue as reported to Ubuntu and Debian, at least, the reported symptoms match what I have been experiencing.

https://bugs.launchpad.net/ubuntu/+source/netbeans/+bug/944857
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653915

Perhaps something similar is manifested by an incorrect dependency in the Gentoo ebuilds?

I've tried

* reinstalling xerces,
* downgrading xerces to 1.3,
* updating netbeans from 7.1.2 to 7.2,
* manually installing jaxp,
* running netbeans with "-cp:a /usr/share/xerces-2/lib/xercesImpl.jar",
* removing my ~/.netbeans,

and none of those efforts have had any perceptible result.

I did notice that according to qlist, dev-java/xerces installs xercesImpl.jar, but doesn't install xml-apis.jar, even though it is listed at http://xerces.apache.org/xerces2-j/install.html as one of the files ordinarily installed by the package.  I don't know whether that has any bearing on this bug, but it did seem weird.

If I open the IDE log in Netbeans, I see the following exception:

SEVERE [global]
java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:262)
Caused: java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal starting from ModuleCL@2d4c8822[org.netbeans.libs.xerces] with possible defining loaders [ModuleCL@20c6b8b0[org.netbeans.modules.hibernatelib]] and declared parents []
	at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:264)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Caused: java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
	at org.netbeans.JarClassLoader.doLoadClass(JarClassLoader.java:274)
	at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:300)
Caused: java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal while loading org.apache.xerces.dom.ElementImpl; see http://wiki.netbeans.org/DevFaqTroubleshootClassNotFound
	at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:304)
	at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:227)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
	at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
	at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
	at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
	at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at org.netbeans.modules.form.GandalfPersistenceManager.canLoadForm(GandalfPersistenceManager.java:285)
	at org.netbeans.modules.form.FormEditor.recognizeForm(FormEditor.java:450)
	at org.netbeans.modules.form.FormEditor.prepareLoading(FormEditor.java:275)
	at org.netbeans.modules.nbform.FormEditorSupport.startFormLoading(FormEditorSupport.java:431)
	at org.netbeans.modules.nbform.FormDesignerTC.componentShowing(FormDesignerTC.java:218)
	at org.netbeans.core.multiview.MultiViewPeer.peerComponentShowing(MultiViewPeer.java:280)
	at org.netbeans.core.multiview.MultiViewCloneableTopComponent.componentShowing(MultiViewCloneableTopComponent.java:129)
[catch] at org.openide.windows.WindowManager.componentShowing(WindowManager.java:339)
	at org.netbeans.core.windows.WindowManagerImpl.componentShowing(WindowManagerImpl.java:1163)
	at org.netbeans.core.windows.view.DefaultView.changeGUI(DefaultView.java:168)
	at org.netbeans.core.windows.ViewRequestor.dispatchRequest(ViewRequestor.java:273)
	at org.netbeans.core.windows.ViewRequestor.processRequest(ViewRequestor.java:249)
	at org.netbeans.core.windows.ViewRequestor.postRequest(ViewRequestor.java:187)
	at org.netbeans.core.windows.ViewRequestor.scheduleRequest(ViewRequestor.java:127)
	at org.netbeans.core.windows.Central.addModeClosedTopComponent(Central.java:866)
	at org.netbeans.core.windows.Central.userClosedTopComponent(Central.java:2011)
	at org.netbeans.core.windows.view.DefaultView.userClosedTopComponent(DefaultView.java:775)
	at org.netbeans.core.windows.view.ui.TabbedHandler.actionPerformed(TabbedHandler.java:333)
	at org.netbeans.swing.tabcontrol.TabbedContainer.postActionEvent(TabbedContainer.java:709)
	at org.netbeans.swing.tabcontrol.TabbedContainerUI.shouldPerformAction(TabbedContainerUI.java:165)
	at org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI.access$2700(DefaultTabbedContainerUI.java:112)
	at org.netbeans.swing.tabcontrol.plaf.DefaultTabbedContainerUI$DisplayerActionListener.actionPerformed(DefaultTabbedContainerUI.java:1269)
	at org.netbeans.swing.tabcontrol.TabDisplayer.postActionEvent(TabDisplayer.java:603)
	at org.netbeans.swing.tabcontrol.TabDisplayerUI.shouldPerformAction(TabDisplayerUI.java:193)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI.access$1700(BasicTabDisplayerUI.java:121)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.performCommand(BasicTabDisplayerUI.java:774)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.potentialCommand(BasicTabDisplayerUI.java:759)
	at org.netbeans.swing.tabcontrol.plaf.BasicTabDisplayerUI$BasicDisplayerMouseListener.mouseReleased(BasicTabDisplayerUI.java:808)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
	at java.awt.Component.processMouseEvent(Component.java:6389)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3268)
	at java.awt.Component.processEvent(Component.java:6154)
	at java.awt.Container.processEvent(Container.java:2045)
	at java.awt.Component.dispatchEventImpl(Component.java:4750)
	at java.awt.Container.dispatchEventImpl(Container.java:2103)
	at java.awt.Component.dispatchEvent(Component.java:4576)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
	at java.awt.Container.dispatchEventImpl(Container.java:2089)
	at java.awt.Window.dispatchEventImpl(Window.java:2518)
	at java.awt.Component.dispatchEvent(Component.java:4576)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
	at java.awt.EventQueue.access$400(EventQueue.java:96)
	at java.awt.EventQueue$2.run(EventQueue.java:631)
	at java.awt.EventQueue$2.run(EventQueue.java:629)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
	at java.awt.EventQueue$3.run(EventQueue.java:645)
	at java.awt.EventQueue$3.run(EventQueue.java:643)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:158)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

Thanks for your time, please let me know if I can assist by providing more detail.
Comment 1 Miroslav Šulc gentoo-dev 2012-12-28 15:23:49 UTC
do you have the issue with upstream netbeans too? i just downloaded http://download.netbeans.org/netbeans/7.2.1/final/zip/netbeans-7.2.1-201210100934-ml.zip and ran following command on the jar files but it did not find the class:
for file in `find -name "*.jar"`; do echo $file; unzip -l $file | grep ElementTraversal; done

following command shows nothing too:
unzip -l /usr/share/xerces-2/lib/xercesImpl.jar | grep ElementTraversal

so it seems to me that class should not be needed by netbeans at all. or it's hidden somewhere.
Comment 2 Brendan Jurd 2012-12-28 15:46:08 UTC
(In reply to comment #1)
> do you have the issue with upstream netbeans too? i just downloaded
> http://download.netbeans.org/netbeans/7.2.1/final/zip/netbeans-7.2.1-
> 201210100934-ml.zip and ran following command on the jar files but it did
> not find the class:
> for file in `find -name "*.jar"`; do echo $file; unzip -l $file | grep
> ElementTraversal; done

No issue with 7.2.1 downloaded directly from netbeans.org.  The design view loaded up normally.  No exceptions in the IDE log.  Guess I'll just go ahead and use the upstream for now, though it's not ideal.

The installer I downloaded was http://dlc.sun.com.edgesuite.net/netbeans/7.2.1/final/bundles/netbeans-7.2.1-ml-javase-linux.sh
Comment 3 Miroslav Šulc gentoo-dev 2012-12-28 15:58:53 UTC
could you please try to replace our xerces jar in netbeans-ide with the one from netbeans? just drop the /usr/share/netbeans-ide-7.2/modules/ext/xerces-2.8.0.jar link and copy netbeans xerces jar from the installer to /usr/share/netbeans-ide-7.2/modules/ext/xerces-2.8.0.jar. if that would solve your issue, i will use bundled xerces in the ebuilds instead of gentoo one as in such case they would be incompatible. you can also try netbeans-7.3 from my overlay if you want: http://git.overlays.gentoo.org/gitweb/?p=dev/fordfrog.git;a=summary
Comment 4 Brendan Jurd 2012-12-28 17:07:03 UTC
(In reply to comment #3)
> could you please try to replace our xerces jar in netbeans-ide with the one
> from netbeans? just drop the
> /usr/share/netbeans-ide-7.2/modules/ext/xerces-2.8.0.jar link and copy
> netbeans xerces jar from the installer to
> /usr/share/netbeans-ide-7.2/modules/ext/xerces-2.8.0.jar. if that would
> solve your issue, i will use bundled xerces in the ebuilds instead of gentoo
> one as in such case they would be incompatible.

Thank you Miroslav, using xerces 2.8 from the netbeans.org package did indeed solve my issue with the gentoo netbeans 7.2.

So it seems that netbeans has run afoul of some API breakage between xerces 2.8 and 2.11 ...
Comment 5 Richard Kenney 2013-02-16 01:11:37 UTC
I had the same issue, the most satisfactory solution at the moment seems to be to follow the steps in this thread:

http://forums.gentoo.org/viewtopic-p-7247450.html
Comment 6 Ralph Sennhauser (RETIRED) gentoo-dev 2013-06-02 07:01:05 UTC
Earlier versions of xerces did bundle xml-apis.jar

"netbeans-7.3 -cp:a /usr/share/xml-commons-external-1.4/lib/xml-apis.jar" does work for me.
Comment 7 Patrice Clement gentoo-dev 2016-10-09 10:41:38 UTC
No further update since 2013. I don't believe this is still an issue with netbeans 8.2. Feel free to reopen if it is. Thanks.