The only thing that's paid is support, and the OpenJDK folks are Oracle employees (well, the ~90% of them who do ~95% of the work on OpenJDK). OpenJDK is an Oracle project in the same sense that Chromium is a Google project. In fact, OpenJDK (even more precisely - the OpenJDK JDK) is the name given to Oracle's implementation of the Java SE specification, but we do get contributions from other companies, such as this particular great enhancement to JFR (even external contributions also involve significant work by Oracle employees).
Anyway, if you don't want to buy a support service, either from Oracle or any of the other companies that sell it, the use of the JDK is free. There is no "enterprise" flavour of the JDK, paid features, or use restrictions as there used to be under Sun's management. Java is obviously freer now - as in beer or in speech - than it was 20 years ago.
Then why is it every time the Oracle reps come around, we are audited by our use of Java, what machines they are on, how many cores, etc as additional line items to our Oracle agreements that we have to fight, every year, to get removed? They state themselves, they charge per-employee, not per core now…
While everything you say sounds true, it’s not free - it’s gunpoint, it’s a lie, and if you’re big enough Oracle will come after you for subscription fees.
RedHat does the same crap. Heaven forbid you run RHEL on RHEL in containers, you’re gonna get fleeced.
Your company has bought support from Oracle - either for the JDK or for some other product bundle - and that's part of the terms of whatever commercial service your company bought. There are no audits and no cost for people who just download and use the JDK. Oracle doesn't collect names or contacts, you don't need to provide any when you download the JDK, and the licence expressly permits commercial use (even if you choose the non-open-source licence; the download page for the non-opensource distribution says [1]: "JDK N binaries are free to use in production and free to redistribute, at no cost"). There used to be lots of use restrictions back in the Sun days, but Oracle removed them.
> Heaven forbid you run RHEL on RHEL in containers, you’re gonna get fleeced.
You can run unlimited RHEL containers on a subscribed RHEL system. It's even set up where if you run a UBI container (a redistributable subset of RHEL content) on a subscribed RHEL system it automatically upgrades to full RHEL.
GraalVM is a separate product developed by an unrelated team. Its enterprise flavour is not considered an enterprise flavour of the JDK. The closest to an enterprise JDK from Oracle I can think of is the "Enterprise Performance Pack" for the 12-year-old Java 8, but it has nothing that isn't in the free and open recent releases (which actually include many more performance enhancements).
The idea there is that it's cheaper for companies with legacy software that isn't actively maintained to pay for some portion of the performance improvements in modern JVM generations than to ramp up maintenance to upgrade to modern Java, and this can help fund the continued evolution of OpenJDK.
what happens when the legacy code is migrated to the new java, which is supposedly easier to upgrade post java 8? who will pay for long term support if upgrading is so easy?
There's always legacy systems; it's part of the natural lifecycle of software. Also, what you buy is any kind of support, regardless of the version you're on. Support doesn't mean access to patches but an SLA for the tickets you file.
What rug pull do you picture could happen at this stage? OpenJDK is the reference spec. Fully open source. Stewarded by multiple companies. Even if Oracle somehow managed to force the whole thing closed source (not sure that's even possible?) you've got all the other contributors who'd "hell no", fork and away you go. Which version of Java do you think the community would go with? There's no way it'd work.