EvtStoreSvc creates null directory object
When adding objects to the event store, the EvtStoreSvc
should create non-null DataObject*
representations of intermediate directories when its ForceLeaves
property is true
. What it actually stores is a nullptr
:
p.store->put( dir, std::unique_ptr<DataObject>{} );
One fix is to change from std::unique_ptr
to std::make_unique
. I see in c9ebcb88 the reverse change was made, so perhaps another solution would be preferred.
The current behaviour is problematic for non-Gaudi-functional algorithms which perform a getIfExists
on such intermediate locations. With the behaviour in master, the object retrieved for the intermediate directory is nullptr
, causing legacy algorithms to interpret this as a non-existent location, when it has in fact been 'created'.
/cc @graven