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