From 10cd60775355318fbeebf5855cf1e90a08a75ae5 Mon Sep 17 00:00:00 2001 From: Claes Redestad Date: Wed, 28 Oct 2015 12:35:54 +0100 Subject: [PATCH] 6823565: Excessive use of HandleList class in de-serialization code causes OutOfMemory Reviewed-by: chegar, shade --- .../java.base/share/classes/java/io/ObjectInputStream.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java index 133fc545def..f2bf5f01795 100644 --- a/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java +++ b/jdk/src/java.base/share/classes/java/io/ObjectInputStream.java @@ -3383,10 +3383,11 @@ public class ObjectInputStream * Registers a dependency (in exception status) of one handle on * another. The dependent handle must be "open" (i.e., assigned, but * not finished yet). No action is taken if either dependent or target - * handle is NULL_HANDLE. + * handle is NULL_HANDLE. Additionally, no action is taken if the + * dependent and target are the same. */ void markDependency(int dependent, int target) { - if (dependent == NULL_HANDLE || target == NULL_HANDLE) { + if (dependent == target || dependent == NULL_HANDLE || target == NULL_HANDLE) { return; } switch (status[dependent]) {