I don't understand why so many people including Sun think that releasing the source for the JDK and JDK/JVM unit tests would create multiple incompatible versions of Java. I don't think this would, or even could, happen.
First of all, there already are multiple incompatible versions of Java. The GNU Classpath project does not conform to the JDK spec (see GNU Classpath compatibility statistics for details). I think that releasing the unit tests would help GNU Classpath to be compatible with the JDK spec, since it would be obvious which parts conformed and did not conform.
There are several free JVM's available, including Kaffe and SableVM and, in a sense, GCJ. I'm not so familiar with these, but there are surely bugs and broken parts of each of those; I doubt any of those implementations completely follow the JVM specification. Releasing the JVM TCK would help these projects to be compatible with the JVM spec, because once again it would be easy to see which parts did not conform, and to fix them.
I've heard some people say that releasing that source code would make it so no one has to follow the J2EE and/or Java specification anymore. This idea doesn't make sense to me. Releasing the JDK source code has, practically, nothing to do with the specifications to which that code conforms. In releasing the source code, Sun would not be releasing the JDK specification into the public domain or something silly like that. Anything claiming to be Java could still be required to conform to specifications; releasing the JDK source code would not change this.
I think that releasing the source to Sun's JDK would improve the quality of the JDK, since people could fix bugs themselves and distribute patches, instead of waiting years for Sun to fix them.
There are many bugs in the JDK that I've come across that would be simple fixes. For example, currently the Swing HTML parser reads "<br />" as a blank line and a >. It's simple to make the parser read it as an XHTML BR tag, but we have to wait years for Sun to fix it, because without a free license for the JDK, I'm not allowed to copy the code and fix that bug and distribute the fixed version with my application.