OpenSolaris is the biggest and widest testing ground for opensourcing software at Sun Microsystems, and it is (in my own opinion) the last testing ground that opensource software needs to pass before becoming THE standard.
OpenSolaris is a red herring and unrelated to the concept of OSS Java. In fact, OpenSolaris is the exact example of why Sun is wary of OSS Java.
OpenSolaris is a proprietary implementation and platform that implements several standards, but offers several features on its own. The whole thing that OpenSolaris is becoming is the exact thing that Sun does not want to happen to Java.
OpenSolaris will include a Linux compatability layer (Janus) to facilitate porting, but otherwise to run on OpenSolaris, there are certainly large chunks of source code that will not build on OpenSolaris because of "Linuxisms" in the code.
Just as there will be code and applications built on OpenSolaris that won't run on Linux.
Sun does not want, if it can possibly help it, that situation to exist in Java and the JVM. That was the prime complaint against Microsoft.
That's why it relies on the things like the JCP, to keep getting input from vendors and to help ensure that a JVM vendor doesn't get off the path and does their own Java.
Fragmenting the UNIX industry is what gave a company like Microsoft the ability to rise up and dominate the market. Much like some suggest the lack of a desktop standard is keeping Linux down on the desktop.
People have a love/hate relationship with choice. On the one hand choice is great: options, freedoms, variety. On the other it's very risky: which one is better, this has A, B, C while that one has B, C, D. There are some who love Baskin and Robins 31 flavors, but I still get Vanilla when I'm there (French Vanilla, actually...).
When people choose Java, Sun wants that choice to be simple. Java. Period. Not Suns Java vs IBMs Java. Having competing implementations actually shrinks the market place for Java. If I have to choose between different JVMs, well, why not start looking at something else, like .NET, or Perl, or whatever. Perl, Python, Ruby is very similar to Sun Java, IBM Java, Gnu Java. Because on the surface they're all bullet point compatible, but it's the details that matter.
Having a single Java makes Java a safer choice for companies. It's why I chose Java many years ago. Not because of Sun, but because of Sun, IBM, Oracle, BEA, etc. etc. It had community buzz and corporate buzz. The only group who hadn't jumped on the bandwagon was Microsoft. All of those options makes Java a safe choice. Fragment Java, and it loses that safety.
OpenSolaris is already in a fragmented world, so one more won't hurt it. Solaris is trying to compete against a free competitor, so making it OpenSolaris is viable tactic to maintain and grow marketshare. Lot less risk with OpenSolaris.
But OSS Java, and risk it forking and fragmenting, and having a major vendor participate, and something "safe" like .NET looks all that much more appealing.