Hi Christian, Before calling AddFriend, you must close atree and fFile. Do: TString tname = atree->GetName() TString fname = fFile->GetName() atree->Write(); delete fFile; fTree->AddFriend(tname,fname); or call the other TTree::AddFriend constructor atree->Write(); fTree->AddFriend(atree); Rene Brun On Sun, 20 Jun 2004, cstrato wrote: > Dear Rooters > > I have the following situation: > First I open an existing file "fDataFile" which contains some data > trees. In a first step I add these trees as friends to a tree "fTree". > Then I create a new file "fFile" where the result tree "atree" should be > stored. Later, I create the result tree "atree" in a class method. > After filling "atree" I want to add "atree" as friend to fTree, too. > The relevant code fragment of the method looks like this: > TTree *atree = new TTree(treename, ""); > // fill atree > fFile->cd(); > atree->Write(); > fTree->AddFriend(atree->GetName(), fFile->GetName()); > > In this case AddTree() results in the following message: > Warning in <TFile::Init>: file /Users/cs/ROOT/rootcode/tmp.root probably > not closed, trying to recover > Info in <TFile::Recover>: /Users/cs/ROOT/rootcode/tmp.root, recovered > key TTree:Test at address 350 > Warning in <TFile::Init>: successfully recovered 1 keys > > Nevertheless, everything works fine including the call to the > destructors, where I delete "fDataFile" with "SafeDelete(fDataFile)". > > In contrast, when I add "atree" as friend using: > fTree->AddFriend(atree->GetName(), fFile); > everything works fine until I call the destructors. > When I try to delete "fDataFile" with "SafeDelete(fDataFile)" then > root crashes beyond recovery with "*** Break *** bus error" > > However, if I remove "atree" after usage by calling in a different method > fTree->RemoveFriend(atree); > then everything works fine again and I can call "SafeDelete(fDataFile)" > in the destructor. > > Does anybody have an idea what might be the reason for this behavior? > (I am afraid ths code is too complex to extract a simple macro.) > > Thank you in advance > Best regards > Christian > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- > C.h.r.i.s.t.i.a.n. .S.t.r.a.t.o.w.a > V.i.e.n.n.a. .A.u.s.t.r.i.a > -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.- >
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET