Oracle, do the right thing, set Java free
July 1, 2009
By Jeff Gould, CEO & Director of Research, Peerstone Research
To nearly everyone’s surprise, the Department of Justice’s Antitrust Division has thrown a last-minute banana peel in front of Larry Ellison’s bid to buy Sun and Java. As far as I know the DoJ hasn’t given any official explanation for the delay, but Oracle’s lawyer says it has to do with the rules for licensing Java, which he considers to be a “narrow, technical matter.” I think that’s lawyer talk for “Move along now, nothing to see here.” Or maybe it means “Pay no attention to that man behind the curtain!” Whatever.
The truth is of course that where there’s smoke there’s fire. Oracle is about to acquire Sun’s monumental collection of Java intellectual property rights. This includes not just the Java name and the silly coffee cup logo, but also – much more crucially – the patents and copyrights to the code embodied in the Java platform editions (EE, SE and ME) and in dozens of critical Java standards (JSRs) associated with the platforms, as well as the all-important test suites (JCKs and TCKs) that determine what software can claim compatibility with these standards and thus receive these IP rights. Oracle will also inherit Sun’s tight legal control over the Java Community Process, including the right to nominate most of the Executive Committee members. Given all that, and given the fact that Oracle’s major software competitors such as IBM, SAP and Red Hat all depend on Java, it’s only natural that the DoJ would want to take a second look at this deal before signing off.
Many people believe that because Sun has open sourced its Java code everything is all right. After all, if Oracle starts throwing its weight around, can’t Java dissidents just fork the OpenJDK code and go their merry way? Unfortunately, this isn’t quite true. While the OpenJDK is indeed available under the GPL v2, which is a grant that Oracle can never undo, it doesn’t follow that competitors can make the OpenJDK or any fork of it into commercially viable products. On the contrary, it’s pretty obvious to anyone who has been paying attention that Sun expressly chose the GPL v2 so that open source Java could never be a threat to its own commercial ambitions. IBM even complained about this at the time, saying that Sun should have chosen the more business friendly Apache license instead.
Sun as the Java code copyright owner retains the right to bundle closed source versions of the JDK with proprietary extensions that enhance its features and performance. For example, its real-time version of Java is a “differentiated commercial JDK product” not included in the OpenJDK. But of course no other user of the GPL’d OpenJDK code will be able to play this dual licensing trick. In fact, anyone who signs Sun’s contributor agreement (a requirement for outsiders who contribute to the OpenJDK) agrees not only to share its copyrights and patent rights with Sun, but also grants Sun the right to incorporate this IP into Sun’s own closed source commercial extensions of the JDK, something the contributor itself could not do. It would be a very brave competitor indeed who would dare to pit the OpenJDK against Sun’s commercial versions while having its hands tied behind its back in this fashion. And of course what applies to Sun will apply to Oracle in the future.
But what if someone just forked the OpenJDK without trying to contribute the new code back to the official OpenJDK project? What could Sun or Oracle do about that? Quite a lot, actually. For a start, Sun could withhold the JCK test suite required to certify the fork as Java compatible. This isn’t just a matter of getting the right to use the Java name (in fact naming rights aren’t part of the JCK, and can be only obtained through a separate trademark agreement with Sun). If your OpenJDK fork can’t pass the JCK, you might not be able to convince Fortune 500 class customers – i.e. the ones who spend real money on Java – that your software will reliably do what it’s supposed to. You might think that the JCK, being software required to certify an OpenJDK implementation as valid, would itself be open source. But you would be wrong! Getting a JCK license from Sun is a notoriously difficult and opaque process. Sun can charge whatever it wants for the JCK, and it can impose “field of use” restrictions to prevent Java implementations from being used in ways it doesn’t like. That’s exactly how they derailed certification of Apache’s Harmony project, a rival open source version of Java backed by Intel, IBM and Google (see Stephen Colebourne’s fascinating account of this backroom Java power struggle).
But wait, there’s more. If you get the wily idea of trying to combine the OpenJDK with some other piece of open source software, perhaps in an attempt to create a bigger and better Java, well then you’ve created a derivative work and Sun could hit you with patent infringement claims. Yes, that’s right folks, the GPL v2 does not include a patent covenant. The people over at the Free Software Foundation who wrote the GPL know this perfectly well, because they went through a whole lot of effort to replace GPL v2 with the GPL v3, precisely in order to introduce the missing patent protection. Now the people at Oracle aren’t fools. It’s a safe bet they wouldn’t compromise their reputation by suing a GPL v2 licensee over any routine use of the OpenJDK. But suppose for the sake of argument someone decided to combine a forked OpenJDK with, oh, say, a chunk of Apache Harmony code, as the GPL v2 with the classpath exception technically permits. What would happen then? In particular, what would happen if the resulting piece of software proved to be a credible commercial rival to Oracle’s own Java products? Only Larry Ellison knows for sure. But nothing in the GPL v2 would prevent him from calling in his lawyers if he chose.
Apache Harmony is not the only Sun competitor to have run afoul of Sun’s control of the Java licensing process. JBoss battled with Sun for years over access to the JCK before finally signing an agreement whose financial and commercial terms even to this day remain shrouded in mystery. I’m also willing to bet that IBM has some kind of costly but ironclad deal with Sun in its pocket guaranteeing its rights to Java until the end of time. So Sam Palmisano is probably not losing any sleep over the fact that Oracle will soon control the foundation of his hugely profitable, multi-billion dollar WebSphere franchise. But I would be very interested to know what kind of arrangement SAP has for the use of Java in its Netweaver application server, which is a vital component in nearly every application it sells. I doubt that Sun gave SAP a perpetual license for Java. And I’m certain that it would be virtually impossible for SAP to eliminate its dependence on Java after having made it such a fundamental part of its stack.
If Oracle has the opportunity one day to renegotiate the deal by which it supplies this vital middleware to its largest competitor in enterprise applications, one has to wonder what the terms for renewal will be. A spokesperson has apparently insisted in private to one particularly sharp journalist that the firm has “loads of integrity” and that there is “really no reason for concern.” And I believe them, too. I don’t imagine for an instant that Oracle would ever stoop to denying a Java license outright to a competitor like SAP. But could they find reasons to raise the price? Maybe through the roof? You bet. After all, Oracle has a long and public history of price discrimination against competitors. It charges twice as much per core to license its database software for an IBM Power6 chip than it does for the most advanced Intel and AMD multicore processors.
Besides, when it comes to the future of Java, do we really want to rely on private verbal assurances about Oracle’s integrity? Wouldn’t it be better to have something in writing? As far as I know Larry Ellison is not the kind of person who does business on a handshake and a promise. On the contrary, he’s known as a stickler for legal details who will mobilize a small army of lawyers in the blink of an eye to defend his rights. It makes sense to hold him to the same standards. This is a once-in-a-lifetime opportunity for the Java community to wrest some concessions from the new owner of Java before the deal is set in stone. I doubt the DoJ actually wants to squelch the acquisition. But they might very well ask for some remedies before allowing Oracle to go ahead. Now is the time to think about what those remedies should be.
What could Oracle do to prove to the world that Java is safe in its hands? I have three suggestions:
- Offer an explicit patent covenant (i.e. promise not to sue) to GPL v2 licensees of the OpenJDK. Better yet, switch the OpenJDK to the GPL v3, which includes patent protection.
- Let Apache Harmony have the JCK test suite they have been asking for. Yes, this would allow a rival open source Java implementation backed by IBM and Google to gain a foothold in the market. But Google is already using Harmony in Android even without the certification. It’s probably better for Java to keep these elephants on the plantation rather than leaving them to strike out on their own in the jungle.
- Implement the resolution you (Oracle) submitted to the JCP Executive Committee back in 2007 calling for the Java Community Process to be transformed into a “legal entity with by-laws, governing body, membership, etc.” Give it an intellectual property rights policy that “permits the broadest number of implementations” while still maintaining “stringent compatibility requirements.” In other words, make the JCP into a real standards body fully controlled by its members.
Oracle can do the right thing if it wants to. It may have to give up some leverage over competitors. But setting Java free will make Java stronger, and better able to evolve and thrive in a software market where the survivors never stand still.
Please comment on this article below, or email Jeff Gould directly.
Government
Oracle
Sun 
Reader Comments (6)
At the end of the day does freeing java make business sense to Oracle? Do you think that Oracle bought Java so IBM and Google could benefit or is the more likely scenario that they bought it to benefit themselves? I am pretty sure Oracle will keep things status quo.
Maybe you missed "the meeting". Java is already "free"
What is the benefit to oracle in having alternative implementations that can call themselves java, or to give away control of the jcp?
You wrote: "If you get the wily idea of trying to combine the OpenJDK with some other piece of open source software, perhaps in an attempt to create a bigger and better Java, well then you’ve created a derivative work and Sun could hit you with patent infringement claims. Yes, that’s right folks, the GPL v2 does not include a patent covenant.".
That's completely bunk. The GPL grants you the right to use the original work and the right to make and distribute derived works. Nothing in the GPL confines its grants to copyright. This grant implies any necessary patent licenses are granted with it, provided you abide by the terms of the GPL. The defence against such a SUN patent claim would be explicit permission.
The GPLv3's patent provisions were intended to stop MS/Novell style deals. MS is a third party, and not a party to the GPL. Novell made a deal with MS so that MS wouldn't sue users of Novell's products. The goal of the GPLv3 was to prevent a contributor from decorating their versions of GPL software with quasi-indemnifications from 3rd parties. The provisions have nothing to do with contributors grants to users, which are adequately covered by GPLv2. Read GPLv3 section 11.
Apparantly, SAP seems to be also safe. As you find their information here, they seem to have licensed Java, and are running their own JVM based on Sun HotSpot Technology (should be Sun's VM sources, what else). Hopefully, though, this is a long term agreement ...