code: @Override
    public final IProcessor lazyGet(
      final Map<String, Object> pAddParam,
        final String pBeanName) throws Exception {
      IProcessor proc = this.processorsMap.get(pBeanName);
      if (proc == null) {
        proc = this.fctBnProcessors.lazyGet(pAddParam, pBeanName);
        if (proc == null && this.additionalPf != null) {
          proc = this.additionalPf.lazyGet(pAddParam, pBeanName);
        }
        if (proc == null) {
          // locking:
          synchronized (this.processorsMap) {
            // make sure again whether it's null after locking:
            proc = this.processorsMap.get(pBeanName);
            if (proc == null
              && pBeanName.equals(PrcPageWithSubaccTypes.class.getSimpleName())) {
              proc = createPutPrcPageWithSubaccTypes(pAddParam);
            }
          }
        }
      }
      if (proc == null) {
        throw new ExceptionWithCode(ExceptionWithCode.CONFIGURATION_MISTAKE,
          "There is no processor with name " + pBeanName);
      }
      return proc;
    }
docs: <p>Get bean in lazy mode (if bean is null then initialize it).</p>
  @param pAddParam additional param
  @param pBeanName - bean name
  @return requested bean
  @throws Exception - an exception