SSLStringize.java: 1. I assume the toString() method does not change the internal status of a ByteBuffer? Is it worth mentioning this in the spec?
2. Should this interface and all its implementations be renamed to ***Stringnizer? 3. Lot of typo: ***Concumer. You can probably "cd sun/security/ssl" and run perl -i -pe 's/Concumer/Consumer/g' *.java The whole SSLStringize + children classes looks complicated to me. Since the implementation is almost always creating a SSLExtensionSpec object and calling its toString, is it possible to register this SSLExtensionSpec class name in each enum value in SSLExtension and somehow simplify the design? Something like -- In constructor of SSLExtension, change the last parameter from "SSLStringize stringize" to "Class<? extends SSLExtensionSpec> specClazz" store the value into a private field named specClazz, and then you can change "stringize.toString(byteBuffer)" to something like "specClazz.newInstance(byteBuffer).toString()". That said, I know you must have thought about this much more. If there is any space for enhancement, we can always refactor it later. Thanks Max