From 8a19ace4c446639b4217492b8a8a22857d809f06 Mon Sep 17 00:00:00 2001 From: dfuchs Date: Thu, 2 May 2013 10:46:09 +0200 Subject: [PATCH] 8012243: about 30% regression on specjvm2008.serial on 7u25 comparing 7u21 Reviewed-by: alanb, skoivu, smarks, mchung --- src/share/classes/java/io/ObjectStreamClass.java | 8 +++++--- src/share/classes/java/io/ObjectStreamField.java | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/share/classes/java/io/ObjectStreamClass.java b/src/share/classes/java/io/ObjectStreamClass.java index ab104d522..04873c8a8 100644 --- a/src/share/classes/java/io/ObjectStreamClass.java +++ b/src/share/classes/java/io/ObjectStreamClass.java @@ -266,9 +266,11 @@ public class ObjectStreamClass implements Serializable { if (cl == null) { return null; } - Class caller = Reflection.getCallerClass(); - if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) { - ReflectUtil.checkPackageAccess(cl); + if (System.getSecurityManager() != null) { + Class caller = Reflection.getCallerClass(); + if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), cl.getClassLoader())) { + ReflectUtil.checkPackageAccess(cl); + } } return cl; } diff --git a/src/share/classes/java/io/ObjectStreamField.java b/src/share/classes/java/io/ObjectStreamField.java index 630637fd7..ceae3fd18 100644 --- a/src/share/classes/java/io/ObjectStreamField.java +++ b/src/share/classes/java/io/ObjectStreamField.java @@ -162,9 +162,11 @@ public class ObjectStreamField */ @CallerSensitive public Class getType() { - Class caller = Reflection.getCallerClass(); - if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), type.getClassLoader())) { - ReflectUtil.checkPackageAccess(type); + if (System.getSecurityManager() != null) { + Class caller = Reflection.getCallerClass(); + if (ReflectUtil.needsPackageAccessCheck(caller.getClassLoader(), type.getClassLoader())) { + ReflectUtil.checkPackageAccess(type); + } } return type; } -- GitLab