-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P4
-
Affects Version/s: 1.1.4, 1.1.5, 1.1.6
-
Component/s: client-libs
-
1.1.6
-
generic, x86
-
generic, windows_95, windows_nt
-
Verified
| Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
|---|---|---|---|---|---|---|
| JDK-2018922 | 1.2.0 | J. Duke | P4 | Resolved | Fixed | 1.2beta4 |
Compile and run the following (2) java files. This will crash on NT.
Calling setLabel before the add() will prevent the program from crashing, but
there may be class files being run than invoke the methods in this order.
This occurs in 1.1.6 Build F and previous builds (D and E).
//---Begin menu_test.java----
/*
menu_test.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
// add your custom import statements here
class menu_test extends Object
{
public menu_test()
{
super();
}
public static void main(String args[])
{
menu_test app = new menu_test();
app.StartApp(args);
app.RunApp(args);
app.EndApp(args);
}
public void StartApp(String args[])
{
}
public void RunApp(String args[])
{
CreateMainForm();
}
public void EndApp(String args[])
{
}
public Form1 CreateMainForm()
{
Form1 form = new Form1();
form.setMainForm(true);
try {
form.create();
} catch ( java.lang.Exception __e ) { System.err.println( __e.toString() + " " + __e.getMessage() ); }
return form;
}
// add your data members here
}
sunagain% cat !$
cat menu_test.java
/*
menu_test.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
// add your custom import statements here
class menu_test extends Object
{
public menu_test()
{
super();
}
public static void main(String args[])
{
menu_test app = new menu_test();
app.StartApp(args);
app.RunApp(args);
app.EndApp(args);
}
public void StartApp(String args[])
{
}
public void RunApp(String args[])
{
CreateMainForm();
}
public void EndApp(String args[])
{
}
public Form1 CreateMainForm()
{
Form1 form = new Form1();
form.setMainForm(true);
try {
form.create();
} catch ( java.lang.Exception __e ) { System.err.println( __e.toString() + " " + __e.getMessage() ); }
return form;
}
// add your data members here
}
//---End menu_test.java----
/*
Form1.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
import java.awt.Insets;
import java.lang.Math;
import java.lang.String;
// custom imports for Form1
// add your custom import statements here
class Form1 extends java.awt.Frame implements java.awt.event.WindowListener
{
public Rectangle DURectangle( int x, int y, int w, int h )
{
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
FontMetrics fm = getFontMetrics( getFont() );
double fw = ( fm != null ) ? ( fm.stringWidth( alphabet ) / alphabet.length() ) : 0;
double fh = ( fm != null ) ? ( fm.getHeight() / 2.0 ) : 0.0;
return new Rectangle( (int) Math.round( ( (double)fw * (double)x ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)y ) / 4.0 ),
(int) Math.round( ( (double)fw * (double)w ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)h ) / 4.0 ) );
}
public void DUPositionComponent( java.awt.Component comp, int x, int y, int w, int h, java.awt.Insets formInsets )
{
Rectangle rect = DURectangle( x, y, w, h );
if( formInsets != null ) {
rect.x += formInsets.left;
rect.y += formInsets.top;
}
java.awt.Dimension minSize = comp.getMinimumSize();
if( rect.width < minSize.width ) {
rect.width = minSize.width;
}
if( rect.height < minSize.height ) {
rect.height = minSize.height;
}
comp.setBounds( rect );
}
public void setMainForm( boolean isMainForm )
{
__mainForm = isMainForm;
}
public boolean isMainForm()
{
return __mainForm;
}
public boolean create() throws java.lang.Exception
{
setResizable(true);
Font defaultFont = new Font( "Dialog", Font.PLAIN, 12 );
setFont( defaultFont );
boolean retval = true;
addNotify();
Insets formInsets = getInsets();
setBackground( java.awt.Color.lightGray );
setForeground( java.awt.Color.black );
setLayout( null );
add(cb_1);
DUPositionComponent( this, 13, 97, 263, 218, null );
addWindowListener(this);
DUPositionComponent( cb_1, 50, 65, 40, 14, formInsets );
cb_1.setFont( defaultFont );
cb_1.setBackground( java.awt.Color.lightGray );
cb_1.setForeground( java.awt.Color.black );
cb_1.setEnabled(true);
cb_1.setVisible(true);
setMenuBar( menu_1 );
menu_1.add(menu_1_Item0);
menu_1_Item0.setLabel("Item0");
setVisible(true);
return retval;
}
public synchronized boolean destroy()
{
if( (java.awt.Container)this instanceof java.awt.Window ) {
((java.awt.Window)(java.awt.Container)this).dispose();
} else {
removeNotify();
}
if( isMainForm() ) {
System.gc();
System.runFinalization();
System.exit(0);
}
return true;
}
public boolean defaultHandleEvent(java.awt.Event event)
{
return false;
}
public void defaultProcessEvent(java.awt.AWTEvent event)
{
super.processEvent(event);
}
public void windowClosed( java.awt.event.WindowEvent event )
{
}
public void windowOpened( java.awt.event.WindowEvent event )
{
}
public void windowClosing( java.awt.event.WindowEvent event )
{
Object eventTarget = event.getSource();
if( eventTarget == this ) {
Form1_windowClosing( event );
} else {
unhandledEvent( "java.awt.event.WindowListener", "windowClosing", event );
}
}
public void windowIconified( java.awt.event.WindowEvent event )
{
}
public void windowActivated( java.awt.event.WindowEvent event )
{
}
public void windowDeiconified( java.awt.event.WindowEvent event )
{
}
public void windowDeactivated( java.awt.event.WindowEvent event )
{
}
public Form1()
{
super();
}
public void processEvent(java.awt.AWTEvent event)
{
defaultProcessEvent(event);
}
public void unhandledEvent( String listenerName, String methodName, java.lang.Object event )
{
}
public boolean Form1_windowClosing(java.awt.event.WindowEvent event)
{
setVisible(false);
destroy();
return false;
}
/****************************************
* data members
****************************************/
boolean __mainForm = false;
private java.awt.Button cb_1 = new java.awt.Button();
private java.awt.MenuBar menu_1 = new java.awt.MenuBar();
private java.awt.Menu menu_1_Item0 = new java.awt.Menu("");
// add your data members here
}
//---Begin Form1.java----
//---End Form1.java----
Calling setLabel before the add() will prevent the program from crashing, but
there may be class files being run than invoke the methods in this order.
This occurs in 1.1.6 Build F and previous builds (D and E).
//---Begin menu_test.java----
/*
menu_test.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
// add your custom import statements here
class menu_test extends Object
{
public menu_test()
{
super();
}
public static void main(String args[])
{
menu_test app = new menu_test();
app.StartApp(args);
app.RunApp(args);
app.EndApp(args);
}
public void StartApp(String args[])
{
}
public void RunApp(String args[])
{
CreateMainForm();
}
public void EndApp(String args[])
{
}
public Form1 CreateMainForm()
{
Form1 form = new Form1();
form.setMainForm(true);
try {
form.create();
} catch ( java.lang.Exception __e ) { System.err.println( __e.toString() + " " + __e.getMessage() ); }
return form;
}
// add your data members here
}
sunagain% cat !$
cat menu_test.java
/*
menu_test.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
// add your custom import statements here
class menu_test extends Object
{
public menu_test()
{
super();
}
public static void main(String args[])
{
menu_test app = new menu_test();
app.StartApp(args);
app.RunApp(args);
app.EndApp(args);
}
public void StartApp(String args[])
{
}
public void RunApp(String args[])
{
CreateMainForm();
}
public void EndApp(String args[])
{
}
public Form1 CreateMainForm()
{
Form1 form = new Form1();
form.setMainForm(true);
try {
form.create();
} catch ( java.lang.Exception __e ) { System.err.println( __e.toString() + " " + __e.getMessage() ); }
return form;
}
// add your data members here
}
//---End menu_test.java----
/*
Form1.java
NOTE: This file is a generated file.
Do not modify it by hand!
*/
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Rectangle;
import java.awt.Insets;
import java.lang.Math;
import java.lang.String;
// custom imports for Form1
// add your custom import statements here
class Form1 extends java.awt.Frame implements java.awt.event.WindowListener
{
public Rectangle DURectangle( int x, int y, int w, int h )
{
String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
FontMetrics fm = getFontMetrics( getFont() );
double fw = ( fm != null ) ? ( fm.stringWidth( alphabet ) / alphabet.length() ) : 0;
double fh = ( fm != null ) ? ( fm.getHeight() / 2.0 ) : 0.0;
return new Rectangle( (int) Math.round( ( (double)fw * (double)x ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)y ) / 4.0 ),
(int) Math.round( ( (double)fw * (double)w ) / 4.0 ),
(int) Math.round( ( (double)fh * (double)h ) / 4.0 ) );
}
public void DUPositionComponent( java.awt.Component comp, int x, int y, int w, int h, java.awt.Insets formInsets )
{
Rectangle rect = DURectangle( x, y, w, h );
if( formInsets != null ) {
rect.x += formInsets.left;
rect.y += formInsets.top;
}
java.awt.Dimension minSize = comp.getMinimumSize();
if( rect.width < minSize.width ) {
rect.width = minSize.width;
}
if( rect.height < minSize.height ) {
rect.height = minSize.height;
}
comp.setBounds( rect );
}
public void setMainForm( boolean isMainForm )
{
__mainForm = isMainForm;
}
public boolean isMainForm()
{
return __mainForm;
}
public boolean create() throws java.lang.Exception
{
setResizable(true);
Font defaultFont = new Font( "Dialog", Font.PLAIN, 12 );
setFont( defaultFont );
boolean retval = true;
addNotify();
Insets formInsets = getInsets();
setBackground( java.awt.Color.lightGray );
setForeground( java.awt.Color.black );
setLayout( null );
add(cb_1);
DUPositionComponent( this, 13, 97, 263, 218, null );
addWindowListener(this);
DUPositionComponent( cb_1, 50, 65, 40, 14, formInsets );
cb_1.setFont( defaultFont );
cb_1.setBackground( java.awt.Color.lightGray );
cb_1.setForeground( java.awt.Color.black );
cb_1.setEnabled(true);
cb_1.setVisible(true);
setMenuBar( menu_1 );
menu_1.add(menu_1_Item0);
menu_1_Item0.setLabel("Item0");
setVisible(true);
return retval;
}
public synchronized boolean destroy()
{
if( (java.awt.Container)this instanceof java.awt.Window ) {
((java.awt.Window)(java.awt.Container)this).dispose();
} else {
removeNotify();
}
if( isMainForm() ) {
System.gc();
System.runFinalization();
System.exit(0);
}
return true;
}
public boolean defaultHandleEvent(java.awt.Event event)
{
return false;
}
public void defaultProcessEvent(java.awt.AWTEvent event)
{
super.processEvent(event);
}
public void windowClosed( java.awt.event.WindowEvent event )
{
}
public void windowOpened( java.awt.event.WindowEvent event )
{
}
public void windowClosing( java.awt.event.WindowEvent event )
{
Object eventTarget = event.getSource();
if( eventTarget == this ) {
Form1_windowClosing( event );
} else {
unhandledEvent( "java.awt.event.WindowListener", "windowClosing", event );
}
}
public void windowIconified( java.awt.event.WindowEvent event )
{
}
public void windowActivated( java.awt.event.WindowEvent event )
{
}
public void windowDeiconified( java.awt.event.WindowEvent event )
{
}
public void windowDeactivated( java.awt.event.WindowEvent event )
{
}
public Form1()
{
super();
}
public void processEvent(java.awt.AWTEvent event)
{
defaultProcessEvent(event);
}
public void unhandledEvent( String listenerName, String methodName, java.lang.Object event )
{
}
public boolean Form1_windowClosing(java.awt.event.WindowEvent event)
{
setVisible(false);
destroy();
return false;
}
/****************************************
* data members
****************************************/
boolean __mainForm = false;
private java.awt.Button cb_1 = new java.awt.Button();
private java.awt.MenuBar menu_1 = new java.awt.MenuBar();
private java.awt.Menu menu_1_Item0 = new java.awt.Menu("");
// add your data members here
}
//---Begin Form1.java----
//---End Form1.java----
- backported by
-
JDK-2018922 invoking setLabel after adding a menu item crashes VM on win NT (1.1.6 Build F)
-
- Resolved
-
- duplicates
-
JDK-4081378 Changing label in a popup menu causes awt to crash.
-
- Closed
-