You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "James Carman (Created) (JIRA)" <ji...@apache.org> on 2011/11/25 17:29:40 UTC

[jira] [Created] (WICKET-4264) JavaSerializer Does Not Call SerializableChecker

JavaSerializer Does Not Call SerializableChecker
------------------------------------------------

                 Key: WICKET-4264
                 URL: https://issues.apache.org/jira/browse/WICKET-4264
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.5.3, 1.5.2, 1.5.1, 1.5.0
            Reporter: James Carman


In the new JavaSerializer class, it has a CheckerOutputStream which extends ObjectOutputStream.  The intent is to use the ObjectOutputStream.writeObjectOverride() support.  However, the writeObjectOverride() method is never called unless you use the no-arg constructor from the ObjectOutputStream class (which sets the "enableOverride" flag to true).  The CheckerOutputStream uses the ObjectOutputStream(OutputStream) constructor in its constructor.  Worse yet, even if the writeObjectOverride() method were to be  called, it would create a StackOverflowError because it's calling the super.writeObject() method which is what called it in the first place (infinite recursion).



--
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

        

[jira] [Resolved] (WICKET-4264) JavaSerializer Does Not Call SerializableChecker

Posted by "Martin Grigorov (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov resolved WICKET-4264.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 6.0.0
                   1.5.4

Thanks for the patch, James!
I fixed it almost like you did in the patch, just I preserved the method signatures.
No API breaks, no new classes used.
                
> JavaSerializer Does Not Call SerializableChecker
> ------------------------------------------------
>
>                 Key: WICKET-4264
>                 URL: https://issues.apache.org/jira/browse/WICKET-4264
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.5.3
>         Environment: Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500)
> Maven home: /usr/local/programs/current/maven
> Java version: 1.7.0_01, vendor: Oracle Corporation
> Java home: /usr/local/programs/jdk1.7.0_01/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "2.6.35.14-103.fc14.x86_64", arch: "amd64", family: "unix"
>            Reporter: James Carman
>            Assignee: Martin Grigorov
>             Fix For: 1.5.4, 6.0.0
>
>         Attachments: WICKET-4264.patch
>
>
> In the new JavaSerializer class, it has a CheckerOutputStream which extends ObjectOutputStream.  The intent is to use the ObjectOutputStream.writeObjectOverride() support.  However, the writeObjectOverride() method is never called unless you use the no-arg constructor from the ObjectOutputStream class (which sets the "enableOverride" flag to true).  The CheckerOutputStream uses the ObjectOutputStream(OutputStream) constructor in its constructor.  Worse yet, even if the writeObjectOverride() method were to be  called, it would create a StackOverflowError because it's calling the super.writeObject() method which is what called it in the first place (infinite recursion).

--
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

        

[jira] [Updated] (WICKET-4264) JavaSerializer Does Not Call SerializableChecker

Posted by "James Carman (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Carman updated WICKET-4264:
---------------------------------

    Environment: 
Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500)
Maven home: /usr/local/programs/current/maven
Java version: 1.7.0_01, vendor: Oracle Corporation
Java home: /usr/local/programs/jdk1.7.0_01/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.35.14-103.fc14.x86_64", arch: "amd64", family: "unix"
    
> JavaSerializer Does Not Call SerializableChecker
> ------------------------------------------------
>
>                 Key: WICKET-4264
>                 URL: https://issues.apache.org/jira/browse/WICKET-4264
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.5.3
>         Environment: Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500)
> Maven home: /usr/local/programs/current/maven
> Java version: 1.7.0_01, vendor: Oracle Corporation
> Java home: /usr/local/programs/jdk1.7.0_01/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "2.6.35.14-103.fc14.x86_64", arch: "amd64", family: "unix"
>            Reporter: James Carman
>         Attachments: WICKET-4264.patch
>
>
> In the new JavaSerializer class, it has a CheckerOutputStream which extends ObjectOutputStream.  The intent is to use the ObjectOutputStream.writeObjectOverride() support.  However, the writeObjectOverride() method is never called unless you use the no-arg constructor from the ObjectOutputStream class (which sets the "enableOverride" flag to true).  The CheckerOutputStream uses the ObjectOutputStream(OutputStream) constructor in its constructor.  Worse yet, even if the writeObjectOverride() method were to be  called, it would create a StackOverflowError because it's calling the super.writeObject() method which is what called it in the first place (infinite recursion).

--
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

        

[jira] [Assigned] (WICKET-4264) JavaSerializer Does Not Call SerializableChecker

Posted by "Martin Grigorov (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Grigorov reassigned WICKET-4264:
---------------------------------------

    Assignee: Martin Grigorov
    
> JavaSerializer Does Not Call SerializableChecker
> ------------------------------------------------
>
>                 Key: WICKET-4264
>                 URL: https://issues.apache.org/jira/browse/WICKET-4264
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.5.3
>         Environment: Apache Maven 3.0.3 (r1075438; 2011-02-28 12:31:09-0500)
> Maven home: /usr/local/programs/current/maven
> Java version: 1.7.0_01, vendor: Oracle Corporation
> Java home: /usr/local/programs/jdk1.7.0_01/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "2.6.35.14-103.fc14.x86_64", arch: "amd64", family: "unix"
>            Reporter: James Carman
>            Assignee: Martin Grigorov
>         Attachments: WICKET-4264.patch
>
>
> In the new JavaSerializer class, it has a CheckerOutputStream which extends ObjectOutputStream.  The intent is to use the ObjectOutputStream.writeObjectOverride() support.  However, the writeObjectOverride() method is never called unless you use the no-arg constructor from the ObjectOutputStream class (which sets the "enableOverride" flag to true).  The CheckerOutputStream uses the ObjectOutputStream(OutputStream) constructor in its constructor.  Worse yet, even if the writeObjectOverride() method were to be  called, it would create a StackOverflowError because it's calling the super.writeObject() method which is what called it in the first place (infinite recursion).

--
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

        

[jira] [Updated] (WICKET-4264) JavaSerializer Does Not Call SerializableChecker

Posted by "James Carman (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-4264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Carman updated WICKET-4264:
---------------------------------

    Attachment: WICKET-4264.patch

Here is what I propose to be the solution.  Let me know what you think and I'll try to come up with a way to write a unit test for this.
                
> JavaSerializer Does Not Call SerializableChecker
> ------------------------------------------------
>
>                 Key: WICKET-4264
>                 URL: https://issues.apache.org/jira/browse/WICKET-4264
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.5.0, 1.5.1, 1.5.2, 1.5.3
>            Reporter: James Carman
>         Attachments: WICKET-4264.patch
>
>
> In the new JavaSerializer class, it has a CheckerOutputStream which extends ObjectOutputStream.  The intent is to use the ObjectOutputStream.writeObjectOverride() support.  However, the writeObjectOverride() method is never called unless you use the no-arg constructor from the ObjectOutputStream class (which sets the "enableOverride" flag to true).  The CheckerOutputStream uses the ObjectOutputStream(OutputStream) constructor in its constructor.  Worse yet, even if the writeObjectOverride() method were to be  called, it would create a StackOverflowError because it's calling the super.writeObject() method which is what called it in the first place (infinite recursion).

--
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