Uploaded image for project: 'Magnolia Personalization'
  1. Magnolia Personalization
  2. MGNLPN-615

Empty mgnl:assignedSegments can cause a lot exception in logging

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Neutral
    • None
    • None
    • None
    • None

    Description

      If you configure segments with empty value, when loading the page, logging will show a lot of NPE error.

      Steps to reproduce

      1. Edit page in pages app:
        1. Choose 1 component Featured Tours (By Tour Type)
          https://demoauthor.magnolia-cms.com/.magnolia/admincentral#app:pages-app:detail;/travel:edit
      2. Choose 1 variant
        1. Click chooseAudience in the action bar
        2. Add segment but with empty value
        3. Click save dialog

          Expected results

      • No error in logging when loading the page with variant

      Actual results

      • A lot of NPE errors were thrown in log.

      Development notes

      • Exception error:
      rsonalization.registry.segment.SegmentRegistryImpl: Could not find segment with id [] in registry
      info.magnolia.registry.RegistrationException: No segment registered for name: 
      	at info.magnolia.personalization.registry.segment.SegmentRegistryImpl.getSegment(SegmentRegistryImpl.java:59) ~[magnolia-personalization-segmentation-app-2.0.11.jar:?]
      	at info.magnolia.personalization.registry.segment.SegmentRegistryImpl.getAssignedSegments(SegmentRegistryImpl.java:118) [magnolia-personalization-segmentation-app-2.0.11.jar:?]
      	at info.magnolia.personalization.variant.RegistryVariantResolver.resolveVariant(RegistryVariantResolver.java:65) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.variant.AbstractVariantResolver.getVariantNode(AbstractVariantResolver.java:65) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.variant.EditorVariantResolver.getVariantNode(EditorVariantResolver.java:70) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.PersonalizationNodeWrapper.<init>(PersonalizationNodeWrapper.java:91) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.ComponentPersonalizationNodeWrapper.<init>(ComponentPersonalizationNodeWrapper.java:37) [magnolia-personalization-components-2.0.11.jar:?]
      	at jdk.internal.reflect.GeneratedConstructorAccessor870.newInstance(Unknown Source) [?:?]
      	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?]
      	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) [?:?]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:129) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.objectfactory.ObjectManufacturer.newInstance(ObjectManufacturer.java:99) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:134) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstanceWithParameterResolvers(GuiceComponentProvider.java:120) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.objectfactory.guice.GuiceComponentProvider.newInstance(GuiceComponentProvider.java:115) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.personalization.decoration.PersonalizationContentDecorator.wrapNode(PersonalizationContentDecorator.java:51) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.cache.CachingPersonalizationContentDecorator.wrapNode(CachingPersonalizationContentDecorator.java:46) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.cache.CachingPersonalizationContentDecorator.wrapNode(CachingPersonalizationContentDecorator.java:31) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.PersonalizationNodeIterator.nextNode(PersonalizationNodeIterator.java:77) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.PersonalizationNodeIterator.next(PersonalizationNodeIterator.java:63) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.personalization.decoration.PersonalizationNodeIterator.next(PersonalizationNodeIterator.java:35) [magnolia-personalization-core-2.0.11.jar:?]
      	at info.magnolia.jcr.iterator.FilteringRangeIterator.queueNext(FilteringRangeIterator.java:105) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.jcr.iterator.FilteringRangeIterator.hasNext(FilteringRangeIterator.java:65) [magnolia-core-6.2.12.jar:?]
      	at org.apache.jackrabbit.commons.iterator.FilteringNodeIterator.seekNext(FilteringNodeIterator.java:112) [jackrabbit-jcr-commons-2.20.3.jar:?]
      	at org.apache.jackrabbit.commons.iterator.FilteringNodeIterator.<init>(FilteringNodeIterator.java:42) [jackrabbit-jcr-commons-2.20.3.jar:?]
      	at info.magnolia.jcr.util.NodeUtil.getNodes(NodeUtil.java:669) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.jcr.util.NodeUtil.getNodes(NodeUtil.java:677) [magnolia-core-6.2.12.jar:?]
      	at info.magnolia.templating.elements.AreaElement.end(AreaElement.java:250) [magnolia-templating-6.2.12.jar:?]
      	at info.magnolia.templating.freemarker.AbstractDirective.execute(AbstractDirective.java:97) [magnolia-templating-6.2.12.jar:?]
      	at freemarker.core.Environment.visit(Environment.java:464) [freemarker-2.3.31.jar:2.3.31]
      	at freemarker.core.UnifiedCall.accept(UnifiedCall.java:102) [freemarker-2.3.31.jar:2.3.31]
      	at freemarker.core.Environment.visit(Environment.java:347) [freemarker-2.3.31.jar:2.3.31]
      	at freemarker.core.Environment.visit(Environment.java:353) [freemarker-2.3.31.jar:2.3.31]
      	at freemarker.core.Environment.process(Environment.java:326) [freemarker-2.3.31.jar:2.3.31]
      	at freemarker.template.Template.process(Template.java:383) [freemarker-2.3.31.jar:2.3.31]
      	at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:170) [magnolia-freemarker-support-6.2.12.jar:?]
      	at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:99) [magnolia-rendering-6.2.12.jar:?]
      

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              Unassigned Unassigned
              minh.nguyen Minh Nguyen
              AuthorX
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Checklists

                  Bug DoR
                  Task DoD