Remember how we found our suspects in Hibernate back in Chapter 4, Analyze Hotspots in Large-Scale Systems? Let’s zoom in on our suspects, as we do in the following image. Now we can figure out what’s going on by looking at their names.

Both SessionImpl.java and SessionFactoryImpl.java have names that sound suspicious. Sessions are key concepts in ORM frameworks, such as Hibernate—so it’s clear these files must have a lot of application logic inside.
Both modules are large. (Remember: the diameter of the circle represents the size dimension.) Combined with their very general names, we can assume that they are real problems and not false positives. If you were maintaining this system, I’d recommend you investigate these hotspots deeper.
As you go through the top hotspots, you pass the same judgment on the AbstractEntityPersister. Persisting entities seems to pretty much nail what an ORM is about. Its prefix is a concern, too. To abstract means to take away—if the abstract representation of an entity persister still consists of 4,000 lines of code, you know you’ve found a candidate for refactoring.

The module build.gradle is another story. We can tell that it’s part of the build system. Build files can still pose problems (I’ve spent years trying to debug legacy makefiles; that’s time I will never get back), but its modest 402 lines of code suggests it’s at least comprehensible.
Finally, we get to the trickiest module. Let’s look at our analysis results again. By virtue of its name alone, Configuration.java would be considered a false positive because it’s a configuration file. But its code size of 2,600 lines should make alarm bells go off. Perhaps there’s more than plain configuration settings in there?
This is where our heuristics of using names and code size reach their limits. We either need to manually inspect Configuration.java or use more sophisticated methods to understand the module’s complexity.
In the next chapter, you’ll learn a quick way to estimate complexity. Until then, let’s put Configuration.java on hold and go over what to do with the hotspots we’ve found so far.