public function setExtraKey($key, $value)
{
$previouslySet = $this->rootModuleFile->hasExtraKey($key);
$previousValue = $this->rootModuleFile->getExtraKey($key);
if ($value === $previousValue) {
return;
}
$this->rootModuleFile->setExtraKey($key, $value);
try {
$this->jsonStorage->saveRootModuleFile($this->rootModuleFile);
} catch (Exception $e) {
if ($previouslySet) {
$this->rootModuleFile->setExtraKey($key, $previousValue);
} else {
$this->rootModuleFile->removeExtraKey($key);
}
throw $e;
}
}