diff --git a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx index 8ed1e1fbec1043b84bffed36f14022bfc026c25b..854a730e10b1fb6a1a320201634ef7093e9de027 100644 --- a/Control/AthenaServices/src/AthenaOutputStreamTool.cxx +++ b/Control/AthenaServices/src/AthenaOutputStreamTool.cxx @@ -475,13 +475,13 @@ StatusCode AthenaOutputStreamTool::streamObjects(const DataObjectVec& dataObject if (dobj->clID() != 1 || addr->par()[0] != "\n") { if (dobj->clID() != ClassID_traits<DataHeader>::ID()) { m_dataHeader->insert(proxy, addr); - if (m_store->storeID() != StoreID::EVENT_STORE) proxy->setAddress(addr); } else { m_dataHeader->insert(proxy, addr, m_processTag); } - if (m_store->storeID() == StoreID::EVENT_STORE) { - addr->release(); + if (proxy->address() == nullptr) { + proxy->setAddress(addr); } + addr->release(); } } else { ATH_MSG_ERROR("Could not fill Object Refs for DataObject (clid/key):" << dobj->clID() << " " << dobj->name()); diff --git a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc index 94bce3ad0dd692f0d0f2f81f5c5da87d13efa6b2..0e9f3ab2f3457c6ae76adf5b508e68a2599128fd 100644 --- a/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc +++ b/Database/AthenaPOOL/AthenaPoolCnvSvc/AthenaPoolCnvSvc/T_AthenaPoolCoolMultChanCnv.icc @@ -225,6 +225,7 @@ StatusCode T_AthenaPoolCoolMultChanCnv<COLL_T, ELEM_T, ELEM_P>::createRep(DataOb token->toString()); addr->setAttrListColl(coll); delete pAddr; pAddr = addr; + pAddr->addRef(); delete token; token = 0; ATH_MSG_DEBUG("End createRep");