OpenJDK GB Minutes: 2007/8/23

Carla.Schroer at Sun.COM Carla.Schroer at Sun.COM
Thu Dec 13 17:15:26 PST 2007


Hi Folks,

I'm sorry to be a bit late to the party here, Mark Reinhold forwarded 
Andy's questions and comments to me, and I just signed up for the list 
and read this thread.

I am really glad to see interest in these issues.  I certainly think 
they are important and I have spent a lot of the last 12 years working 
on them.  Some of these issues have easy answers, others don't.  I'm 
going to break with convention and respond to some general themes I see 
running through this thread, rather than going item by item.  I hope 
this will provide a bit more background and thinking for the 
discussion.  I also want to encourage folks to continue to discuss these 
issues with the TCK team, once the proposed conformance group is formed. 
Paul Rank is leading the effort from the TCK group.

You can get the JCK (The TCK for Java SE) in it's entirety, including 
the user guide with the compatibility rules, under a "read-only" 
license. it's been available for 3 years.  If anyone wants to look at 
things that way, it's available here: https://jck.dev.java.net/

Graham Hamilton wrote a blog about it at the time that discusses the 
license and why we did it:

http://weblogs.java.net/blog/kgh/archive/2004/12/j2se_compatibil.html

We are also looking at ways to release more TCK information publicly. We 
will use the conformance group page to do this. Stay tuned.

There was a bunch of discussion about people's "intent" when they sign a 
contract.  I'm not a lawyer.  I do work with the legal team here at Sun 
quite a bit, and am often in the role of liaison to legal from 
engineering.  Most contracts are forward looking and try to cover 
situations expected to arise in the future during the course of the 
agreement. It is not uncommon to have some language around the parties' 
intent.  There is also usually language about what happens if either 
party doesn't do what they intended at the time they signed the 
license.  My point is that I don't think there is anything weird about 
setting up a license that makes clear who is eligible and who it's 
intended users are.

This comment of mine seemed to spark a lot of discussion:
    The expectation is that people are acting in good faith, trying to 
meet the
  compatibility requirements, and that they aren't knowingly doing 
something
  that would violate them.  They're expected to make their own choices 
around
  risk, with the understanding that if a mistake is made and an 
implementation
  isn't compatible then Sun could ask them to stop claiming it's 
compatible and
  stop using the Java logo with it.

I'll add a bit more explanation.  The folks who have commercial source 
code licenses with Sun have obligations under those license around 
compatibility. Sun has the ability to negotiate a "remedy" if a 
company's implementation turns out to not be compatible.  This has 
happened many times over the years.  The only case that folks know about 
publicly is the Microsoft one, because it ended in litigation.  No one 
in their right mind wants to litigate.  It's a last resort, and in the 
case with Microsoft we had discussed with them on several occasions 
compatibility issues with their implementation.  They made it clear that 
they had no intention of fixing the problems. That's why it went to 
litigation.  In all the other cases, including Netscape in 1997, the 
companies worked with us to create a "get well plan" for fixing the 
issues.  Those plans might include notification to their users, not 
using the brand until the issue was fixed, and other similar things.

So, what did I mean by the "good faith" item above? Really it's about 
the fact that testing something as complex and broad as the Java SE 
platform means that there are some things that aren't testable, some 
things we don't have the resources to write tests for, and there is more 
to testing than just running a test suite once and seeing if everything 
passes.  We had to create a program that was practical for our source 
licensees and for us. We also had to have a program that could be used 
to certify implementations on platforms we don't have and don't know 
anything about, and that may not be publicly available at the time of 
certification (hardware and/or software)  We also felt that the 
implementors themselves were the best experts on their implementations 
and all the configurations of their implementations.  Further, the 
licensees all had to have a support license, so we could work with them 
to answer questions and resolve issues.  At the end of the day, they 
needed to use our tools and tests and rules to test their products and 
then state back to us that they met all the requirements.  As stated 
above, we have recourse if someone makes a mistake or misses something 
that turns out to be an issue.  In my experience, all of our commercial 
licensees since 1995 except one (and you can probably guess who) have 
wanted compatibility, and supported the program.  It was in their best 
interest to ship compatible implementations.  Sure, some mistakes were 
made, but they were mistakes, and they worked with us to resolve them 
when they were pointed out. 

The last item I will comment on in this email is quality vs 
conformance.  The TCKs are about testing for conformance to the specs.  
They can only be as good as the specs, and practically speaking they 
can't test everything in the specs.  So, we do a lot of other testing 
besides the TCKs.  We have a large regression test suite, much of which 
is available in the OpenJDK project under GPL, and more will be over 
time (some things contain 3rd party code or media files we don't have 
distribution rights to, etc.)  We strongly encourage members of the 
community to contribute to this test suite and to use it as well.  We 
also have a variety of additional tests for performance, reliability, 
and implementation specific behavior, not required by the specs.  Our 
licensing model has always assumed that conformance to the specs was 
critical across implementations, but that licensees could and should 
compete on these other factors like performance and reliability.

Thanks for listening.

Carla







More information about the gb-discuss mailing list