Incomplete serialization implementation in AccessibilityProfile$SerializableAccessibilityProfile ------------------------------------------------------------------------------------------------
Key: TRINIDAD-2155 URL: https://issues.apache.org/jira/browse/TRINIDAD-2155 Project: MyFaces Trinidad Issue Type: Bug Components: Archetype Affects Versions: 2.0.2-core Reporter: Prakash Udupa Issue: -------- Regarding the serializable inner class of AccessibilityProfile... private static final class SerializableAccessibilityProfile extends AccessibilityProfile implements Serializable The super class no-arg constructor has private access, this will lead to the following error... Exception in thread "main" java.io.InvalidClassException: org.apache.myfaces.trinidad.context.AccessibilityProfile$SerializableAccessibilityProfile; org.apache.myfaces.trinidad.context.AccessibilityProfile$SerializableAccessibilityProfile; no valid constructor at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:713) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1733) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at client.AccSerialTest.main(AccSerialTest.java:22) Caused by: java.io.InvalidClassException: org.apache.myfaces.trinidad.context.AccessibilityProfile$SerializableAccessibilityProfile; no valid constructor at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:471) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at client.AccSerialTest.main(AccSerialTest.java:19) Testcase: -------------- package client; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.apache.myfaces.trinidad.context.AccessibilityProfile; public class AccSerialTest { public static void main(String[] args) throws Exception { System.out.println("SERIALIZING"); AccessibilityProfile acc = AccessibilityProfile.getDefaultInstance(); ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("c:\\Temp\\serial.txt")); os.writeObject(acc); System.out.println("DE-SERIALIZING"); ObjectInputStream is = new ObjectInputStream(new FileInputStream("c:\\Temp\\serial.txt")); is.readObject(); } } Fix: ----- Make the constructor protected. Patch attached. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira