Problem
Der Fehler, ähnlich dem Folgenden „No matching property definition: cmd = advance“, wird in der Datei „AEM error.log“ beobachtet:
13.04.2017 08:28:20.094 *ERROR* [10.26.69.136 [1492086500086] POST /content/geometrixx/en HTTP/1.1] org.apache.sling.servlets.post.impl.operations.ModifyOperation Exception during response processing. javax.jcr.nodetype.ConstraintViolationException: No matching property definition: cmd = advance at org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.setProperty(NodeDelegate.java:522) at org.apache.jackrabbit.oak.jcr.session.NodeImpl$35.perform(NodeImpl.java:1358) at org.apache.jackrabbit.oak.jcr.session.NodeImpl$35.perform(NodeImpl.java:1346) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:202) at org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:112) at org.apache.jackrabbit.oak.jcr.session.NodeImpl.internalSetProperty(NodeImpl.java:1346) at org.apache.jackrabbit.oak.jcr.session.NodeImpl.setProperty(NodeImpl.java:432) at org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.store(SlingPropertyValueHandler.java:592) at org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.setPropertyAsIs(SlingPropertyValueHandler.java:305) at org.apache.sling.servlets.post.impl.helper.SlingPropertyValueHandler.setProperty(SlingPropertyValueHandler.java:158) at org.apache.sling.servlets.post.impl.operations.ModifyOperation.writeContent(ModifyOperation.java:411) at org.apache.sling.servlets.post.impl.operations.ModifyOperation.doRun(ModifyOperation.java:101) at org.apache.sling.servlets.post.AbstractPostOperation.run(AbstractPostOperation.java:92) at org.apache.sling.servlets.post.impl.SlingPostServlet.doPost(SlingPostServlet.java:202) at org.apache.sling.api.servlets.SlingAllMethodsServlet.mayService(SlingAllMethodsServlet.java:149) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:345) at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:376) at org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:547) at org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:77) at com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:96) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:133) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:371) at com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:171) at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:68) at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) at org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49)
Ursache
Bekannter Produktfehler CQ-49206.
Das Problem tritt beim Beenden eines Workflow-Dialog-Teilnehmerschritts auf, der nur Daten mit dem Workflow-Objekt und nicht mit der Payload speichert. Die POST-Operation versucht, die Daten mit der Payload zu speichern (und kann dabei scheitern). Das Sling Post Servlet bekommt keine ./ vorangestellte Felder, so dass versucht wird, die Werte wie cmd = advance in der Payload zu speichern.
Lösung
Der Fehler wird in AEM 6.4 behoben, welches nächstes Jahr veröffentlicht wird. In der Zwischenzeit kann das Aktualisieren der Payload als Problemumgehung verwendet werden.