apetrov
I'm new here

Version wiederherstellen nach Objekt verschieben

Jump to solution

Hallo Community, wenn ich in einem Store ein Element in der Tiefe verschiebe, kann ich danach das Vaterelement nicht mehr auf frühere Revisionen zurückführen. Ich habe folgenden Ausganszustand:

1.png

Danach verschiebe ich das Verzeichnis Impressum in der Tiefe:

2.png

Nun möchte ich das Vaterelement ("headernavigation") auf eine ältere Revision wiederherstellen um so den alten Zustand wiederzubekommen. Führe ich das Wiederherstellen rekursiv (mit Wiederherstellung der Kindelemente) aus, erhalte ich folgende Fehlermeldung:

3.png

Wie könnte man das programmatisch mit der API lösen?

Ich versuche das ganze auch über die API zurückzusetzen und benutze dafür die AccessUtil.revert(...) Methode. Allerdings kann ich dort diese Exception nicht abfangen, da sie nicht geworfen wird. Was also kann man tun?

Grüße Artem Petrov

0 Kudos
1 Solution

Accepted Solutions

Hallo,

das Problem wurde inzwischen in FS5 behoben und wird mit dem FS5.1-Release verfügbar sein.

Viele Grüße

Michaela

View solution in original post

0 Kudos
8 Replies
MichaelaReydt
Community Manager

Hallo,

ich habe versucht, den Fehler im Mithras-Demo-Projekt per manuellem Verschieben  und Zurücksetzen nachzuvollziehen. Initial sind in diesem Projekt alle Struktur-Ordner freigegeben.

Bei mir taucht die Exception unerklärlicherweise nicht bei allen Ordnern auf.

Verschiebe ich den Ordner "Stellenangebote" in den Ordner "Unternehmen" und setze anschließend den Vaterknoten "Ueber uns" zurück, funktioniert dies ohne Probleme.

Verschiebe ich jedoch den Ordner "Solarspeicher" in den Ordner "Netzanschlusseinheiten" und versuche anschließend den Ordner "Produkte" zurückzusetzen. erhalte ich ebenfalls die angegebene Exception.

Ich werde hierfür ein internes Ticket öffnen. (Edit: interne ID #137616)

Gruß,

Michaela

Exception:

INFO:  02.05.2013 15:20:46.708 starting revert on server in project '11137' in store 'SITESTORE' for element '11271'

INFO:  02.05.2013 15:20:46.708 settings: checkOnlyMode=false, revision=19626

INFO:  02.05.2013 15:20:46.716 found 0 missing outgoing reference(s)

ERROR: 02.05.2013 15:20:46.718 an unexpected error occurred

FSVersion=5.0_BETA.308.56412#2226;JDK=1.7.0_13 32bit Oracle Corporation;OS=Windows 7 6.1 x86;Date=02.05.2013 15:20:46

java.lang.IllegalStateException: element with ID 12757 cannot be reverted, parent has changed

    at de.espirit.firstspirit.server.storemanagement.StoreManagerImpl.revert(StoreManagerImpl.java:1246)

    at de.espirit.firstspirit.store.access.DefaultStoreElement.revert(DefaultStoreElement.java:1684)

    at de.espirit.firstspirit.server.storemanagement.ServerRevertAction.call(ServerRevertAction.java:168)

    at de.espirit.firstspirit.server.storemanagement.ServerRevertAction.call(ServerRevertAction.java:50)

    at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:415)

    at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:396)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:545)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)

    at java.util.concurrent.FutureTask.run(FutureTask.java:166)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:722)

    at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:37)

ERROR: 02.05.2013 15:20:46.718 revert process finished with errors

Hallo Artem,

hat Dir die Antwort von Michaela bei diesem Posting weiter geholfen, so dass dieser Thread geschlossen werden kann oder benötigst du noch weitere Antworten? Um den aktuellen Stand des oben erwähnten Tickets herauszufinden kannst Du dich mit der ID an den Helpdesk wenden.

Viele Grüße

René

0 Kudos

Das internen Ticket ist noch offen, weshalb es für diesen Besonderen Fall derzeit noch keine konkrete Lösung gibt.

0 Kudos

Hallo,

ich würde für die Bearbeitung des Problems gern auf das Helpdesk verweisen, da das Helpdesk der Ansprechpartner für interne Tickets ist und nach deren Bearbeitung auch das entsprechende Ergebnis kommuniziert.

Diesen Thread würde ich daher an dieser Stelle schließen, auch wenn das interne Ticket noch offen ist.

