Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4488891

Exceptions are thrown when XMLEncoding JTextComponents

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P3 P3
    • 1.4.0
    • 1.4.0
    • client-libs
    • None
    • beta3
    • x86
    • windows_nt

      When a JTextField or any component which inherits from javax.swing.text.JTextComponent is written using the new XML encoder, an exception is thrown. The Bean is correctly serialized but the java.awt.font.TextAttributes cannot be instantiated so an exception is thrown.

      This bug was introduced in merlin beta refresh 1.4 b63a as a result of the i18n fix 4300552. A reference to TextAttribute was added to both JTextComponent and AbstractDocument so the archiver could not handle the decoding of that class.

      The following is the output from the attached application:

      Exception thrown during serialization:
      java.lang.InstantiationException: java.awt.font.TextAttribute
              at java.lang.Class.newInstance0(Class.java:288)
              at java.lang.Class.newInstance(Class.java:256)
              at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source)
              at java.lang.reflect.Method.invoke(Method.java:311)
              at java.beans.Statement.invoke(Statement.java:424)
              at java.beans.Expression.getValue(Expression.java:103)
              at java.beans.Encoder.getValue(Encoder.java:86)
              at java.beans.Encoder.get(Encoder.java:188)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:103)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeObject1(Encoder.java:194)
              at java.beans.Encoder.cloneStatement(Encoder.java:207)
              at java.beans.Encoder.writeExpression(Encoder.java:261)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.java_util_Map_PersistenceDelegate.initialize(MetaData.java:266)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:222)
              at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:257)
              at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:360)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:222)
              at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:257)
              at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:360)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:103)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeObject1(Encoder.java:194)
              at java.beans.Encoder.cloneStatement(Encoder.java:207)
              at java.beans.Encoder.writeStatement(Encoder.java:238)
              at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:322)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:255)
              at TextAttributeTest.main(TextAttributeTest.java:23)
      Exception thrown during serialization:
      java.lang.RuntimeException: failed to evaluate: <unbound>=TextAttribute.new();
              at java.beans.Encoder.getValue(Encoder.java:90)
              at java.beans.Encoder.get(Encoder.java:188)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:103)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeObject1(Encoder.java:194)
              at java.beans.Encoder.cloneStatement(Encoder.java:207)
              at java.beans.Encoder.writeExpression(Encoder.java:261)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.java_util_Map_PersistenceDelegate.initialize(MetaData.java:266)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:222)
              at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:257)
              at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:360)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:222)
              at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:257)
              at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:360)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:106)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeExpression(Encoder.java:262)
              at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:353)
              at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:103)
              at java.beans.Encoder.writeObject(Encoder.java:57)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:252)
              at java.beans.Encoder.writeObject1(Encoder.java:194)
              at java.beans.Encoder.cloneStatement(Encoder.java:207)
              at java.beans.Encoder.writeStatement(Encoder.java:238)
              at java.beans.XMLEncoder.writeStatement(XMLEncoder.java:322)
              at java.beans.XMLEncoder.writeObject(XMLEncoder.java:255)
              at TextAttributeTest.main(TextAttributeTest.java:23)
      Test Finished

            mdavidsosunw Mark Davidson (Inactive)
            mdavidsosunw Mark Davidson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: