Insubstantial / insubstantial

Swing look-and-feel library and assorted widgets
195 stars 57 forks source link

Trident CFNE when not using SWT #34

Closed flynnk closed 13 years ago

flynnk commented 13 years ago

Not using anything SWT related, and don't see anything in the dependencies, but get this error with 6.3. This error is not present in 6.2

If this isn't something easy to see, I can try and come up with a test app that triggers this.

main: [java] java.lang.ClassNotFoundException: org.pushingpixels.trident.swt.SWTToolkitHandler [java] at java.net.URLClassLoader$1.run(URLClassLoader.java:202) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at java.net.URLClassLoader.findClass(URLClassLoader.java:190) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:306) [java] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) [java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247) [java] at org.pushingpixels.trident.TridentConfig.(TridentConfig.java:104) [java] at org.pushingpixels.trident.TridentConfig.getInstance(TridentConfig.java:172) [java] at org.pushingpixels.trident.Timeline.(Timeline.java:268) [java] at org.pushingpixels.substance.internal.animation.StateTransitionTracker.(StateTransitionTracker.java:205) [java] at org.pushingpixels.substance.internal.utils.ButtonVisualStateTracker.installListeners(ButtonVisualStateTracker.java:72) [java] at org.pushingpixels.substance.internal.ui.SubstanceToggleButtonUI.orgpushingpixelssubstanceinternaluiSubstanceToggleButtonUIinstallListeners(SubstanceToggleButtonUI.java:213) [java] at org.pushingpixels.substance.internal.ui.SubstanceToggleButtonUI.installListeners(SubstanceToggleButtonUI.java) [java] at javax.swing.plaf.basic.BasicButtonUI.installUI(BasicButtonUI.java:72) [java] at org.pushingpixels.substance.internal.ui.SubstanceToggleButtonUI.orgpushingpixelssubstanceinternaluiSubstanceToggleButtonUIinstallUI(SubstanceToggleButtonUI.java) [java] at org.pushingpixels.substance.internal.ui.SubstanceToggleButtonUI.installUI(SubstanceToggleButtonUI.java) [java] at javax.swing.JComponent.setUI(JComponent.java:662) [java] at javax.swing.AbstractButton.setUI(AbstractButton.java:1782) [java] at javax.swing.JToggleButton.updateUI(JToggleButton.java:168) [java] at javax.swing.AbstractButton.init(AbstractButton.java:2149) [java] at javax.swing.JToggleButton.(JToggleButton.java:159) [java] at javax.swing.JToggleButton.(JToggleButton.java:85) [java] at org.pushingpixels.lafwidget.menu.MenuSearchWidget$SearchPanel.(MenuSearchWidget.java:110) [java] at org.pushingpixels.lafwidget.menu.MenuSearchWidget.installUI(MenuSearchWidget.java:630) [java] at org.pushingpixels.substance.internal.ui.SubstanceMenuBarUI.installUI(SubstanceMenuBarUI.java) [java] at javax.swing.JComponent.setUI(JComponent.java:662) [java] at javax.swing.JMenuBar.setUI(JMenuBar.java:118) [java] at javax.swing.JMenuBar.updateUI(JMenuBar.java:127) [java] at javax.swing.JMenuBar.(JMenuBar.java:95) [java] at org.pushingpixels.substance.internal.utils.SubstanceTitlePane$SubstanceMenuBar.(SubstanceTitlePane.java:1593) [java] at org.pushingpixels.substance.internal.utils.SubstanceTitlePane.createMenuBar(SubstanceTitlePane.java:796) [java] at org.pushingpixels.substance.internal.utils.SubstanceTitlePane.installSubcomponents(SubstanceTitlePane.java:731) [java] at org.pushingpixels.substance.internal.utils.SubstanceTitlePane.(SubstanceTitlePane.java:535) [java] at org.pushingpixels.substance.flamingo.ribbon.ui.SubstanceRibbonFrameTitlePane.(SubstanceRibbonFrameTitlePane.java:291) [java] at org.pushingpixels.substance.flamingo.ribbon.ui.SubstanceRibbonRootPaneUI.createTitlePane(SubstanceRibbonRootPaneUI.java:130) [java] at org.pushingpixels.substance.internal.ui.SubstanceRootPaneUI.installClientDecorations(SubstanceRootPaneUI.java:653) [java] at org.pushingpixels.substance.internal.ui.SubstanceRootPaneUI.propertyChange(SubstanceRootPaneUI.java:830) [java] at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339) [java] at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276) [java] at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:297) [java] at java.awt.Component.firePropertyChange(Component.java:8194) [java] at javax.swing.JComponent.firePropertyChange(JComponent.java:4456) [java] at javax.swing.JRootPane.setWindowDecorationStyle(JRootPane.java:427) [java] at javax.swing.JFrame.frameInit(JFrame.java:244) [java] at javax.swing.JFrame.(JFrame.java:203) [java] at org.pushingpixels.flamingo.api.ribbon.JRibbonFrame.(JRibbonFrame.java:309) [java] at com.darkcorner.harmonice.client.HarmoniceClient.(HarmoniceClient.java:257) [java] at com.darkcorner.harmonice.client.HarmoniceClient$1.run(HarmoniceClient.java:157) [java] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) [java] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:641) [java] at java.awt.EventQueue.access$000(EventQueue.java:84) [java] at java.awt.EventQueue$1.run(EventQueue.java:602) [java] at java.awt.EventQueue$1.run(EventQueue.java:600) [java] at java.security.AccessController.doPrivileged(Native Method) [java] at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) [java] at java.awt.EventQueue.dispatchEvent(EventQueue.java:611) [java] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) [java] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) [java] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) [java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) [java] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) [java] at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

disrvptor commented 13 years ago

This happens because the SWT Toolkit Handler is referenced in the META-INF/trident-plugin.properties file and the aforementioned SWT Handler references org.eclipse.swt.widgets.Widget, which is throwing a CNFE. You have three options

  1. remove the reference from the properties file
  2. Add a catch for CNFE in TridentConfig
  3. Add the SWT class referenced to your classpath

It probably makes sense for us to add a catch for the CNFE since we already catch NCDFE.

Also, this is a problem with halberd, not insubstantial.

shemnon commented 13 years ago

did #1 and #2 in the trident code