docs: @SuppressWarnings({ "rawtypes", "unchecked" })
      public void invokeMethod(final Class clazz, final String methodName, final Object instance) {
          // instance can be null for the static application main method
          AccessController.doPrivileged(new PrivilegedAction() {
              @Override
              public Object run() {
                  try {
                      final Method m = clazz.getDeclaredMethod(methodName);
                      if (!m.isAccessible()) {
                          m.setAccessible(true);
                          m.invoke(instance);
                          m.setAccessible(false);
                          return m;
                      } else {
                          m.invoke(instance);
                          return m;
                      }
                  } catch (Exception e) {
                      if (tc.isDebugEnabled()) {
                          Tr.debug(tc, e.getMessage());
                      }
                      return null;
                  }
              }
          });
      }