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