Problem

Entsprechende Threads in einigen benutzerdefinierten CQ-Dienste sperren sich aufgrund der Synchronisierung gegenseitig.

Lösung

Erstellen Sie Ihre CQ-Dienste so, dass jeder CQ-Dienst ein eigenes Ticket verwendet (und nicht das Systemticket). Overlay. eigene Implementierung von AbstractService#getServiceTicket(Ticket) und ein separates Ticket mit der Ticket#duplicate()-Methode erstellen.

Wenn Sie ticket.duplicate() verwenden, sollten Sie sicherstellen, dass diese Objekte geschlossen wurden (siehe [1]).

Hinweis:

Das Systemticket selbst wird beim Start von CQ initialisiert und nur beim Schließen von CQ geschlossen.

Weitere Informationen

Dieses Problem tritt auf, wenn benutzerdefinierte CQ-Dienste AbstractService erweitern und AbstractService#getServiceTicket(Ticket) nicht überlagern, um ein separates Ticket zu erhalten. Daher wird dieselbe JCR-Sitzung für alle CQ-Dienste verwendet.

[1] http://javadoc.day.com/com/day/cq/contentbus/Ticket.html#close()

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie