code: public static void preDestroy(Object obj, Logger log) throws Exception {
      List<Method> methodsToRun = getAnnotatedMethodsFromChildToParent(obj.getClass(), PreDestroy.class, log);
      for(Method aMethod : methodsToRun) {
        safeInvokeMethod(obj, aMethod, log);
      }
    }
docs: Calls all @PreDestroy methods on the object passed in called in order from child class to super class.
  
  @param obj The instance to inspect for Annotated methods and call them.
  @param log
  @throws Exception