- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
CorporateContent per Beanshell-Skript
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
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lรถsung gefunden:
Lรคuft das Skript mit einer eigenen Verbindung, dann wird der Lock gelรถst.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
รber eine Antwort wรคre ich sehr dankbar ๐
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich wรผrde das unlock in den (ersten) finally-block setzen. Ansonsten wรผrdes du z.B. einen Unlock machen, wenn das Paket von wem anders gelockt ist. Eventuell blockt auch der PackageManager selbst das Paket? Die Sitzung sieht man ja nicht unbedingt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich habe Ihren Vorschlag soeben mal versucht. Das Ergebnis ist leider dasselbe: Das Paket bleibt durch das Abbrechen des Auftrags gelockt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lรถsung gefunden:
Lรคuft das Skript mit einer eigenen Verbindung, dann wird der Lock gelรถst.

