Search the FirstSpirit Knowledge Base
Moin,
wir müssen das Entfernen eines Datensatzes aus einer Datenquelle mit einem Freigabeworkflow (siehe Bild untern) versehen und ich stoße dabei auf das folgende Problem. Im Skript delete_glossary_entry werden auf die übliche Weise die Datensätze aus beiden Sichten entfernt. Der Datensatz ist dann auch wirklich gelöscht. Wenn nun die nächste Transition folgt (context.doTransition("finalize") am Ende des Skriptes) gibt es den Fehler
Fehler beim Datenbankzugriff:
The entity de.espirit.or.impl.EntityImpl@17fb9e0{I_Glossary,NOT_EXISTS,FS_ID=31544,FS_VALID_FROM=1327418121466,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0} isn't releasable because its state isn't persistent but 'NOT_EXISTS'
FSVersion=4.2.454.47473#2779;JDK=1.6.0_27 32bit Sun Microsystems Inc.;OS=Windows XP 5.1 x86;Date=24.01.2012 16:15:34
de.espirit.or.ORException: The entity de.espirit.or.impl.EntityImpl@17fb9e0{I_Glossary,NOT_EXISTS,FS_ID=31544,FS_VALID_FROM=1327418121466,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0} isn't releasable because its state isn't persistent but 'NOT_EXISTS'
at de.espirit.or.impl.EntityImpl.setState(EntityImpl.java:684)
at de.espirit.or.impl.SessionImpl._release(SessionImpl.java:130)
at de.espirit.or.impl.SessionImpl.release(SessionImpl.java:119)
at de.espirit.firstspirit.store.access.contentstore.Content2Impl.release(Content2Impl.java:316)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1197)
Das leuchtet mir insoweit ein, dass das Objekt, zu dem der Workflow gehört nun nicht mehr da ist. Der Eintrag in der Datenquelle hat nun die zuletzt gegebene Farbmarkierung und verbleibt dort bis zum Neustart des Clients nichts. Der Workflow ist auch nicht mehr Aufgabenverwaltung zu finden, so dass an dem Zustand durch den Benutzer nichts zu ändern ist, bis zum Neustart halt.
Was kann man hier tun, um den Workflow irgendwie befriedigend zu beenden, so dass der gelöschte Eintrag entsprechend aus der Anzeige verschwindet?
Vielen Dank und Grüße
M
Fehler beim Datenbankzugriff:The entity de.espirit.or.impl.EntityImpl@17fb9e0{I_Glossary,NOT_EXISTS,FS_ID=31544,FS_VALID_FROM=1327418121466,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0} isn't releasable because its state isn't persistent but 'NOT_EXISTS'
FSVersion=4.2.454.47473#2779;JDK=1.6.0_27 32bit Sun Microsystems Inc.;OS=Windows XP 5.1 x86;Date=24.01.2012 16:15:34
de.espirit.or.ORException: The entity de.espirit.or.impl.EntityImpl@17fb9e0{I_Glossary,NOT_EXISTS,FS_ID=31544,FS_VALID_FROM=1327418121466,FS_VALID_TO=9223372036854775807,FS_RELEASE_TO=0} isn't releasable because its state isn't persistent but 'NOT_EXISTS'
at de.espirit.or.impl.EntityImpl.setState(EntityImpl.java:684)
at de.espirit.or.impl.SessionImpl._release(SessionImpl.java:130)
at de.espirit.or.impl.SessionImpl.release(SessionImpl.java:119)
at de.espirit.firstspirit.store.access.contentstore.Content2Impl.release(Content2Impl.java:316)
at de.espirit.firstspirit.server.taskmanagement.TaskImpl.doTransition(TaskImpl.java:1197)
Kann es sein das im End-Status "deleted" noch das Häckchen bei "freigegeben" gesetzt ist? Denn dann würde er versuchen, das gelöschte Element freizugeben und das würde dann genau zu diesem Fehler führen.
Vielen Dank, Herr Klein. Ich hätte schwören können, dass ich den Haken dort natürlich entfernt hatte, aber wie von Zauberhand war er wieder gesetzt 😉
Nach dem Entfernen tritt die Exception nicht mehr auf, ich habe nun aber das Problem, dass seltsamerweise das
context.doTransition("finalize")
nichts mehr zu bewirken scheint. Im Log-Output sehe ich keinerlei Hinweise, dass da was passiert. Der Datensatz verbleibt in der Erfassungsliste mit der letzten Farbmarkierung von object_pre_deleted. Auch Aktualisieren hilft nicht. Der Arbeitsablauf ist aber nicht mehr in der Liste vorzufinden und scheint ornungsgemäß beendet.
Nach Client-Neustart sind die Datensätze dann verschwunden, aber für die Redakteure ist das natürlich verwirrend. Irgendeine Erklärung für dieses Verhalten? Workarounds?
Dank und Grüße
Michael Schmidt schrieb:
Vielen Dank, Herr Klein. Ich hätte schwören können, dass ich den Haken dort natürlich entfernt hatte, aber wie von Zauberhand war er wieder gesetzt 😉
Nach dem Entfernen tritt die Exception nicht mehr auf, ich habe nun aber das Problem, dass seltsamerweise das
context.doTransition("finalize")
nichts mehr zu bewirken scheint.
tut es doch:
Der Arbeitsablauf ist aber nicht mehr in der Liste vorzufinden und scheint ornungsgemäß beendet.
Wenn auch ein Aktualisieren des Conten2 (Datenquelle) nicht hilft, könnten sie nach dem commit der session noch ein rollback auf dieser machen.
Danke. Aber das rollback bringt auch nichts. Nach wie vor verbleiben die Objekte in der Datenquelle in dem letzten Status solange bis ich das Datenquellenobjekt einmal schließe. Nach Wiederöffnen funktioniert dann auch F5. Denke, ich lasse das erstmal so.