in src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java [974:996]
private <ModelType> ModelType invokePostConstruct(ModelType object) throws InvocationTargetException, IllegalAccessException {
Class<?> clazz = object.getClass();
List<Method> postConstructMethods = new ArrayList<>();
while (clazz != null) {
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
if (method.isAnnotationPresent(PostConstruct.class)) {
addMethodIfNotOverriden(postConstructMethods, method);
}
}
clazz = clazz.getSuperclass();
}
Collections.reverse(postConstructMethods);
for (Method method : postConstructMethods) {
method.setAccessible(true);
Object result = method.invoke(object);
if (result instanceof Boolean && !((Boolean) result).booleanValue()) {
log.debug("PostConstruct method {}.{} returned false. Returning null model.", method.getDeclaringClass().getName(), method.getName());
return null;
}
}
return object;
}