TNS
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
NEW! Try Stackie AI
Java / Security / Software Development

Dead Code Detection Just Got Easier for Java Developers

A new integration helps Java teams automatically detect and remove dead code across enterprise applications, saving developer time and improving security.
May 15th, 2025 5:00pm by
Featued image for: Dead Code Detection Just Got Easier for Java Developers
Featured image via Unsplash+.

In a move to address productivity challenges facing enterprise Java development teams, Azul and Moderne this week announced a technical integration that will help organizations handle the burden of dead code in their Java applications. It will help development teams identify, remove and refactor unused and dead code.

The integration, launched at Moderne’s Code Remix conference, combines Azul’s runtime visibility and Java expertise with Moderne’s automated code refactoring platform to create a comprehensive solution for identifying and eliminating unused code — a persistent pain point for enterprise development teams.

The Hidden Productivity Challenge

According to Azul’s 2025 State of Java Survey & Report, 62% of respondents report that unused or dead code affects DevOps productivity, while a concerning 33% cite that more than half of their DevOps team’s time is wasted addressing false positives from Java-related security vulnerabilities.

“Application maintenance is not a sexy task for Java developers but is an essential part of keeping applications secure and running on supported modules and infrastructure,” said Scott Sellers, co-founder and CEO at Azul, in a statement. “By providing developers with a solution for remediating unused or dead code that is 100% accurate based on production application runtime data, Java teams can focus on updating, migrating and modernizing only the application code that matters, dramatically increasing developer productivity.”

From Insight to Action: How the Integration Works

The technical integration connects Azul’s Code Inventory feature, part of Azul Intelligence Cloud, with Moderne’s Platform that leverages OpenRewrite technology. Code Inventory identifies unused or dead code based on production Java runtime data, while Moderne’s platform uses this intelligence via OpenRewrite recipes to mark deprecation status and facilitate precise, large-scale removal of unused code.

Meanwhile, Martin Van Ryswyk, Azul’s chief product officer, explained: “We’re big fans of OpenRewrite as a technology and Moderne, and they already have all the mechanisms to, in a kind of a simple language, write recipes that say, ‘Go through my code and do X to it.’ So, we take our signal of ‘This code is no longer used,’ and with the integration that Moderne has written using OpenRewrite, it can go into the source code and mark it as deprecated.”

This approach provides a safe path forward, as Van Ryswyk notes: “You don’t actually want to delete it right away, because maybe it’ll eventually get used or maybe you’re a little risk-averse, but it’s a great way to mark it as deprecated. And when it was deprecated, how long it was deprecated, that way the next time a developer is in there working on it, they can say, ‘Oh, I can see this was deprecated long ago based on this data from Azul. Let’s take a look. Yep, no one’s used it since. Let’s just jettison this.'”

The Scale of the Problem

The magnitude of the unused code problem is significant across enterprises. “People just add stuff and never take anything out,” Van Ryswyk told The New Stack. “Whole modules that were to support some e-commerce initiative that happened last year that’s no longer relevant is all still in the code. Whenever you update, let’s say dependencies for security reasons, you’ve got to go through all of that dead code and update the Java code for the new dependency, or maybe you’re converting from Java 11 to Java 17, and so almost everything, including test harnesses, have to be updated.”

Jonathan Schneider, co-founder and CEO of Moderne, puts the scale in perspective, telling The New Stack: “One of our financial services customers, just one of the banks, has over 4 billion lines of code under management. It’s an enormous volume of data we’re dealing with. And not all that 4 billion is actively used, so trying to identify where that is and get that stuff out of the system is really part of the problem.”

A Customer-Driven Partnership

The integration originated from a real customer problem. In fall 2023, during discussions with a very large customer, Azul discovered that more than 50% of the customer’s code was unused.

“Best ideas come from customers and real problems,” noted Van Ryswyk. The customer appreciated the insights but was concerned about the implementation cost: “We’re going to have to spend some time getting that code out. How much is that going to cost us?”

After modeling the process with the customer, it still made “huge sense to buy the product, even if they were going to have to invest some time into closing that loop,” Van Ryswyk explained. This led Azul to contact Moderne and start working on an integration.

Bridging Runtime Insights With Code Transformation

“This partnership is about more than identifying unused and dead code — it’s about removing the barriers to meaningful modernization,” Schneider said in a statement. “By combining Azul’s production-aware insights with Moderne’s ability to safely and automatically transform code at scale, we’re giving Java teams a clear path from understanding to action. It’s a model for how runtime data and automated execution can work together to keep codebases lean, secure and ready for what’s next.”

The integration is particularly valuable for organizations undertaking major Java upgrades and framework migrations, as it can save enterprise development teams significant amounts of manual work in updating source code and fixing vulnerabilities, Azul said.

“It’s about closing the loop and operationalizing the data that we give people,” Van Ryswyk said, “and kind of going from a really good set of unique data you can’t get anywhere else to a solution that solves the problem, all the way to the code.”

Created with Sketch.
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.