Aller au contenu principal

Exception bei setLock(): lock is not supported for release store elements

Commentaires

3 commentaires

  • Zendesk API User
    Author: bIT_sosswald - 7/27/2020 7:32

    Hallo Sebastian,

    die Exception kommt, da versucht wird ein Objekt aus dem Released-State zu ändern. Diese Elemente sind sozusagen "read only" und können somit nicht geändert werden.

    Warum genau dir die ReferencedEntries aus getIncommingReferences() teilweise Objekte aus dem Released store zurückgeben, kann ich dir gerade nicht genau sagen.

    Versuche mal dir explizit die Page aus dem Current-State zu holen und dann die Operation auf diesem Objekt durchzuführen, etwa wie folgt:

    PageStoreRoot notReleasedPageStoreRoot = (PageStoreRoot) targetSiteTemplate.getProject().getUserService().getStore(Store.Type.PAGESTORE, false);

    ...

    Page currentPage = (Page) notReleasedPageStoreRoot.getStoreElement(page.getId());

    (Unschöner Code, weil du dir hier jedes Mal den Store erneut holst, aber zur schnellen Überprüfung, ob es dein Problem löst, sollte es reichen. :-) )

    Siehe hierzu auch: UserService (FirstSpirit Access-API)

    Ich hoffe die Idee hilft dir.

    Beste Grüße

    Sandro

    0
  • Zendesk API User
    Author: Peter_Jodeleit - 7/27/2020 18:11

    Die Erklärung für das Verhalten ist, das auch Seiten im Freigabestand eine Referenz auf ihr Template haben. Und damit haben also Templates auch eingehende Referenzen aus dem Freigabestand. Die Überprüfung, welche Variante du gerade betrachtest, kannst du in Zeile 8 einfügen:

    if (!page.getStore().isRelease()) { ... }

    0
  • Zendesk API User
    Author: sebbec - 7/28/2020 14:58

    Vielen Dank für die Antworten. Das Script läuft nun ohne Probleme durch und tut was es soll.

    0

Vous devez vous connecter pour laisser un commentaire.