-
Bug
-
Resolution: Fixed
-
P3
-
1.3.0
-
beta
-
generic
-
generic
Name: krC82822 Date: 12/10/2000
10 Dec 2000, eval1127@eng -- works under 1.2.2, but not under 1.3.
-----------
java version "1.3.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0)
Java HotSpot(TM) Client VM (build 1.3.0, mixed mode)
Please run the following, and admire the stacktrace.
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
public class SerializeBug {
public static void main(String[] args) {
JPopupMenu context = new JPopupMenu();
class RubMenu extends AbstractAction {
public RubMenu(String s) {
super(s);
}
public void actionPerformed(ActionEvent e) {
}
}
context.add(new RubMenu("a"));
try {
ObjectOutputStream oos = new ObjectOutputStream(
new FileOutputStream("/tmp/scratch")
);
oos.writeObject(context);
oos.close();
} catch( Exception e) {
e.printStackTrace();
System.exit(1);
}
}
}
------------
java.io.NotSerializableException: javax.swing.JPopupMenu$ActionChangedListener
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1148)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1841)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1214)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at java.io.ObjectOutputStream.outputArray(ObjectOutputStream.java:1098)
at java.io.ObjectOutputStream.checkSubstitutableSpecialClasses(ObjectOutputStream.java:456)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:361)
at java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1841)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:480)
at java.awt.Container.writeObject(Container.java:1767)
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1878)
at java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:1210)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:366)
at SerializeBug110811.main(SerializeBug110811.java:43)
(Review ID: 110811)
======================================================================