Problem
Wenn die Nutzlast eines aktiven Workflows verschoben oder gelöscht wird, wird der Workflow-Posteingang immer als leer angezeigt, selbst wenn es ausstehende Arbeitselemente gibt. In diesem Fall wird in error.log ein Fehler wie der untenstehende angezeigt.
*ERROR* [164.39.7.84 [1277376827098] GET
/libs/cq/workflow/content/console/inbox.json HTTP/1.1]
org.apache.sling.engine.impl.SlingMainServlet service: Uncaught SlingException
java.lang.NullPointerException
at com.day.cq.collab.commons.impl.CommentJcrPathBuilder.buildPath(CommentJcrPathBuilder.java:47)
at com.day.cq.workflow.ui.impl.JcrPathBuilderManagerImpl.getPath(JcrPathBuilderManagerImpl.java:47)
at org.apache.jsp.libs.cq.workflow.components.console.inbox.json_jsp._jspService(json_jsp.java:192)
at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
Lösung
Dieses Problem tritt nur bei CQ5.3 auf.
Um dieses Problem zu beheben, installieren Sie das angehängte Paket bzw. die Überlagerung /libs/cq/workflow/components/console/inbox/json.jsp wie folgt:
...
for (int i=0; i<items.length; i++) {
WorkItem wi = items[i];
// add the following check
if(wi.getWorkflowData().getPayloadType().equals("JCR_PATH")) {
try {
if (!session.itemExists((String)wi.getWorkflowData().getPayload())) {
continue;
}
} catch (RepositoryException ace) {
continue;
}
}
// end
if (!isAllowedToReadPayload(wi, session)) {
continue;
}
...
Dadurch wird sichergestellt, dass alle folgenden Arbeitsaufgaben angezeigt werden (mit Ausnahme der fehlerhaften).
Gilt für
CQ 5.3
Herunterladen