CorporateContent per Beanshell-Skript
Author: marcfr
Publication Date: 5/18/2015 11:26
Hallo zusammen,
wir rufen per Skript die CorporateContent-Funktionalität auf. Das funktioniert soweit auch. Allerdings, wenn während das Skript läuft, der Auftrag abgebrochen wird, dann ist das Paket gesperrt und kann nicht wieder entsperrt werden (nur ein FS-Server-Neustart löst das Problem).
Das Skript sieht wie folgt aus:
us = context.getUserService();
ps = us.getStore(de.espirit.firstspirit.access.store.Store.Type.PAGESTORE, false);
md = us.getStore(de.espirit.firstspirit.access.store.Store.Type.MEDIASTORE, false);
children = ps.getChildren();
mediaFolder = md.getStoreElement("images", IDProvider.UidType.MEDIASTORE_FOLDER);
mediaPackage = mediaFolder.getPackage();
if(mediaPackage != null){
| try{ | ||
| //create new version: | ||
| if(!mediaPackage.isLocked()) | ||
| mediaPackage.lock(); |
| packageVersion = mediaPackage.createVersion("" + new Date().getTime(), "" + new Date().getTime(), true); | |||
| packageManager = context.getConnection().getService(PackageManager.SERVICE_NAME); | |||
| //save package: | |||
| try{ | |||
| mediaPackage.save(); | |||
| mediaPackage.unlock(); | |||
| mediaPackage.publishPackage(); | |||
| } | |||
| catch(Exception e){ | |||
| context.logError("error: " + e.getMessage()); | |||
| } | |||
| finally { | |||
| if(mediaPackage.isLocked()) | |||
| mediaPackage.unlock(); | |||
| } | |||
| } | |||
| catch(Exception e){ | |||
| context.logError("error: " + e.getMessage()); | |||
| } | |||
| finally{ | |||
| if(mediaPackage.isLocked()) | |||
| mediaPackage.unlock(); | |||
| }//finally | |||
}//if
Als Fehler kommt dann:
Target exception: de.espirit.firstspirit.server.NotLockedException: object 3685687 locked in different session (project 2645901, session 3411552831525479586)
-> die Session "3411552831525479586" gibt es aber laut ServerMonitoring nicht mehr.
Müsste codetechnisch etwas angepasst werden?
Viele Grüße,
Marc Friedemann
-
Author: marcfr - 6/18/2015 10:46
Lösung gefunden:
Läuft das Skript mit einer eigenen Verbindung, dann wird der Lock gelöst.
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire