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

Publishing a page with variants leads to an exception

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Neutral
    • None
    • None
    • None

    Description

      Steps to reproduce

      1. Create page with multiple variants
      2. Configure activation command for personalization to also include mgnl:variant
      3. Publish the page

      Expected results

      1. Page is published including variants

      Actual results

      1. Errors related to the variant observation mechanism appear
      2. 2021-02-19 13:55:39,227 ERROR registry.variant.ConfiguredVariantObservingManager: Unable to create variant provider from variant node [node /Emocion/variants/variant-2/cuerpo/0111110]
        javax.jcr.InvalidItemStateException: Item does not exist anymore: 0125efa3-94c9-41e2-91cf-d6e18318ba44
        	at org.apache.jackrabbit.core.ItemImpl.itemSanityCheck(ItemImpl.java:116) ~[jackrabbit-core-2.18.1.jar:2.18.1]
        	at org.apache.jackrabbit.core.ItemImpl.sanityCheck(ItemImpl.java:104) ~[jackrabbit-core-2.18.1.jar:2.18.1]
        	at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java:2279) ~[jackrabbit-core-2.18.1.jar:2.18.1]
        	at info.magnolia.personalization.variant.BaseVariantManager.getAllVariants(BaseVariantManager.java:70) ~[magnolia-personalization-integration-1.6.3.jar:?]
        	at info.magnolia.personalization.registry.variant.ConfiguredVariantsProvider.<init>(ConfiguredVariantsProvider.java:48) ~[magnolia-personalization-integration-1.6.3.jar:?]
        	at info.magnolia.personalization.registry.variant.ConfiguredVariantObservingManager.createProvider(ConfiguredVariantObservingManager.java:76) [magnolia-personalization-integration-1.6.3.jar:?]
        	at info.magnolia.personalization.registry.variant.ConfiguredVariantObservingManager.reload(ConfiguredVariantObservingManager.java:66) [magnolia-personalization-integration-1.6.3.jar:?]
        	at info.magnolia.cms.util.WorkspaceObservingManager$1$1.doExec(WorkspaceObservingManager.java:129) [magnolia-core-5.7.8.jar:?]

      Workaround

      1. Do not publish with mgnl:variant rule
      2. Programatically increase delay and maxDelay on the ConfiguredVariantObservingManager

      Development notes

      This behavior happens because publication is removing nodes on pages and variants, and the observation mechanism kicks in and BaseVariantManager runs into InvalidItemStateException of some nodes because it's session is not aware of the changes made by publishing.

      Checklists

        Acceptance criteria

        Attachments

          Issue Links

            Activity

              People

                jbenito Javier Benito
                jsimak Jaroslav Simak
                Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  Checklists

                    Bug DoR
                    Task DoD

                    Time Tracking

                      Estimated:
                      Original Estimate - Not Specified
                      Not Specified
                      Remaining:
                      Remaining Estimate - 0d
                      0d
                      Logged:
                      Time Spent - 0.5d
                      0.5d