-
Bug
-
Resolution: Fixed
-
P4
-
5.0
-
b43
-
generic
-
generic
JInternalFrame is not serializable in Motif & GTK L&F while it can be serialize
using other L&F's
Steps to reproduce:
1) Run the attached test TestSerializeInternalFrame
2) Change L&F to Motif or GTK using Menu "Look And Feel"
3) Click on button "Serialize InternalFrame"
4) It will throw Exception in console
5) Now try serializing in someother look and feel it will
give message ""Successfully serialized JInternalFrame" on console
Tested on Tiger b30
Following is the exception message when serializing JInternalFrame under Motif
----------------------------------------------
Failed serializing javax.swing.JInternalFrame
java.io.NotSerializableException: javax.swing.JMenuItem$MenuItemPropertyChangeListener
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1072)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1242)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1066)
at java.io.ObjectOutputStream.access$100(ObjectOutputStream.java:135)
at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:418)
at java.awt.Container.writeObject(Container.java:3452)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.beans.PropertyChangeSupport.writeObject(PropertyChangeSupport.java:427)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:380)
at java.awt.Component.writeObject(Component.java:7363)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at SerializeTest.serializeObject(SerializeTest.java:152)
at SerializeTest.main(SerializeTest.java:140)
using other L&F's
Steps to reproduce:
1) Run the attached test TestSerializeInternalFrame
2) Change L&F to Motif or GTK using Menu "Look And Feel"
3) Click on button "Serialize InternalFrame"
4) It will throw Exception in console
5) Now try serializing in someother look and feel it will
give message ""Successfully serialized JInternalFrame" on console
Tested on Tiger b30
Following is the exception message when serializing JInternalFrame under Motif
----------------------------------------------
Failed serializing javax.swing.JInternalFrame
java.io.NotSerializableException: javax.swing.JMenuItem$MenuItemPropertyChangeListener
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1072)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1242)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1066)
at java.io.ObjectOutputStream.access$100(ObjectOutputStream.java:135)
at java.io.ObjectOutputStream$PutFieldImpl.writeFields(ObjectOutputStream.java:1509)
at java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:418)
at java.awt.Container.writeObject(Container.java:3452)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1338)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at java.beans.PropertyChangeSupport.writeObject(PropertyChangeSupport.java:427)
at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1366)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:380)
at java.awt.Component.writeObject(Component.java:7363)
at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:489)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:902)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1281)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1070)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at SerializeTest.serializeObject(SerializeTest.java:152)
at SerializeTest.main(SerializeTest.java:140)
- relates to
-
JDK-4905329 Cannot serialize JButton that was configured from an Action
-
- Closed
-
-
JDK-5009724 JInternalFrame not serializable in GTK L&F
-
- Resolved
-