[MAGNOLIA-4875] Activation problem with MixinType "lockable" Created: 27/Feb/13  Updated: 10/Jun/13  Resolved: 10/May/13

Status: Closed
Project: Magnolia
Component/s: None
Affects Version/s: 4.5.7
Fix Version/s: 4.5.9, 5.0

Type: Bug Priority: Critical
Reporter: Jens Denke Assignee: Jaroslav Simak
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: XML File data.travelAgency.Koeln.ATLASREISEN_13009.employees.Ann-Kathrin-Wiesinger-22498.countries-1.xml     Text File error_log.txt    
Issue Links:
Cloners
is cloned by MGNLACTIVATION-20 CLONE - Activation problem with Mixin... Closed
relation
supersession
supersedes MAGNOLIA-4891 Some nodes in config repository don't... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

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



 Comments   
Comment by Jaroslav Simak [ 10/May/13 ]

Reopened: nodes aren't saved after adding mixin. this causes exception like in MGNLACTIVATION-27.

Generated at Mon Feb 12 03:59:52 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.