code: final void initialize() {
  
          if (!this.initialized) {
  
              synchronized (this) {
  
                  if (!this.initialized) {
  
                      logger.debug("[THYMELEAF] INITIALIZING TEMPLATE ENGINE");
  
                      // First of all, give subclasses the opportunity to modify the base configuration
                      initializeSpecific();
  
                      // We need at least one template resolver at this point - we set the StringTemplateResolver as default
                      if (this.templateResolvers.isEmpty()) {
                          this.templateResolvers.add(new StringTemplateResolver());
                      }
  
                      // Build the EngineConfiguration object
                      this.configuration =
                              new EngineConfiguration(
                                      this.templateResolvers, this.messageResolvers, this.linkBuilders,
                                      this.dialectConfigurations, this.cacheManager, this.engineContextFactory,
                                      this.decoupledTemplateLogicResolver);
                      ((EngineConfiguration)this.configuration).initialize();
  
                      this.initialized = true;
  
                      // Log configuration details
                      ConfigurationPrinterHelper.printConfiguration(this.configuration);
  
                      logger.debug("[THYMELEAF] TEMPLATE ENGINE INITIALIZED");
  
                  }
  
              }
  
          }
  
      }
docs: <p>
  Internal method that initializes the Template Engine instance. This method
  is called before the first execution of {@link TemplateEngine#process(String, IContext)}
  or {@link TemplateEngine#processThrottled(String, IContext)}
  in order to create all the structures required for a quick execution of
  templates.
  </p>
  <p>
  THIS METHOD IS INTERNAL AND SHOULD <b>NEVER</b> BE CALLED DIRECTLY.
  </p>
  <p>
  If a subclass of {@code TemplateEngine} needs additional steps for
  initialization, the {@link #initializeSpecific()} method should
  be overridden.
  </p>