Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Oracle's OpenJDK builds are only updated for six months after each release, while Adoptium receives long-term support (like the commercial Oracle JDK).


No one offers free long-term support. The free "long-term support" releases merely backport some fixes from the mainline to the old release, so only the intersection between the old version and the newest one is maintained in free distributions. A real LTS service includes original bug fixes. If you want the entire JDK to be maintained you have to either use the current version (completely free) or pay someone for a proper LTS service. The LTS service that Oracle offers is how OpenJDK is funded.


Can't upvote this response enough! Thank you Ron. You corrected my understanding on this a few years ago in a Reddit thread on /r/java. I've tried to convey this response ever since. You are NOT getting an LTS release from anyone outside of Oracle. Others will provide backports and that might be "good enough". If you're not paying for an LTS, you may as well update to each new release (as long as nothing else breaks).


To be fair, a few other companies also have excellent OpenJDK developers (although not as many as Oracle) and they also offer LTS services that cover the entire JDK, but no one offers one for free.


Yes! the "free" thing being the main difference. Thanks!


My understanding is:

Oracle publishes updates for latest release until the next release.

Then they drop maintenance of that branch, and RedHat picks it up (at least they did for 8, 11 and 17) and keep supporting/backporting fixes, with the help of other vendors and the community.

So when you are using 8/11/17 from RedHat/Adoptium/Corretto/you name it, you are actually using what RedHat provides to its customers as LTS, unless they have some private build, which I seriously doubt.

I wasn't able to find out what exactly Oracle does for their private LTS releases, do they use the public maintenance branch as a base of their private branch? Or do they continue their own private branch independently from what the community maintains? That would mean that the older the branch is (say jdk11u) the more differences there are between Oracle JDK and what you get from RedHat/Adoptium/...

On top of that Amazon provides support for Corretto on AWS, if you are using e.g. EC2 you get it as part of the fees, not exactly free, but cheap, considering you already pay for the VMs.

I appreciate any corrections/clarifications.


> Oracle publishes updates for latest release until the next release.

This is changing every now and again. For example, the Oracle JDK builds for JDK 21 will be offering free updates for three years (https://www.oracle.com/java/technologies/downloads/)

> and keep supporting/backporting fixes, with the help of other vendors and the community. So when you are using 8/11/17 from RedHat/Adoptium/Corretto/you name it, you are actually using what RedHat provides to its customers as LTS, unless they have some private build, which I seriously doubt.

This is where things get complicated, and given that there are all done by companies that fund their Java operations by selling support -- just as Oracle does -- clearly they don't offer their paid service for free. What you get for free is some backports from the mainline, i.e. only the intersection of the old and current JDK is maintained. Now, I believe that Red Hat specifically offers the same builds as they do to customers, that is not what you want if you really care about a fully maintained JDK. And that is for the following reason: If you're stuck on an old version, that probably means you're using some aspect of the JDK that's been removed or else you'd be using a new version. But the only things we remove are things that aren't widely used. This means that the fix you need is probably not the same as one some other customer who is stuck on the old version needs. If you're not a customer, your issue will not be fixed because no one offers original work on old releases for free.

Of course, if your software is heavily maintained, the safest, most secure, and cheapest option is to always use the current version rather than an old one. Once you get used to doing that, it's also the easiest.


Due to the GPL, eventually all commits will find their way into the OpenJDK repos, it is sort of similar to how vulnerabilities are handled — with paid support, you will be the first to get updates. Also, since Oracle does most of the development on the main branch as is, they have deep understanding of those patches - while during backporting it may not be as expertly implemented.

But Oracle also backports commits to older JDKs, e.g. Java 8 is supported for 2030, though that is paid.

The main takeaway is that it is still a singular project where bugfixes definitely, but even most custom features find their way eventually back to mainline (e.g. it was the case that Microsoft made some specific feature for their usecase, that was later merged).


Even the commercial OracleJDK is free to use, as long as you stay on the latest LTS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: