code: @Override
    public final IEntityFileReporter lazyGet(
      final Map<String, Object> pAddParam,
        final String pBeanName) throws Exception {
      IEntityFileReporter proc =
        this.reportersMap.get(pBeanName);
      if (proc == null) {
        // locking:
        synchronized (this) {
          // make sure again whether it's null after locking:
          proc = this.reportersMap.get(pBeanName);
          if (proc == null
            && pBeanName.equals(InvoiceReportPdf.class.getSimpleName())) {
            proc = lazyGetInvoiceReportPdf(pAddParam);
          }
        }
      }
      if (proc == null) {
        throw new ExceptionWithCode(ExceptionWithCode.CONFIGURATION_MISTAKE,
          "There is no entity 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