-
Bug
-
Resolution: Fixed
-
P4
-
1.3.0, 1.4.0
-
None
-
ladybird
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2033602 | 1.4.0 | Michael Warres | P4 | Resolved | Fixed | beta |
Calling ObjectOutputStream.reset() does not clear strong references to
previously written objects as it should. It calls HandleTable.clear(), which
resets the hash table properly but does not reinitialize the wireHandle2Object
array, which contains strong references to all objects in the table.
This means that previously serialized objects will become reclaimable by the
garbage collector only after the ObjectOutputStream itself becomes reclaimable,
or when the reference in the wireHandle2Object array is overwritten by a new
handle table insertion.
previously written objects as it should. It calls HandleTable.clear(), which
resets the hash table properly but does not reinitialize the wireHandle2Object
array, which contains strong references to all objects in the table.
This means that previously serialized objects will become reclaimable by the
garbage collector only after the ObjectOutputStream itself becomes reclaimable,
or when the reference in the wireHandle2Object array is overwritten by a new
handle table insertion.
- backported by
-
JDK-2033602 1.4:ObjectOutputStream.reset() does not clear strong refs to written objects
-
- Resolved
-
- duplicates
-
JDK-4390997 Regression test java/io/Serializable/ClearHandleTable.java failing
-
- Closed
-