code: public void populateParameter(ActionRuntime runtime, OptionalThing<VirtualForm> optForm) throws ServletException {
          if (!optForm.isPresent()) {
              return;
          }
          final VirtualForm virtualForm = optForm.get();
          if (handleJsonBody(runtime, virtualForm)) {
              return;
          }
          MultipartRequestHandler multipartHandler = null;
          if (isMultipartRequest()) {
              final MultipartRequestWrapper wrapper = newMultipartRequestWrapper(requestManager.getRequest());
              ContainerUtil.overrideExternalRequest(wrapper);
              multipartHandler = createMultipartRequestHandler();
              multipartHandler.handleRequest(wrapper);
              if (MultipartRequestHandler.findExceededException(wrapper) != null) {
                  return; // you can confirm exceeded by the static find method
              }
          }
          final FormMappingOption option = adjustFormMapping(); // not null
          final Object realForm = virtualForm.getRealForm(); // not null
          final Map<String, Object> parameterMap = prepareRequestParameterMap(multipartHandler, option);
          try {
              for (Entry<String, Object> entry : parameterMap.entrySet()) {
                  final String name = entry.getKey();
                  final Object value = entry.getValue();
                  try {
                      setProperty(virtualForm, realForm, name, value, null, option, null, null);
                  } catch (Throwable cause) {
                      handleIllegalPropertyPopulateException(realForm, name, value, runtime, cause); // adjustment here
                  }
              }
          } finally {
              keepParameterForInOutLoggingIfNeeds(parameterMap);
          }
      }
docs: ========