OpenJDK's AI Ban Isn't Really About Keeping AI Out
Oracle admits it can't detect machine-written code — the real mechanism is a legal attestation checkbox on every pull request.
On April 9, 2026, the OpenJDK Governing Board approved an interim policy that bans contributions containing content "generated, in part or in full, by large language models, diffusion models, or similar deep-learning systems." Not just source code — pull requests, mailing-list messages, wiki pages, and Java Bug System entries are all covered. Six months earlier, Larry Ellison stood on stage at Oracle AI World and declared: "The code that Oracle is writing, Oracle isn't writing. Our AI models are writing."
Both things are true, and the gap between them tells you more about where open source is heading than the ban itself does.
What the policy actually forbids
The interim policy is unusually absolute. The FAQ spells out the edge case that matters: if you have an AI generate 100 lines and rewrite ten of them yourself, you still can't contribute the result. There's no disclosure path, no "Assisted-by" trailer, no human-review exemption. AI-generated content is out, period, until Oracle proposes a permanent policy to the Governing Board.
What's still allowed is the read-only side: using generative AI privately to comprehend, debug, and review JDK code, or to research a change before writing it by hand. The policy even endorses this, noting that analysis of existing code "is where generative AI tools shine for established projects with large code bases."
Enforcement runs through Skara, OpenJDK's review tooling: every pull request gets a checkbox contributors must tick to affirm compliance. Reviewers are told to watch for tell-tale signs — Co-Authored-By trailers crediting a model, comments with gratuitous headings, defensively over-engineered code, emoji, or anything "uncannily cheerful or meticulous."
There's a practical wrinkle the FAQ creates for everyday tooling. IDE completion and refactoring are fine "so long as they are not based on large language models or similar deep-learning systems" — but modern IDEs increasingly are. JetBrains ships local-model full-line completion enabled by default in recent IntelliJ releases, which means a stock install of the most popular Java IDE arguably produces banned content every time you accept a grey suggestion. JDK contributors now need to know which of their editor's features are neural and which aren't, a distinction vendors don't exactly surface.
The checkbox is the real policy
Here's the thing: OpenJDK's own FAQ concedes that "reliably distinguishing human-generated content from AI-generated content is impossible." A ban you cannot enforce technically is not really a technical control. It's a legal one.
The tell is in the intellectual-property section. The Oracle Contributor Agreement requires that contributors own the rights to what they submit and can grant them to Oracle without restriction. With model-output copyright still the subject of active litigation, an AI-generated patch is a provenance question mark Oracle would be absorbing into the reference implementation of Java — the thing underneath a very large share of the world's banking, government, and enterprise systems. The checkbox converts an undetectable technical violation into a documented attestation. If tainted code surfaces later, the liability trail points at the contributor who ticked the box, not at Oracle.
Seen that way, the apparent hypocrisy of Ellison's "our AI models are writing" boast — which The Register gleefully skewered — mostly dissolves. When Oracle's own employees generate code with Oracle-sanctioned tools, Oracle owns the output and the risk either way. When an anonymous outside contributor does it, Oracle can't verify the provenance of what it's merging into GPL-licensed code it also ships commercially. The ban isn't anti-AI conviction; it's risk asymmetry. That doesn't make the optics less awkward, but it does make the policy more coherent than the headlines suggest.
The reviewer-burden rationale is the honest, human half. Maintainers of curl, QEMU, and half the projects on GitHub have spent two years describing the same failure mode: plausible-looking patches with plausible-looking tests that are subtly wrong or unmaintainable, each one costing a scarce senior reviewer an hour to reject. For a project where review capacity is the bottleneck, a bright-line rule is cheaper to administer than a judgment call on every PR.
Two camps, and Oracle is running both
The framing that OpenJDK "sets a precedent" gets the timeline backwards. Gentoo banned AI-generated contributions in April 2024, NetBSD followed weeks later declaring LLM output presumptively "tainted," and QEMU adopted its own prohibition in 2025. OpenJDK is the largest and most corporate project to join the prohibition camp — that's the news — but the camp existed.
The competing model is already established too. The Linux kernel merged coding-assistant guidelines built on disclosure: an Assisted-by: tag naming the agent and model, with the human contributor bearing full responsibility. Fedora's council approved essentially the same bargain in October 2025 — AI assistance is fine if disclosed, and you own what you submit.
The strangest part: Oracle is running the control group itself. GraalVM, developed by Oracle Labs outside OpenJDK governance and under the very same Oracle Contributor Agreement, explicitly permits AI coding assistants. Its policy makes attribution optional and anchors everything on accountability — if you can't explain, defend, and maintain an AI-assisted change, it gets rejected. Same company, same CLA, same legal environment, opposite conclusion. Whatever the two projects learn over the next year will be the closest thing this debate gets to a controlled experiment.
Where this lands
If you contribute to OpenJDK: tick the box honestly, keep Copilot and friends out of anything you submit — including bug reports and mailing-list prose — and audit your IDE's completion settings. AI as a reading aid is explicitly blessed; AI as a writing aid is a policy violation even at one line in a hundred.
For everyone else, my read is that the prohibition camp is holding a temporary line, and OpenJDK half-admits it — the policy is labeled interim, pending "further experience." Blanket bans are administratively cheap today, but they depend on detection heuristics ("watch for emoji") that were already unreliable when written, and they push AI use underground rather than into the open where reviewers could weight their scrutiny accordingly. The kernel/Fedora/GraalVM model — disclose the tool, own the output — is the only version that survives contact with a world where the tooling is in every editor by default. Expect OpenJDK's permanent policy to land closer to GraalVM's than to this ban. The interim rule's real legacy won't be keeping model-written code out of Java; it'll be the checkbox — the moment provenance attestation became part of the contribution workflow for one of the most important codebases in the world.
Sources & further reading
- OpenJDK Interim Policy on Generative AI — openjdk.org
- As Larry Ellison bets the farm, Oracle says it loves AI-written code, just not in OpenJDK — theregister.com
- Oracle's OpenJDK Bans Generative AI Contributions While Oracle's GraalVM Allows Them — infoq.com
- AI Coding Assistants - The Linux Kernel documentation — docs.kernel.org
- Council Policy Proposal: Policy on AI-Assisted Contributions — communityblog.fedoraproject.org
- Linux distros ban tainted AI-generated code - NetBSD and Gentoo lead the charge — tomshardware.com
Mariana covers the fast-moving world of machine learning and generative AI, with a particular focus on how these technologies are reshaping development workflows. When she isn't stress-testing the latest foundation models, she's usually at a local hackathon.
Discussion 1
so if detection is impossible, how are maintainers actually expected to verify compliance here? is it just trust-based, or are there any real consequences if someone gets caught lying on the attestation