[TVB-1063]Datenänd. über handleTvDataAdd. funktioniert nicht

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Ansicht erweitern Die letzten Beiträge des Themas: [TVB-1063]Datenänd. über handleTvDataAdd. funktioniert nicht

[TVB-1063]Datenänd. über handleTvDataAdd. funktioniert nicht

von theli » 07 Aug 2011, 10:54

Hi!

Ich habe gerade festgestellt, dass es da wohl eine Race Condition zwischen der Methode Plugin.handleTvDataAdded(MutableChannelDayProgram newProg) und TvDataBase.correctDayProgramFile(Date date,Channel channel) gibt.

In TvDataBase wird jedes ChannelDayProgram über fireDayProgramAdded(checkProg) in eine Job-Queue gestellt.
Wird das Program in den Plugins allerdings nicht schnell genug abgearbeitet, greift der folgende Code zuerst und speichert die alten (ggf noch nicht vollständig modifizierten) Daten:

Code: Alles auswählen

      if (checkProg.getAndResetChangedByPluginState() || somethingChanged) {
        // Some missing lengths could now be calculated
        // -> Try to save the changes

        ....
      }
Da handleTvDataAdded also scheinbar asynchron zu correctDayProgramFile erfolgt, hat man keine Garantie, dass im Plugin durchgeführte Änderungen dann auch wirklich wirksam werden.

LG;
Martin

P.S.: Ich verwende SVN Rev. 7007

Nach oben