Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.5.0, 1.5.1, 1.5.2, 1.5.3
-
None
-
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"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"
Description
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).