diff --git a/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml b/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml index 1da8cfc20..124874811 100755 --- a/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml +++ b/datamodels/2.x/itop-tickets/datamodel.itop-tickets.xml @@ -169,10 +169,19 @@ Overload-DBObject Lock(); + // Beware !!! + // Compensate the fact that CMDBObject::DBInsertTracked_Internal does NOT call the derived version of DBInsertNoReload + // when performing an INsert with "no reload" but actually calls it (followed by Reload) when doing an Insert with reload !! + if ($bDoNotReload) + { + $oMutex = new iTopMutex('ticket_insert'); + $oMutex->Lock(); + } $ret = parent::DBInsertTracked_Internal($bDoNotReload); - $oMutex->Unlock(); + if ($bDoNotReload) + { + $oMutex->Unlock(); + } return $ret; } ]]>