Oracle announced on Sept 14, 2021 that Java 17 and future versions of Java are now free again. In this blog, Pam Fulmer, Partner at Tactical Law Group, and David Woodard, Executive License Consultant at House of Brick, discuss the technical and legal implications of this announcement.
[David]: This announcement often gets misinterpreted as “all Java is now free again”, which is definitely not the case. You need to understand the technical and contractual aspects of this announcement to see if, and how, you may be able to use Java 17+ at no cost.
[Pam]: The announcement indicates that Java 17 and later are free under the new “Oracle No-Fee Terms and Conditions” (NFTC) license which allows for “running the Program for Your own personal use or internal business operations”.
However, the first paragraph of that agreement states:
Your use of this Program is governed by the No-Fee Terms and Conditions set forth below, unless you have received this Program (alone or as part of another Oracle product) under an Oracle license agreement (including but not limited to the Oracle Master Agreement), in which case your use of this Program is governed solely by such license agreement with Oracle.
Thus, according to its terms, the NFTC would not apply if an Oracle customer already has an Oracle Master Agreement (“OMA”) in place, which contains a Java subscription. This might lead Oracle customers who already have an OMA with a Java subscription to consider terminating the OMA if they want to use the “free” version of Java 17. That of course requires a review of the termination provision of the OMA. Paragraph 6 of the General Terms of the OMA governs termination as it pertains to Oracle programs. However, the clause does not provide for a termination for convenience, for either of the contracting parties. Instead, only a termination for cause due to a material breach that is not cured within 30-days is included in the provision. Therefore, Oracle customers who try to terminate their OMA in order to get the “free” Java 17 may well face pushback from Oracle. However, there may be potential arguments under California law that Oracle customers may be able to use should Oracle claim that the agreement cannot be terminated except for cause.
[David]: If you cannot use Java 17 for free because you have an existing OMA, you appear to have two choices: 1) continue to pay for a Java subscription and use Java 17 under that OMA, or 2) attempt to terminate your OMA, which might give rise to a dispute with Oracle. However, assuming that Oracle would not claim an Oracle customer is in breach for terminating the OMA, the Oracle customer would still need to upgrade all current paid subscription versions of Java to Java 17 to use Java 17 for free.
The older versions/updates of Java that did not require a subscription would continue to be free for the Oracle customer to use. But, versions/updates that are currently obtained under the OMA subscription would need to be upgraded to Java 17 to eliminate the subscription and to use Java for free. This could be quite an undertaking from a technical perspective, with possible code changes, and extensive regression testing. In this case “free” may have a significant cost for you.
A Long Term Support (LTS) version of a product has a specified period of time where it will be supported by the vendor. Thus, customers know that by using an LTS version, they will not be surprised by support ending abruptly at the vendor’s whim. Usually, the support periods for LTS versions will overlap, which gives the customer time to upgrade from one supported version to another.
Oracle has updated the release cadence for Long Term Support (LTS) versions of Java to every two years, and the odd numbered versions (17,19, etc) will be the LTS versions. Updates for a given LTS release will be available until one year after the next LTS release date thus giving customers one year of overlap to get upgraded to the next LTS version. Oracle will continue updating some older LTS releases, but you will need to get a subscription to use those updates. The even numbered versions will only be supported for a short time, and often are used by customers to try out new features in non-production environments
[Pam]: Oracle updated the Java Frequently Asked Questions (“FAQ”) to state:
Oracle will use the NFTC for JDK 17 and later releases. LTS releases, such as JDK 17, will receive updates under this license for one year after the release of the subsequent LTS. After the free use license period, Oracle intends to use the OTN License, the same currently used for Java 8 and 11 LTS releases, for subsequent updates.
So, if you are still running an older version of Java 17, for example, that falls under the Oracle Technology Network License Agreement for Oracle Java SE, it does not allow for production use of Java. If you wanted to keep using that older version, or want to update it if Oracle releases new updates for that version, you will need a subscription.
(This appears to mean, per the NFTC first paragraph, that Oracle customers would need a subscription for all Java versions, even newer versions like 19, 20, 21, etc., which would normally be free)
[David]: So, if you find yourself unable to upgrade off of Java 17 (or later as newer LTS’s roll out), then you are looking at now having to get a Java subscription for your entire Java estate once again. So, the decision to move into the free Java NFTC ecosystem should include a realistic assessment of your team’s capabilities to get upgraded to the newer Java version in a timely manner and stay updated.
Conclusion: Unless Oracle comes out and states that you can have free Java 17+ and older subscriptions under an OMA and the new NFTC in use at the same time, the first paragraph of the brand new NFTC would seems to indicate otherwise.