code: public static <T extends AccessibleObject> T makeAccessible(final T obj) {
      if (obj != null && !obj.isAccessible()) {
        PrivilegedProcessor processor = PROCESSORS_QUEUE.poll();
        if (processor == null) {
          processor = new PrivilegedProcessor();
        }
        processor.setAccessibleObject(obj);
        AccessController.doPrivileged(processor);
        if (!PROCESSORS_QUEUE.offer(processor)) {
          throw new Error("Unexpected! can't queue a processor");
        }
      }
      return obj;
    }
docs: Make accessible an accessible object (if it is not a null), AccessController.doPrivileged will be
  called.
  
  @param obj an object to make accessible, it can be null.
  @see AccessController#doPrivileged(java.security.PrivilegedAction)