I have a constructor that fails on the first call to new because an Exception of class javax.persistence.NoResultException being catch in one of the Cl
The class is loaded into the ClassLoader on first access. The first 'new' statement in your code loads the class into the ClassLoader, which subsequently checks whether it actually has access to all the dependencies of your class (ie. the NoResultException).
You're not making it clear what is being thrown by the ClassLoader, but my guess is it does throw a ClassNotFoundException detailing that the NoResultException is not on your classpath, so it cannot be loaded. That's also why it works when you remove the offending import and catch.