Viele Grüße

Michaela

0 Kudos

@Michaela: Ich halte das "als beantwortet markieren" hier für problematisch und bin daher anderer Meinung als du. Bitte nicht vergessen, das es auch andere Community-Mitglieder gibt, die diesen Beitrag über die über die Suche erreichen können.

@Artem Petrov: Kannst du das wieder rückgängig machen? Ich würde hier gerne den Status "Beantwortet" erst dann vergeben, wenn es eine "Lösung" gibt.

Peter
0 Kudos
Peter_Jodeleit
Crownpeak employee

Aktueller Zwischenstand:

Unseren Erkenntnissen nach kommt der Fehler, wenn die wiederhergestellte Revision doppelte Knoten erzeugen würde, d.h. die Revision stellt einen Kind-Knoten wieder her, der im aktuellen Stand noch (z.B. nach einer Verschieboperation) oder wieder (durch eine andere Wiederherstellungsoperation) an anderer Stelle existiert.

In diesem Fall bricht die Wiederherstellung ab.

Peter
0 Kudos

Hallo,

das Problem wurde inzwischen in FS5 behoben und wird mit dem FS5.1-Release verfügbar sein.

Viele Grüße

Michaela

0 Kudos

Hallo,

ich habe einen ähnlichen Fall. Allerdings wurde in meinem Fall der Knoten nicht verschoben sondern gelöscht.

In den Globalen Einstellungen wurde in diesem Fall ein Absatz aus einem Contentelement gelöscht, welche nun nicht Wiederhergestellt werden kann.

INFO:  03.02.2014 16:28:09.162 starting revert on server in project '852727' in store 'GLOBALSTORE' for element '853402'

INFO:  03.02.2014 16:28:09.162 settings: checkOnlyMode=false, revision=82898

INFO:  03.02.2014 16:28:09.162 found 0 missing outgoing reference(s)

ERROR: 03.02.2014 16:28:09.240 an unexpected error occurred

FSVersion=5.0.427.60223#3503;JDK=1.6.0_23 64bit Sun Microsystems Inc.;OS=Windows 2003 5.2 amd64;Date=03.02.2014 16:28:09

java.lang.IllegalStateException: element with ID 1479957 cannot be reverted, parent has changed

          at de.espirit.firstspirit.server.storemanagement.StoreManagerImpl.revert(StoreManagerImpl.java:1255)

          at de.espirit.firstspirit.store.access.DefaultStoreElement.revert(DefaultStoreElement.java:1690)

          at de.espirit.firstspirit.server.storemanagement.ServerRevertAction.call(ServerRevertAction.java:169)

          at de.espirit.firstspirit.server.storemanagement.ServerRevertAction.call(ServerRevertAction.java:51)

          at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:415)

          at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:396)

          at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:545)

          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

          at java.util.concurrent.FutureTask.run(FutureTask.java:138)

          at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

          at java.util.concurrent.FutureTask.run(FutureTask.java:138)

          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

          at java.lang.Thread.run(Thread.java:662)

          at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:37)

ERROR: 03.02.2014 16:28:09.240 revert process finished with errors

Suche ich nun nach der oben genannten ID: 1479957 erhalte ich auch eine Exception:

Admin (Admin), session: 3652197272804369673, project: 852727, ip: 192.168.111.190

(de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.ClassCastException: de.espirit.firstspirit.store.access.globalstore.GCAFolderImpl cannot be cast to de.espirit.firstspirit.store.access.pagestore.PageImpl

FSVersion=5.0.427.60223#3747;JDK=1.7.0_51 32bit Oracle Corporation;OS=Windows XP 5.1 x86;Date=03.02.2014 17:32:10

java.lang.ClassCastException: de.espirit.firstspirit.store.access.globalstore.GCAFolderImpl cannot be cast to de.espirit.firstspirit.store.access.pagestore.PageImpl

          at de.espirit.firstspirit.store.access.pagestore.SectionImpl.getPermission(SectionImpl.java:606)

          at de.espirit.firstspirit.store.access.DefaultStoreElement.getPermission(DefaultStoreElement.java:1324)

          at de.espirit.firstspirit.client.dialog.AttributeSearchDialog.searchId(AttributeSearchDialog.java:343)

          at de.espirit.firstspirit.client.dialog.AttributeSearchDialog$4.run(AttributeSearchDialog.java:251)

Gibt es hierfür eine Lösung?

0 Kudos