code: public static void makeAccessible(Constructor<?> ctor) {
  		if ((!Modifier.isPublic(ctor.getModifiers()) || !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) &&
  				!ctor.isAccessible()) {
  			ctor.setAccessible(true);
  		}
  	}
docs: Make the given constructor accessible, explicitly setting it accessible
  if necessary. The {@code setAccessible(true)} method is only called
  when actually necessary, to avoid unnecessary conflicts with a JVM
  SecurityManager (if active).
  @param ctor the constructor to make accessible
  @see java.lang.reflect.Constructor#setAccessible