diff --git a/src/java.base/share/classes/java/lang/Class.java b/src/java.base/share/classes/java/lang/Class.java index 7929dd1a09f..4250910c84b 100644 --- a/src/java.base/share/classes/java/lang/Class.java +++ b/src/java.base/share/classes/java/lang/Class.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1205,18 +1205,13 @@ public final class Class implements java.io.Serializable, private Class[] getInterfaces(boolean cloneArray) { ReflectionData rd = reflectionData(); - if (rd == null) { - // no cloning required - return getInterfaces0(); - } else { - Class[] interfaces = rd.interfaces; - if (interfaces == null) { - interfaces = getInterfaces0(); - rd.interfaces = interfaces; - } - // defensively copy if requested - return cloneArray ? interfaces.clone() : interfaces; + Class[] interfaces = rd.interfaces; + if (interfaces == null) { + interfaces = getInterfaces0(); + rd.interfaces = interfaces; } + // defensively copy if requested + return cloneArray ? interfaces.clone() : interfaces; } private native Class[] getInterfaces0(); @@ -2922,18 +2917,14 @@ public final class Class implements java.io.Serializable, private Field[] privateGetDeclaredFields(boolean publicOnly) { Field[] res; ReflectionData rd = reflectionData(); - if (rd != null) { - res = publicOnly ? rd.declaredPublicFields : rd.declaredFields; - if (res != null) return res; - } + res = publicOnly ? rd.declaredPublicFields : rd.declaredFields; + if (res != null) return res; // No cached value available; request value from VM res = Reflection.filterFields(this, getDeclaredFields0(publicOnly)); - if (rd != null) { - if (publicOnly) { - rd.declaredPublicFields = res; - } else { - rd.declaredFields = res; - } + if (publicOnly) { + rd.declaredPublicFields = res; + } else { + rd.declaredFields = res; } return res; } @@ -2944,10 +2935,8 @@ public final class Class implements java.io.Serializable, private Field[] privateGetPublicFields() { Field[] res; ReflectionData rd = reflectionData(); - if (rd != null) { - res = rd.publicFields; - if (res != null) return res; - } + res = rd.publicFields; + if (res != null) return res; // Use a linked hash set to ensure order is preserved and // fields from common super interfaces are not duplicated @@ -2968,9 +2957,7 @@ public final class Class implements java.io.Serializable, } res = fields.toArray(new Field[0]); - if (rd != null) { - rd.publicFields = res; - } + rd.publicFields = res; return res; } @@ -2993,10 +2980,8 @@ public final class Class implements java.io.Serializable, private Constructor[] privateGetDeclaredConstructors(boolean publicOnly) { Constructor[] res; ReflectionData rd = reflectionData(); - if (rd != null) { - res = publicOnly ? rd.publicConstructors : rd.declaredConstructors; - if (res != null) return res; - } + res = publicOnly ? rd.publicConstructors : rd.declaredConstructors; + if (res != null) return res; // No cached value available; request value from VM if (isInterface()) { @SuppressWarnings("unchecked") @@ -3005,12 +2990,10 @@ public final class Class implements java.io.Serializable, } else { res = getDeclaredConstructors0(publicOnly); } - if (rd != null) { - if (publicOnly) { - rd.publicConstructors = res; - } else { - rd.declaredConstructors = res; - } + if (publicOnly) { + rd.publicConstructors = res; + } else { + rd.declaredConstructors = res; } return res; } @@ -3027,18 +3010,14 @@ public final class Class implements java.io.Serializable, private Method[] privateGetDeclaredMethods(boolean publicOnly) { Method[] res; ReflectionData rd = reflectionData(); - if (rd != null) { - res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods; - if (res != null) return res; - } + res = publicOnly ? rd.declaredPublicMethods : rd.declaredMethods; + if (res != null) return res; // No cached value available; request value from VM res = Reflection.filterMethods(this, getDeclaredMethods0(publicOnly)); - if (rd != null) { - if (publicOnly) { - rd.declaredPublicMethods = res; - } else { - rd.declaredMethods = res; - } + if (publicOnly) { + rd.declaredPublicMethods = res; + } else { + rd.declaredMethods = res; } return res; } @@ -3049,10 +3028,8 @@ public final class Class implements java.io.Serializable, private Method[] privateGetPublicMethods() { Method[] res; ReflectionData rd = reflectionData(); - if (rd != null) { - res = rd.publicMethods; - if (res != null) return res; - } + res = rd.publicMethods; + if (res != null) return res; // No cached value available; compute value recursively. // Start by fetching public declared methods... @@ -3078,9 +3055,7 @@ public final class Class implements java.io.Serializable, } res = pms.toArray(); - if (rd != null) { - rd.publicMethods = res; - } + rd.publicMethods = res; return res; }