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 17559 - ClassCastException using -J-Dcom.apple.macos.useScreenMenuBar=true
Summary: ClassCastException using -J-Dcom.apple.macos.useScreenMenuBar=true
Status: CLOSED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Window System (show other bugs)
Version: 3.x
Hardware: Macintosh Mac OS X
: P3 blocker (vote)
Assignee: _ tboudreau
URL:
Keywords: JDK_SPECIFIC
: 32806 (view as bug list)
Depends on:
Blocks:
 
Reported: 2001-11-12 15:33 UTC by jsider
Modified: 2008-12-23 14:32 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
ide.log (37.23 KB, text/plain)
2001-11-12 15:34 UTC, jsider
Details
Quick patch against CVS trunk to fix CCE. (835 bytes, patch)
2003-05-19 10:20 UTC, Tomas Hurka
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description jsider 2001-11-12 15:33:03 UTC
Using OS X 10.1, I specified a new user directory, activated Aqua L&F, and set
menus to display in the menu bar. I get a reproducible CNFE. The menu bar item
is the key, remove it and all is fine. I'm running IDE as follows:

./runide.sh -J-Dcom.apple.macos.useScreenMenuBar=true -jdkhome
/System/Library/Frameworks/JavaVM.framework/Home -ui
com.apple.mrj.swing.MacLookAndFeel -fontsize 10 -userdir ${HOME}/nbuser3.2.1-aqua $*
Comment 1 jsider 2001-11-12 15:34:38 UTC
Created attachment 3363 [details]
ide.log
Comment 2 _ ttran 2001-11-12 16:54:19 UTC
Tomas, please look at this issue.  Thanks
Comment 3 Tomas Hurka 2001-11-12 18:11:18 UTC
I am sorry, but Swing menu in the Mac OS menu bar is not supported by Netbeans at this time. Changing issue type from defect to enhancement. 
Comment 4 Jan Chalupa 2001-11-27 11:52:46 UTC
Target milestone -> 3.3.1.
Comment 5 Jan Chalupa 2001-11-27 11:56:25 UTC
Target milestone -> 3.3.1.
Comment 6 Jan Chalupa 2002-01-11 14:03:09 UTC
Target milestone -> 3.4
Comment 7 Jan Chalupa 2002-01-11 14:07:08 UTC
Target milestone -> 3.4
Comment 8 Jan Chalupa 2002-01-11 14:08:20 UTC
Target milestone -> 3.4
Comment 9 Jan Chalupa 2002-01-11 14:11:14 UTC
Target milestone -> 3.4
Comment 10 Marek Grummich 2002-07-22 08:32:51 UTC
Target milestone was changed from '3.4' to TBD.
Comment 11 Marek Grummich 2002-07-22 08:43:07 UTC
Target milestone was changed from '3.4' to TBD.
Comment 12 z1314 2003-04-24 05:21:59 UTC
Problem still occurs with Mac OS 10.2.5 (Jaguar), and Java 1.4.1. 
This was originally a problem with Java 1.3.1.  I don't believe this
is still an issue from the Apple side.  I suggest moving this bug back
to Defect.

Also, the error is "java.lang.ClassCastException" not ClassNotFound.

Here is a specific on the problem:

-------------------------------------------------------------------------------
>Log Session: Tuesday, April 22, 2003 9:23:38 PM PDT
>System Info: 
  Product Version       = NetBeans IDE 3.5 Beta (Build 200304142350)
  IDE Versioning        = IDE/1 spec=3.42.1 impl=200304142350
  Operating System      = Mac OS X version 10.2.5 running on ppc
  Java; VM; Vendor      = 1.4.1_01; Java HotSpot(TM) Client VM
1.4.1_01-14; Apple Computer, Inc.
  Java Home             =
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home
  System Locale; Encod. = en_US; MacRoman
  Home Dir; Current Dir = /Users/eric; /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans
  IDE Install; User Dir = /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans;
/Users/eric/.netbeans/3.5beta
  CLASSPATH             = /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/ext/boot.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/ext/crimson-1.1.3.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/ext/regexp-1.2.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/ext/xerces-2.0.2.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/ext/xml-apis-1.0b2.jar:/Library/Java/Home/lib/dt.jar:/Library/Java/Home/lib/jaws.jar:/Library/Java/Home/lib/jce.jar:/Library/Java/Home/lib/netscape.jar
  Boot & ext classpath  =
