Uploaded image for project: 'Definitions App'
  1. Definitions App
  2. CFGUI-114

Add DEBUG to #validateDefinition() in case of exceptions

    XMLWordPrintable

Details

    • Improvement
    • Resolution: Obsolete
    • Minor
    • None
    • None
    • None

    Description

      We've had a few instances where the Definitions app --> Problems subApp does not open. What seems to happen is a definition can be broken in an unexpected way and very little information is provided. We have been finding new types of broken configuration since the app was released.

      2019-06-18 09:23:15,363 ERROR agnolia.ui.framework.app.AppInstanceControllerImpl: Sub-app problems failed to start: null
      java.lang.NullPointerException: null
      	at info.magnolia.rendering.template.registry.validator.TemplateDefinitionValidator.validateDefinition(TemplateDefinitionValidator.java:91) ~[magnolia-rendering-5.7.3.jar:?]
      	at info.magnolia.pages.rendering.registry.validator.DialogAwareTemplateDefinitionValidator.validateDefinition(DialogAwareTemplateDefinitionValidator.java:71) ~[magnolia-pages-app-5.7.1.jar:?]
      	at info.magnolia.rendering.template.registry.validator.TemplateDefinitionValidator.validate(TemplateDefinitionValidator.java:80) ~[magnolia-rendering-5.7.3.jar:?]
      	at info.magnolia.config.registry.AbstractRegistry$1.lambda$getProblems$0(AbstractRegistry.java:241) ~[magnolia-configuration-5.7.3.jar:?]
      	at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
      

      It would be super helpful for support if we could get a DEBUG line in there to find the problem template quickly.

      protected void validateDefinition(Collection<DefinitionProvider.Problem> problems, DefinitionProvider<TemplateDefinition> definitionProvider) {
              TemplateDefinition definition = definitionProvider.get();
              log.debug("Validating definition: {}", definition.getId());
      
              String renderType = definition.getRenderType();
              validateRenderType(problems, "", renderType);
              validateTemplateScript(problems, "", definition.getTemplateScript(), renderType);
              validateModelClass(problems, "", definition.getModelClass());
              definition.getAreas().forEach((areaName, area) -> validateArea(definitionProvider, problems, "", area));
          }
      

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Checklists

                    Task DoD