Bug #55548
closedScheduler: Invalid task uid after Database duplication
0%
Description
This bug happens if you are doing a copy of task directly in database.
The new record in database will have a new UID but serialized Task object will still have the old UID.
When you try to do an update from TYPO3 Backend module, the old Task is updated when you edit the new one.
One solution would be to update Task UID.
In version 4.5/4.7:
(typo3/sysext/scheduler/class.tx_scheduler.php:300)
$task = unserialize($row['serialized_task_object']); + $task->setTaskUid($row['uid']);
(typo3/sysext/scheduler/class.tx_scheduler.php:365)
$task = unserialize($row['serialized_task_object']); + $task->setTaskUid($row['uid']);
(typo3/sysext/scheduler/class.tx_scheduler_module.php:611)
$task = unserialize($taskRecord['serialized_task_object']); + $task->setTaskUid($taskRecord['uid']);
(typo3/sysext/scheduler/class.tx_scheduler_module.php:1047)
$task = unserialize($schedulerRecord['serialized_task_object']); + $task->setTaskUid($schedulerRecord['uid']);
(typo3/sysext/scheduler/class.tx_scheduler_module.php:1231)
$task = unserialize($taskRecord['serialized_task_object']); + $task->setTaskUid($taskRecord['uid']);
In version 6.0/6.1:
(typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php:557)
$task = unserialize($taskRecord['serialized_task_object']); + $task->setTaskUid($taskRecord['uid']);
(typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php:945)
$task = unserialize($schedulerRecord['serialized_task_object']); + $task->setTaskUid($schedulerRecord['uid']);
(typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php:1110)
$task = unserialize($taskRecord['serialized_task_object']); + $task->setTaskUid($taskRecord['uid']);
(typo3/sysext/scheduler/Classes/Scheduler.php:108)
$task = unserialize($row['serialized_task_object']); + $task->setTaskUid($row['uid']);
(typo3/sysext/scheduler/Classes/Scheduler.php:277)
$task = unserialize($row['serialized_task_object']); + $task->setTaskUid($row['uid']);
(typo3/sysext/scheduler/Classes/Scheduler.php:337)
$task = unserialize($row['serialized_task_object']); + $task->setTaskUid($row['uid']);
Updated by Mathias Schreiber almost 10 years ago
- Status changed from New to Rejected
Hi Matthias,
the "master" in this case is indeed the serialized object.
The database row only follows its lead.
Updated by Dan Kleine (Untenzu) about 6 years ago
- Related to Feature #83338: Move scheduler tasks from serialized data to JSON added