/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/classes.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/ui.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/laf.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/sunrsasign.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/jsse.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/jce.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Classes/charsets.jar:/System/Library/Java/Extensions/CoreAudio.jar:/System/Library/Java/Extensions/MRJToolkit.jar:/System/Library/Java/Extensions/QTJava.zip:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/lib/ext/apple_provider.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/lib/ext/ldapsec.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/lib/ext/localedata.jar:/System/Library/Frameworks/JavaVM.framework/Versions/1.4.1/Home/lib/ext/sunjce_provider.jar
  Dynamic classpath     = /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/patches/bug_32655.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/core-windows.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/core.jar:/Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/lib/openide.jar
-------------------------------------------------------------------------------
Module patch or custom extension: /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/modules/patches/org-netbeans-modules-editor/os_x_keyboard.jar
Module patch or custom extension: /Apps/NetBeans
3.5B/NetBeansLauncher.app/Contents/Resources/netbeans/modules/patches/org-netbeans-modules-java/bug_32655.jar
[org.netbeans.core.modules #4] Warning: the module
org.netbeans.modules.projects uses org.openide.deprecated which is
deprecated: Clients of obsoleted Open APIs are encouraged to remove
this dependency. See
http://www.netbeans.org/download/dev/javadoc/OpenAPIs/org/openide/doc-files/upgrade.html#3.5i-sep
Turning on modules:
	org.openide/1 [3.42.1 200304142350]
	org.openide.src [1.0.1 200304142350]
	org.openide.io [1.0.1 200304142350]
	org.openide.execution [1.0.1 200304142350]
	org.openide.compiler [1.0.1 200304142350]
	org.netbeans.core/1 [1.12.1 200304142350]
	org.netbeans.lib.terminalemulator [1.0.1 200304142350]
	org.netbeans.core.output/1 [1.0.1 200304142350]
	org.netbeans.core.compiler/1 [1.3.1 200304142350]
	org.openide.debugger [1.0.1 200304142350]
	org.netbeans.core.execution/1 [1.2.1 200304142350]
	org.netbeans.modules.debugger.core/3 [2.8.1 200304142350]
	org.netbeans.modules.debugger.jpda/1 [1.14.1 200304142350]
	org.netbeans.modules.servletapi/1 [1.2.1 200304142350]
	org.netbeans.modules.image/1 [1.10.1 200304142350]
	org.netbeans.modules.classfile/1 [1.7.1 200304142350]
	org.netbeans.modules.clazz/1 [1.12.1 200304142350]
	org.netbeans.libs.xalan/1 [1.1.1 2.3.1]
	org.netbeans.libs.jaxp/1 [1.1.1 1.1.2]
	org.netbeans.api.xml/1 [1.1.1 200304142350]
	org.netbeans.modules.xml.core/2 [0.8.1 XMLr35]
	org.netbeans.modules.xml.schema/1 [0.8.1 200304142350]
	org.netbeans.api.java/1 [1.2.1 200304142350]
	org.netbeans.modules.java/1 [1.15.1 200304142350]
	org.netbeans.core.windows/1 [1.1.1 200304142350]
	org.openide.deprecated [1.2.1 200304142350]
	org.netbeans.modules.servletapi23/1 [1.3.1 200304142350]
	org.openidex.util/2 [2.6.1 200304142350]
	org.netbeans.core.deprecated [1.2.1 200304142350]
	org.netbeans.modules.projects/1 [1.12.2 200304142350]
	org.netbeans.modules.javahelp/1 [1.2.1 200304142350]
	org.netbeans.modules.j2eeserver/2 [1.7.1 200304142350]
	org.netbeans.modules.jarpackager/2 [1.13.1 200304142350]
	org.netbeans.modules.schema2beans/1 [1.4.1 200304142350]
	org.netbeans.modules.html/1 [1.11.1 200304142350]
	org.netbeans.modules.web.core/1 [1.16.1 200304142350]
	org.netbeans.modules.web.jspparser/1 [1.5.1 200304142350]
	org.netbeans.modules.web.tomcat.tomcat40/1 [1.8.1 200304142350]
	org.netbeans.modules.web.tomcat.bundled/1 [1.3.1 200304142350]
	org.netbeans.modules.properties/1 [1.10.1 200304142350]
	org.netbeans.modules.editor/1 [1.13.1 200304142350]
	org.netbeans.core.ui/1 [1.1.1 200304142350]
	org.netbeans.modules.settings/1 [1.3.1]
	org.netbeans.modules.utilities/1 [1.13.1 200304142350]
	org.netbeans.modules.autoupdate/1 [2.7.1 200304142350]
	org.netbeans.modules.welcome/1 [1.4.1 200304142350]
	org.netbeans.modules.javadoc/1 [1.10.1 200304142350]
	org.netbeans.modules.xml.tax/2 [0.8.1 XMLr35]
	org.netbeans.modules.xml.tools/2 [0.8.1 200304142350]
	org.netbeans.modules.xml.text/2 [0.8.1 XMLr35]
	org.netbeans.modules.form/2 [1.12.1 200304142350]
	org.netbeans.modules.i18n/1 [1.12.1 200304142350]
	org.netbeans.modules.i18n.form/2 [1.11.1 200304142350]
	org.netbeans.modules.properties.syntax/1 [1.10.1 200304142350]
	org.netbeans.modules.httpserver/1 [1.12.1 200304142350]
	org.netbeans.modules.web.monitor/1 [1.8.1 200304142350]
	org.netbeans.modules.diff/1 [1.6.1 200304142350]
	org.netbeans.modules.vcscore/1 [1.8.1 200304142350]
	org.netbeans.modules.vcs.advanced/1 [1.8.1 200304142350]
	org.netbeans.modules.vcs.profiles.vss/1 [1.2.1 200304142350]
	org.netbeans.modules.web.taglibed/1 [1.11.1 200304142350]
	org.netbeans.modules.css/2 [0.8.1 200304142350]
	org.netbeans.modules.usersguide/1 [1.12.1 200304142350]
	org.netbeans.modules.vcs.cmdline.compat/1 [1.2.1 200304142350]
	org.netbeans.modules.group/1 [0.1.1 200304142350]
	org.netbeans.modules.vcs.profiles.pvcs/1 [1.2.1 200304142350]
	org.netbeans.modules.vcs.profiles.cvsprofiles/1 [1.2.1 200304142350]
	org.netbeans.core.ide/1 [1.2.1 200304142350]
	org.netbeans.modules.web.tomcat.tomcat40.autocompile/1 [1.5.1
200304142350]
	org.netbeans.modules.web.core.syntax/1 [1.12.1 200304142350]
	org.netbeans.modules.extbrowser/1 [0.7.1 200304142350]
	org.netbeans.modules.beans/1 [1.10.1 200304142350]
	org.netbeans.modules.applet/1 [1.12.1 200304142350]
	org.netbeans.modules.xsl/1 [0.8.1 XMLr35]
	org.netbeans.modules.xml.catalog/2 [0.9.1 XMLr35]
	org.netbeans.modules.web.ie/1 [1.15.1 200304142350]
	org.netbeans.modules.text/1 [1.11.1 200304142350]
	org.apache.tools.ant.module/2 [2.16.1 200304142350]
	org.netbeans.modules.db/1 [1.7.1 200304142350]
	org.netbeans.modules.cvsclient/1 [1.7.1 200304142350]
	org.netbeans.modules.web.debug/1 [1.8.1 200304142350]
Starting system in full screen (MDI) UI mode.
*********** Exception occurred ************ at Tue Apr 22 21:25:40 PDT
2003
java.lang.ClassCastException
	at apple.laf.ScreenMenuBar.componentAdded(ScreenMenuBar.java:48)
	at
java.awt.AWTEventMulticaster.componentAdded(AWTEventMulticaster.java:138)
	at java.awt.Container.processContainerEvent(Container.java:1591)
	at java.awt.Container.processEvent(Container.java:1563)
	at java.awt.Component.dispatchEventImpl(Component.java:3598)
	at java.awt.Container.dispatchEventImpl(Container.java:1623)
	at java.awt.Component.dispatchEvent(Component.java:3439)
	at java.awt.Container.addImpl(Container.java:675)
	at java.awt.Container.add(Container.java:307)
	at
org.netbeans.core.windows.WindowManagerImpl.addButtons(WindowManagerImpl.java:332)
	at
org.netbeans.core.windows.WorkspaceImpl.setTopMaximizedMode(WorkspaceImpl.java:637)
	at org.netbeans.core.windows.ModeImpl.setTopMaximized(ModeImpl.java:1427)
	at org.netbeans.core.windows.ModeImpl.frameMaximized(ModeImpl.java:1671)
	at
org.netbeans.core.windows.frames.InternalFrameListenerAdapter.internalFrameMaximized(InternalFrameListenerAdapter.java:68)
	at
org.netbeans.core.windows.frames.InternalFrameTypeImpl.setMaximum(InternalFrameTypeImpl.java:410)
	at
org.netbeans.core.windows.frames.DesktopPane.setMaxModeForFrame(DesktopPane.java:366)
	at
org.netbeans.core.windows.frames.DesktopPane.setMaxMode(DesktopPane.java:331)
	at org.netbeans.core.windows.ModeImpl.restoreState(ModeImpl.java:1440)
	at org.netbeans.core.windows.ModeImpl.setVisible(ModeImpl.java:1362)
	at org.netbeans.core.windows.ModeImpl$1.performCommand(ModeImpl.java:520)
	at
org.netbeans.core.windows.DeferredPerformer.processCommand(DeferredPerformer.java:195)
	at
org.netbeans.core.windows.DeferredPerformer.putRequest(DeferredPerformer.java:89)
	at org.netbeans.core.windows.ModeImpl.doDockInto(ModeImpl.java:479)
	at org.netbeans.core.windows.ModeImpl.dockInto(ModeImpl.java:418)
	at org.netbeans.core.windows.ModeImpl.dockInto(ModeImpl.java:404)
	at org.netbeans.core.windows.ModeImpl.dockInto(ModeImpl.java:392)
	at
org.netbeans.core.windows.WindowManagerImpl$TopComponentManager.doOpen(WindowManagerImpl.java:1632)
	at
org.netbeans.core.windows.WindowManagerImpl$TopComponentManager.open(WindowManagerImpl.java:1589)
	at org.openide.windows.TopComponent.open(TopComponent.java:217)
	at
org.netbeans.core.windows.layers.TCRefImpl.performCommand(TCRefImpl.java:157)
	at
org.netbeans.core.windows.DeferredPerformer.processCommand(DeferredPerformer.java:195)
	at
org.netbeans.core.windows.DeferredPerformer.putRequest(DeferredPerformer.java:89)
	at
org.netbeans.core.windows.layers.TCRefImpl.updateMode(TCRefImpl.java:209)
	at
org.netbeans.core.windows.layers.ModeData$CookiesImpl.addComponents(ModeData.java:830)
	at
org.netbeans.core.windows.layers.ModeData$CookiesImpl.updateComponents(ModeData.java:666)
	at
org.netbeans.core.windows.layers.ModeData$CookiesImpl.updateAll(ModeData.java:414)
	at
org.netbeans.core.windows.layers.ModeData$CookiesImpl.loadDataSection(ModeData.java:1260)
	at
org.netbeans.core.windows.ModeImpl.ensureSectionLoaded(ModeImpl.java:2402)
	at org.netbeans.core.windows.ModeImpl.setVisible(ModeImpl.java:1318)
	at
org.netbeans.core.windows.WorkspaceVisibilityManager.setModesVisibility(WorkspaceVisibilityManager.java:544)
	at
org.netbeans.core.windows.WorkspaceVisibilityManager.processModes(WorkspaceVisibilityManager.java:381)
	at
org.netbeans.core.windows.WorkspaceVisibilityManager.doSetVisible(WorkspaceVisibilityManager.java:187)
	at
org.netbeans.core.windows.WorkspaceVisibilityManager.performCommand(WorkspaceVisibilityManager.java:110)
	at
org.netbeans.core.windows.DeferredPerformer.processCommand(DeferredPerformer.java:195)
	at
org.netbeans.core.windows.DeferredPerformer.stateChanged(DeferredPerformer.java:159)
	at
org.netbeans.core.windows.StateManager.fireStateChanged(StateManager.java:128)
	at
org.netbeans.core.windows.StateManager.setVisibilityState(StateManager.java:153)
	at
org.netbeans.core.windows.StateManager.propertyChange(StateManager.java:175)
	at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:330)
	at
