- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
project.isLocked() liefert falsches Ergebnis
Hallo zusammen,
ich habe ein Problem mit der Methode project.isLocked(). Ich bekomme immer falsches Ergebnis und weiร nicht woran es liegen kann.
anbei hab ich ein Screenshot geschickt, das dies verdeutlich. Ich hab ein einfaches Skript geschrieben, das die Methode project.isLocked() aufruft.
Die FS-Verion ist 4.2.453.46978
Grรผรe
Mostafa
- Labels:
-
Developers
-
Knowledgebase
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Project#isLocked heisst soviel wie: "Habe ich gerade einen Lock auf die Projekt-Instanz".
gruss
andre
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke fรผr die schnelle Antwort.
"Habe ich gerade einen Lock auf die Projekt-Instanz": das Projekt ist durch die Session der Server- und Projektkonfiguration geperrt, wie dies in im Screeshot reprรคsentiert ist, deshalb sollte die Methode true anstatt false liefern: Projekt geperrt durch andere Session!!
Grรผรe
Mostafa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wenn du im Skript vorher "project.lock;" aufrufst (und das erfolgreich ist, d.h. keine Exception), liefert "project.isLocked()" true. D.h. deine Erwartungshaltung entspricht nicht der Implementierung.
Unabhรคngig davon wรผrde mich dein Anwendungsfall interessieren.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke fรผr die Antwort.
um ehrlich zu sein, ich habe deine Antwort nicht gut verstanden. der Case sieht wie folgt aus:
wรคhrend ich in einem Service versuche, Gruppen anzulegen, prรผfe ich davor, ob die Server- und Projektkonfiguration in Bearbeitung bzw. gelockt ist oder nicht. falls ja, kann ich dann die Gruppe nicht anlegen aber durch isLocked kann ich eine eigene Exception (Please close Server- and Project Configuration ...) werfen.
Mit dem Skript will ich nur zeigen, dass die Methode falsches Ergbnis liefert, nรคmlich false obwohl das Projekt durch ie Session der Server- und Projektkonfiguration geperrt.
Danke
Mostafa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Die Methode Project#isLocked() liefert nur dann true, wenn gegen die gleiche Projekt-Instanz auch die Methode #lock() aufgerufen wurde.
Dieses Verhalten gilt fรผr alle Implementierungen von Lockable.
Da dein Service das Projekt nicht selbst gelockt hat, wird diese Methode auch immer "false" liefern.
Du wirst fรผr deinen Anwendungsfall also #lock() aufrufen und die LockException abfangen mรผssen, um eine spezifische Fehlermeldung geben zu kรถnnen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Danke Sebastian fรผr die Antwort.
Aber ist nicht so, wenn die Projekteigenschaften in Server- und Projektkonfiguration in Bearbeitung ist, ist das Projekt dann gelockt ist (d.h. die Methode #lock aufgerufen ist) und wenn ich in meinem Service/Skript #isLock aufrufe true bekommen sollte und statt false?
Grรผรe
Mostafa
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aber ist nicht so, wenn die Projekteigenschaften in Server- und Projektkonfiguration in Bearbeitung ist, ist das Projekt dann gelockt ist (d.h. die Methode #lock aufgerufen ist) und wenn ich in meinem Service/Skript #isLock aufrufe true bekommen sollte und statt false?
Nein, da der Aufruf von #lock in diesem Fall nicht aus ihrem Service kommt, sondern von der Adminkonsole. Es gibt halt bei Projekt keine analoge Methode #isLockedOnServer() wie bei IDProvider. Eine solche Methode wรคre vielleicht wรผnschenswert, aber es gibt sie derzeit nicht.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Auch wรผrde so eine Methode nicht helfen, da trotz รberprรผfung ein anschliessender Sperr-Versuch fehlschlagen kann, wenn ein anderer Benutzer schneller ist. Der saubere Weg ist der รผber die Behandlung des "schon gesperrt" Falles in einem "catch"-Block wie oben beschrieben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo zusammen,
vielen Dank fรผr die Hilfe und sorry fรผr meine verspรคtete Antwort, war in den letzten Tagen krank.
Es ist wirklich schade, dass so eine wichtige Methode (#isLockedOnServer()) nicht gibt. Ich hoffe, dass es ein sinnvollen fachlichen Grund dahinter liegt !!
noch mal vielen Danke an euch Jungs ๐
Grรผรe
Mostafa

