Looking at the method ConstructorUtils.getAccessibleConstructor(Constructor), I notice that the method checks if the declaring class is public. Should it not also make sure that the declaring class is either a top-level one or its enclosing class hierarchy are all public, too?
D