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

Activation problem with MixinType "lockable"

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • 4.5.9, 5.0
    • 4.5.7
    • None
    • None

      We have another problem on activating our content. The problem is that nodes which where created by the "NodeUtil.createPath" of the magnolia-core, don't have the MixinType "lockable". This will cause a output in the error log.
      And we think it will also cause problems, if the Node can't be locked for activation.
      So we created our own methode:

      	public static Node getOrCreateNode(Node parent, String relPath, String primaryNodeTypeName) throws RepositoryException, PathNotFoundException, AccessDeniedException {
      		return createPath(parent, relPath, primaryNodeTypeName, false);
      	}
      
      	public static Node createPath(Node parent, String relPath, String primaryNodeTypeName, boolean save) throws PathNotFoundException, ItemExistsException, VersionException, ConstraintViolationException, LockException, RepositoryException {
      		// remove leading /
      		String currentPath = StringUtils.removeStart(relPath, "/");
      
      		if (StringUtils.isEmpty(currentPath)) {
      			// Here we add the MixinType lockable
      			parent.addMixin(JcrConstants.MIX_LOCKABLE);
      
      			return parent;
      		}
      
      		Node root = parent;
      		String[] names = currentPath.split("/");
      
      		for (int i = 0; i < names.length; i++) {
      			String name = names[i];
      			if (root.hasNode(name)) {
      				root = root.getNode(name);
      
      				// Here we add the MixinType lockable
      				root.addMixin(JcrConstants.MIX_LOCKABLE);
      			} else {
      				final Node newNode = root.addNode(name, primaryNodeTypeName);
      
      				// Here we add the MixinType lockable
      				root.addMixin(JcrConstants.MIX_LOCKABLE);
      
      				if (save) {
      					root.getSession().save();
      				}
      				root = newNode;
      			}
      		}
      		return root;
      	}
      

      But the problem isn't solved. The MixinType is set to the Nodes (as you can see in the exported xml file) but the error still appear. The strange thing is, that it only appears at Nodes of the type "dataItemNode".
      The affected Nodes are not activated.
      I added a exported Node to this issue on which the activation problem happen.

      Maybe it's a sub of http://jira.magnolia-cms.com/browse/MAGNOLIA-4872.

      Thanks in advance.

      Best regards

        Acceptance criteria

              jsimak Jaroslav Simak
              jensdenke Jens Denke
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Bug DoR
                  Task DoD