Uploaded image for project: 'Magnolia'
  1. Magnolia
  2. MAGNOLIA-6604

Model class instantiated multiple times during rendering

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Critical Critical
    • 5.4.6
    • 5.4.5
    • rendering

      I created simple model class:

      import javax.jcr.Node;
      
      import org.slf4j.Logger;
      import org.slf4j.LoggerFactory;
      
      import info.magnolia.rendering.model.RenderingModel;
      import info.magnolia.rendering.model.RenderingModelImpl;
      import info.magnolia.rendering.template.configured.ConfiguredTemplateDefinition;
      
      public class TestModel<RD extends ConfiguredTemplateDefinition> extends RenderingModelImpl<RD> {
      	
      	private static final Logger log = LoggerFactory.getLogger(TestModel.class);
      
      	public TestModel(Node content, RD definition, RenderingModel<?> parent) {
      		super(content, definition, parent);
      		log.info("Constructor Ran");
      	}
      	
      	@Override
      	public String execute() {
      		log.info("Execute Ran");
      		return super.execute();
      	}
      	
      	public String getTestMethod() {
      		log.info("Test Method Ran");
      		return "";
      	}
      }
      

      The freemarker script:

      ${model.testMethod}
      

      The output in the log created when I request the page which has a component configured to use the model and script:

      2016-03-16 11:18:49,814 INFO  te.templating.basic.templates.components.TestModel: Constructor Ran
      2016-03-16 11:18:49,815 INFO  te.templating.basic.templates.components.TestModel: Execute Ran
      2016-03-16 11:18:49,822 INFO  te.templating.basic.templates.components.TestModel: Test Method Ran
      2016-03-16 11:18:49,844 INFO  te.templating.basic.templates.components.TestModel: Constructor Ran
      2016-03-16 11:18:49,844 INFO  te.templating.basic.templates.components.TestModel: Execute Ran
      2016-03-16 11:18:49,844 INFO  te.templating.basic.templates.components.TestModel: Test Method Ran
      2016-03-16 11:18:49,849 INFO  te.templating.basic.templates.components.TestModel: Constructor Ran
      2016-03-16 11:18:49,849 INFO  te.templating.basic.templates.components.TestModel: Execute Ran
      2016-03-16 11:18:49,850 INFO  te.templating.basic.templates.components.TestModel: Test Method Ran
      

        Acceptance criteria

              Unassigned Unassigned
              rgange Richard Gange
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD