Many times I get stacktraces like this one (please see the arrow for the confusing line):
org.springframework.dao.DataIntegrityViolationException: could not exec
$
is an allowed character in class names.
The name SimpleDetectorPersistenceService$$EnhancerBySpringCGLIB$$66303639
hints that it is a class which was dynamically generated at runtime by Spring framework using CGLIB.
They use $$
and a numeric offset to make this class name unique to avoid conflicts with existing classes.
The string (<generated>)
in the stracktrace too was generated by CGLIB:
When CGLIB creates a class at runtime it uses <generated>
as placeholder for the name of the source file. The stacktrace then simply prints this string instead of the real source file and line number.