< prev index next >

src/java.base/share/classes/java/io/ObjectStreamClass.java

Print this page
rev 13121 : 8143926: ObjectStreamField constructor eagerly load ObjectStreamClass
Reviewed-by: TBD

*** 47,56 **** --- 47,57 ---- import java.util.HashSet; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import jdk.internal.misc.Unsafe; + import sun.invoke.util.BytecodeDescriptor; import sun.reflect.CallerSensitive; import sun.reflect.Reflection; import sun.reflect.ReflectionFactory; import sun.reflect.misc.ReflectUtil;
*** 1523,1598 **** name2 = name2.substring(name2.lastIndexOf('.') + 1); return name1.equals(name2); } /** - * Returns JVM type signature for given primitive. - */ - private static String getPrimitiveSignature(Class<?> cl) { - if (cl == Integer.TYPE) - return "I"; - else if (cl == Byte.TYPE) - return "B"; - else if (cl == Long.TYPE) - return "J"; - else if (cl == Float.TYPE) - return "F"; - else if (cl == Double.TYPE) - return "D"; - else if (cl == Short.TYPE) - return "S"; - else if (cl == Character.TYPE) - return "C"; - else if (cl == Boolean.TYPE) - return "Z"; - else if (cl == Void.TYPE) - return "V"; - else - throw new InternalError(); - } - - /** - * Returns JVM type signature for given class. - */ - static String getClassSignature(Class<?> cl) { - if (cl.isPrimitive()) - return getPrimitiveSignature(cl); - else - return appendClassSignature(new StringBuilder(), cl).toString(); - } - - private static StringBuilder appendClassSignature(StringBuilder sbuf, Class<?> cl) { - while (cl.isArray()) { - sbuf.append('['); - cl = cl.getComponentType(); - } - - if (cl.isPrimitive()) - sbuf.append(getPrimitiveSignature(cl)); - else - sbuf.append('L').append(cl.getName().replace('.', '/')).append(';'); - - return sbuf; - } - - /** - * Returns JVM type signature for given list of parameters and return type. - */ - private static String getMethodSignature(Class<?>[] paramTypes, - Class<?> retType) - { - StringBuilder sbuf = new StringBuilder(); - sbuf.append('('); - for (int i = 0; i < paramTypes.length; i++) { - appendClassSignature(sbuf, paramTypes[i]); - } - sbuf.append(')'); - appendClassSignature(sbuf, retType); - return sbuf.toString(); - } - - /** * Convenience method for throwing an exception that is either a * RuntimeException, Error, or of some unexpected type (in which case it is * wrapped inside an IOException). */ private static void throwMiscException(Throwable th) throws IOException { --- 1524,1533 ----
*** 1896,1920 **** public final String signature; public MemberSignature(Field field) { member = field; name = field.getName(); ! signature = getClassSignature(field.getType()); } public MemberSignature(Constructor<?> cons) { member = cons; name = cons.getName(); ! signature = getMethodSignature( ! cons.getParameterTypes(), Void.TYPE); } public MemberSignature(Method meth) { member = meth; name = meth.getName(); ! signature = getMethodSignature( ! meth.getParameterTypes(), meth.getReturnType()); } } /** * Class for setting and retrieving serializable field values in batch. --- 1831,1855 ---- public final String signature; public MemberSignature(Field field) { member = field; name = field.getName(); ! signature = BytecodeDescriptor.unparse(field.getType()); } public MemberSignature(Constructor<?> cons) { member = cons; name = cons.getName(); ! signature = BytecodeDescriptor.unparseMethod( ! Void.TYPE, cons.getParameterTypes()); } public MemberSignature(Method meth) { member = meth; name = meth.getName(); ! signature = BytecodeDescriptor.unparseMethod( ! meth.getReturnType(), meth.getParameterTypes()); } } /** * Class for setting and retrieving serializable field values in batch.
< prev index next >