java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:257)
	at java.awt.Component.firePropertyChange(Component.java:6688)
	at org.netbeans.core.windows.MainWindow.doShowWindow(MainWindow.java:190)
	at org.netbeans.core.windows.MainWindow.access$100(MainWindow.java:51)
	at org.netbeans.core.windows.MainWindow$2.run(MainWindow.java:165)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:448)
[catch] at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:230)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
-------------------------------------------------------------------------------
Comment 13 Tomas Hurka 2003-04-24 17:21:35 UTC
*** Issue 32806 has been marked as a duplicate of this issue. ***
Comment 14 z1314 2003-04-24 20:42:46 UTC
I have good connections at Apple and traced down the RADAR (their bug
tracker) bug status.  Here's the result:

"RADAR bug 2842030... The bug is closed and was fixed in the 1.4.1 GM.
All the bugs it is related to are also closed."
Comment 15 Tomas Hurka 2003-04-25 13:14:14 UTC
I see. I tested 1.4.1 GM to see if this bug was fixed, but menu enabling did not work. I will recheck it. 
BTW: z1314@netbeans.org, 
you have to add itself to CC to see what is going on in this issue.

Comment 16 Tomas Hurka 2003-05-19 10:20:35 UTC
Created attachment 10327 [details]
Quick patch against CVS trunk to fix CCE.
Comment 17 Tomas Hurka 2003-05-19 10:26:35 UTC
I just tested it again and I am positive that it did not work with 1.4.1. Menus are not enabled/disabled. Menu structure does not change dynamically. 
Comment 18 rdmartell 2003-06-09 00:09:20 UTC
This issue is related to the three buttons that are added into the menu bar by 
addButtons (the Minimize, Maximize, and Close).  Apparently the Apple laf doesn't 
support having buttons in the JMenuBar.  When I looked at the JMenuBar docs, it doesn't 
appear to me that Sun expects a JMenuBar to accept JButtons, it's just that currently it 
works on the other LAF's.  To fix this, just stop adding buttons to the menubar 
(although I don't know where you should add them).  This ClassCastException does not 
occur in situations where there are no buttons in the MenuBar (such as MDI mode, 
without  the window maximized).
Comment 19 bblfish 2003-11-20 16:27:54 UTC
As suggested by rtmartell above; one can get Netbeans to work when the buttons are 
no longer in the menu bar in MDI mode on Panther. It is clear from this that removing 
the buttons is not going to be enough. The following issues will have to be dealt with 
in order to really get a good integration into OSX:
  - The toolbox has a fat and useless top frame. If you look at applications like MS-
Word, Corel Paint, and others you will see that they have a very thin frame holder for 
the tool boxes that are placed on the thin side of the box.
  - The screen menu is only visible when the  toolbox is highlighted, not when any of 
the other windows are. 

Henry
Comment 20 _ tboudreau 2004-01-06 16:19:01 UTC
In the worst case, this should be solvable by using a menu subclass,
overriding addImpl(), and simply discarding added components if the
useScreenMenu==true && !component instanceof JMenuItem

Comment 21 Tomas Hurka 2004-01-06 16:48:12 UTC
CCE is not problem any more. The main problem is that menus are not enabled/
disabled. Menu structure does not change dynamically.  
Comment 22 _ tboudreau 2004-01-06 17:01:18 UTC
Yes, I know.  Is there a separate issue for that?
Comment 23 _ tboudreau 2004-01-07 02:08:29 UTC
We should probably fix the CCE anyway - it is still possible to put
random components in the menu bar via Tools | Options (copy and paste
the Memory meter, etc.)
Comment 24 David Simonek 2004-01-19 17:15:21 UTC
Not planned for 3.6, planned for promo-D.
Comment 25 _ tboudreau 2004-01-19 17:21:50 UTC
Reducing status to P3 - not a problem in MDI and only a very 
knowledgable user could produce it on current builds.
Comment 26 _ tboudreau 2004-06-10 19:06:48 UTC
Fixed in trunk - MenuBar now overrides addImpl and will check if the 
screen menu bar is being used.

Checking in src/org/openide/awt/MenuBar.java;
/cvs/openide/loaders/src/org/openide/awt/MenuBar.java,v  <--  
MenuBar.java
new revision: 1.7; previous revision: 1.6
done
Processing log script arguments...
Mailing the commit message to cvs@openide.netbeans.org (from 
tboudreau@netbeans.
org)
Comment 27 Marian Mirilovic 2004-08-16 15:20:06 UTC
Jeff Sider,
could you verify the fix for this issue , please ?

Thanks in advance.
Comment 28 ibrandt 2004-12-03 20:09:46 UTC
Not sure if Jeff is still around, but I can verify it as working. 
Netbeans 4.0 RC2, MacOS 10.3.6, Java 1.4.2_05.
Comment 29 Marian Mirilovic 2005-11-01 09:10:27 UTC
verified/closed
Comment 30 Quality Engineering 2008-12-23 14:32:33 UTC
This issue had *4 votes* before move to platform component