Details
-
Bug
-
Resolution: Unresolved
-
Trivial
-
None
-
None
-
None
Description
If you happen to trigger the exception here:
@Override
public NodeFilteringPredicate getNodePredicate() {
return (NodeFilteringPredicate) super.getNodePredicate();
}
@Override
public void setNodePredicate(AbstractPredicate<Node> propertyPredicate) {
if (propertyPredicate instanceof NodeFilteringPredicate) {
super.setNodePredicate(propertyPredicate);
} else {
throw new IllegalArgumentException(String.format("Expected instances of {%s} but got {%s}", PropertyFilteringPredicate.class, propertyPredicate.getClass()));
}
}
You can end up with a misleading error message about expecting a PropertyFilteringPredicate. When really it should be expecting a NodeFilteringPredicate. It looks like the result of a careless copy paste from the above DefaultFilter#setPropertyPredicate method which led to this issue.
2019-12-05 15:02:13,426 ERROR fo.magnolia.ui.contentapp.browser.BrowserPresenter: An error occurred while executing action [MyAction]
info.magnolia.ui.api.action.ActionExecutionException: Action execution failed for action: MyAction
at info.magnolia.ui.api.action.AbstractActionExecutor.execute(AbstractActionExecutor.java:64) ~[magnolia-ui-api-5.6.10.jar:?]
Caused by: java.lang.IllegalArgumentException: Expected instances of {class info.magnolia.jcr.predicate.PropertyFilteringPredicate} but got {class ch.uzh.module.versioning.MyPredicate}
at info.magnolia.importexport.command.JcrExportCommand$DefaultFilter.setNodePredicate(JcrExportCommand.java:233) ~[magnolia-core-5.6.10.jar:?]
Checklists
Acceptance criteria