|
Quick Lists
|
|
Bug ID:
|
4771604
|
|
Votes
|
0
|
|
Synopsis
|
Cant be serialized JTextField that contain Japanese character.
|
|
Category
|
java:classes_swing
|
|
Reported Against
|
1.4.1
|
|
Release Fixed
|
|
|
State
|
11-Closed, duplicate of 4770950,
bug
|
|
Priority:
|
3-Medium
|
|
Related Bugs
|
4770950
|
|
Submit Date
|
30-OCT-2002
|
|
Description
|
FULL PRODUCT VERSION :
java version "1.4.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-b21)
Java HotSpot(TM) Client VM (build 1.4.1-b21, mixed mode)
FULL OPERATING SYSTEM VERSION : customer Windows XP
[Version 5.1.2600]
A DESCRIPTION OF THE PROBLEM :
JTextField cant be serialized when JTextField instance is containing Japanese characters.
import java.io.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) throws Exception {
JTextField ta = new JTextField("ã??"); // Japanese Character
ObjectOutputStream out = new ObjectOutputStream(System.out);
out.writeObject(ta);
out.close();
}
}
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile and run the code
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "main" java.io.NotSerializableException: java.lang.Object
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at java.util.Hashtable.writeObject(Hashtable.java:801)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at java.io.ObjectStreamClass.invokeWriteObject
(ObjectStreamClass.java:795)
at java.io.ObjectOutputStream.writeSerialData
(ObjectOutputStream.java:1294)
at java.io.ObjectOutputStream.writeOrdinaryObject
(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.defaultWriteFields
(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeSerialData
(ObjectOutputStream.java:1302)
at java.io.ObjectOutputStream.writeOrdinaryObject
(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.defaultWriteFields
(ObjectOutputStream.java:1330)
at java.io.ObjectOutputStream.writeSerialData
(ObjectOutputStream.java:1302)
at java.io.ObjectOutputStream.writeOrdinaryObject
(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1052)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at Test.main(Test.java:17)
REPRODUCIBILITY :
This bug can be reproduced always.
(Review ID: 166410)
======================================================================
|
|
Work Around
|
N/A
|
|
Evaluation
|
Serialization is failing because the JTextField instance, somewhere in its
graph of non-transient field values, contains an instance of java.lang.Object,
which is not serializable.
The offending object appears to be located at:
JTextField, field JTextComponent.model
[AbstractDocument subclass], field AbstractDocument.documentProperties
Hashtable.writeObject()
java.lang.Object (appears to be a key in the hashtable)
xxxxx@xxxxx 2002-10-31
I should add that the serialization failure occurs in JDK >= 1.3.1, but not
in 1.3.0 or 1.2.2.
xxxxx@xxxxx 2002-10-31
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |