Hi Nil,
thanks a lot for your testing.
It looks like I missed changing line mitkStandaloneDataStorage.cpp:120
in the patch. Do you mind testing the patch again + changing
mitk::DataNode::ConstPointer nodeGuard(node);
to
DoubleDeletionGuard guard(node);
in your MITK build?
Thanks again,
Sascha
On 01/23/2015 06:22 PM, Nil Goyette wrote:
Hi Sascha,
As requested, I removed the all fixes proposed in this thread, tested
and saw the error again, 50% of the time.
Then I applied your patch and tested again.
In release, it fails every time.
In debug, it failed after 5 tests on line
- mitkStandaloneDataStorage.cpp 120 : mitk::DataNode::ConstPointer
nodeGuard(node);
- itkSmartPointer.h 152 : if ( m_Pointer ) { m_Pointer->Register(); }
So, it's exactly the same behavior I had before.
I'll keep the other patches for the time being ;)
Le 2015-01-22 12:04, Sascha Zelzer a écrit :
Hi Nil,
I just entered bug
http://bugs.mitk.org/show_bug.cgi?id=18672
for this. Could you please try the attached patch for me (based on
2014.10), without any other proposed fixes from this mail thread?
Thanks,
Sascha
On 01/12/2015 08:18 PM, Nil Goyette wrote:
Hi all,
I have at least two nodes (I have drawn more, but I can reproduce
the bug with 2 nodes)
- Node1
--- Node2 (child of Node1)
--- Node3
----- Node4
----- Node5
- Some other nodes
When the user deletes Node1, I want to delete all children nodes (2,
3, 4, 5).
To do so, I use NodeDeleted(), I ask the DataStorage for all
derivative nodes of the deleted node and delete them all.
A problem arises when the user highlights all nodes and delete them.
Some nodes are deleted more then one time. Of course, there are
conditions in mitk and in my own code that check if the node is
null, but it still fails about half of the time. Since the
NodeRemoved() event is thrown *before* the actual deletion, the
null/exists checks are useless.
I'm probably not the first that want to delete all the children of a
node. I feel that this should be simple. Is there a feature to do it
that I'm not aware of?
------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users