Hi All Sorry to write in HTML. I need to add a table.
The bug is about after several clicks on policytool a menu item is disabled. I've simplified the tool to a small program (attached) with the same behavior. Running the program in JDK 7 and 8 on Mac shows these differences: JDK 7 JDK 8 Start the app New in File menu is enabled New in File menu is enabled (same as JDK 7) Click button one, dialog one pops up File menu disappears New in File menu is disabled Click button two, dialog two pops up File menu disappears Close dialog two No change Close dialog one File menu reappear with New enabled File menu reappears, but New still disabled Command+Q to quite the app Is this a regression? Thanks Max
import java.awt.*; import java.awt.event.*; public class A2 { public static void main(String args[]) { ToolWindow tw = new ToolWindow(); tw.displayToolWindow(); } } class ToolWindow extends Frame { void displayToolWindow() { setBounds(135, 80, 500, 500); MenuBar menuBar = new MenuBar(); Menu menu = new Menu("File"); menu.add("New"); menuBar.add(menu); setMenuBar(menuBar); Button button = new Button("One"); button.addActionListener(new MainWindowListener(this)); this.add(button); setVisible(true); } } class ToolDialog extends Dialog { ToolWindow tw; ToolDialog(String title, ToolWindow tw) { super(tw, true); setTitle(title); this.tw = tw; addWindowListener(new ChildWindowListener(this)); } void displayPolicyEntryDialog(boolean edit) { Point location = tw.getLocationOnScreen(); setBounds(location.x + 75, location.y + 200, 650, 500); Button button = new Button("Add Two"); button.addActionListener(new AddPrinButtonListener(this)); this.add(button); setVisible(true); } void displayPrincipalDialog() { ToolDialog newTD = new ToolDialog("Two", tw); Point location = getLocationOnScreen(); newTD.setBounds(location.x + 50, location.y + 100, 650, 190); newTD.setVisible(true); } } class MainWindowListener implements ActionListener { private ToolWindow tw; MainWindowListener(ToolWindow tw) { this.tw = tw; } public void actionPerformed(ActionEvent e) { ToolDialog td = new ToolDialog("One", tw); td.displayPolicyEntryDialog(false); } } class AddPrinButtonListener implements ActionListener { private ToolDialog td; AddPrinButtonListener(ToolDialog td) { this.td = td; } public void actionPerformed(ActionEvent e) { td.displayPrincipalDialog(); } } class ChildWindowListener implements WindowListener { private ToolDialog td; ChildWindowListener(ToolDialog td) { this.td = td; } public void windowClosing(WindowEvent we) { td.setVisible(false); td.dispose(); } public void windowOpened(WindowEvent we) { } public void windowClosed(WindowEvent we) {} public void windowIconified(WindowEvent we) {} public void windowDeiconified(WindowEvent we) {} public void windowActivated(WindowEvent we) {} public void windowDeactivated(WindowEvent we) {} }