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

Version workspace name comparison issue (magnolia-mgnlVersion not equal to mgnlVersion)

    XMLWordPrintable

Details

    • Sprint 4 (Kromeriz)
    • 3

    Description

      We have override BaseVersionManager in order to add Label support on versions.
      One version root call is failing (org.apache.jackrabbit.core.version.VersionHistoryImpl.hasVersionLabel(javax.jcr.version.Version version, String label) ) due to

          private void checkOwnVersion(Version version)
                  throws VersionException, RepositoryException {
              if (!version.getParent().isSame(this)) {
      .....
      
      version.getParent() = ContentDecoratorVersionWrapper.getParent() seems to be wrapped correctly but then
      version.getParent().isSame(this) = DelegateNodeWrapper. isSame(Item otherItem)
      
      failed in 
      
      getSession().getWorkspace().getName(). --> magnolia-mgnlVersion
      equals(
      otherItem.getSession().getWorkspace().getName()) --> mgnlVersion
      
      

      In order to reproduce add the following test method in
      info.magnolia.cms.core.version.BaseVersionManagerTest

          @Test
          public void getVersionForALabel() throws RepositoryException {
              // GIVEN
              String label = "label";
              VersionManager versionManager = VersionManager.getInstance();
              // Create node structure
              Node node = MgnlContext.getJCRSession(RepositoryConstants.WEBSITE).getRootNode().addNode("test", NodeTypes.Content.NAME);
              Node firstLevel = node.addNode("first-level", NodeTypes.Content.NAME);
              firstLevel.setProperty("text", " firstLevel V1");
              Node secondLevel = firstLevel.addNode("second-level", NodeTypes.Content.NAME);
              secondLevel.setProperty("text", " secondLevel V1");
              node.getSession().save();
      
              // Create version
              Version v1 = versionManager.addVersion(node);
              // Add label
              v1.getContainingHistory().addVersionLabel(v1.getName(), label, true);
              Version v2 = versionManager.addVersion(node);
              assertEquals("magnolia-mgnlVersion", v2.getSession().getWorkspace().getName());
      
              // WHEN
              Version baseVersion = versionManager.getBaseVersion(node);
              assertEquals("magnolia-mgnlVersion", baseVersion.getSession().getWorkspace().getName());
              VersionHistory versionHistory = versionManager.getVersionHistory(node);
              assertEquals("magnolia-mgnlVersion", versionHistory.getSession().getWorkspace().getName());
      
              // WHEN
              boolean haveLabel = versionHistory.hasVersionLabel(v2, label);
      
              // THEN
              assertTrue(haveLabel);
          }
      

      Checklists

        Acceptance criteria

        Attachments

          Activity

            People

              rsiska Robert Šiška
              ehechinger Eric Hechinger
              Votes:
              0 Vote for this issue
              Watchers:
              3 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