--- old/src/share/classes/java/io/ObjectStreamClass.java 2014-02-05 15:03:19.180145977 +0000 +++ new/src/share/classes/java/io/ObjectStreamClass.java 2014-02-05 15:03:18.972145984 +0000 @@ -1472,39 +1472,49 @@ } /** + * 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. */ - private static String getClassSignature(Class cl) { + static String getClassSignature(Class cl) { + if (cl.isPrimitive()) + return getPrimitiveSignature(cl); + StringBuilder sbuf = new StringBuilder(); while (cl.isArray()) { sbuf.append('['); cl = cl.getComponentType(); } - if (cl.isPrimitive()) { - if (cl == Integer.TYPE) { - sbuf.append('I'); - } else if (cl == Byte.TYPE) { - sbuf.append('B'); - } else if (cl == Long.TYPE) { - sbuf.append('J'); - } else if (cl == Float.TYPE) { - sbuf.append('F'); - } else if (cl == Double.TYPE) { - sbuf.append('D'); - } else if (cl == Short.TYPE) { - sbuf.append('S'); - } else if (cl == Character.TYPE) { - sbuf.append('C'); - } else if (cl == Boolean.TYPE) { - sbuf.append('Z'); - } else if (cl == Void.TYPE) { - sbuf.append('V'); - } else { - throw new InternalError(); - } - } else { - sbuf.append('L' + cl.getName().replace('.', '/') + ';'); - } + + if (cl.isPrimitive()) + sbuf.append(getPrimitiveSignature(cl)); + else + sbuf.append('L').append(cl.getName().replace('.', '/')).append(';'); + return sbuf.toString(); }