From 88b592fbc998220da322f6fd52bbf66ce53221bd Mon Sep 17 00:00:00 2001
From: Sebastien Robin <seb@nexedi.com>
Date: Wed, 17 Sep 2014 22:02:47 +0200
Subject: [PATCH] BTreeData: fixed some minor issues with truncate

---
 product/ERP5Type/BTreeData.py | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/product/ERP5Type/BTreeData.py b/product/ERP5Type/BTreeData.py
index 9a7d611824..083decb3bf 100644
--- a/product/ERP5Type/BTreeData.py
+++ b/product/ERP5Type/BTreeData.py
@@ -181,10 +181,11 @@ class BTreeData(Persistent):
             # It is not possible to drop keys as we iterate when using
             # iterkeys, so call minKey repeatedly.
             while True:
-                next_key = minKey(offset)
-                if next_key is None:
-                    break
-                del tree[key]
+                try:
+                  next_key = minKey(offset)
+                except ValueError:
+                  break
+                del tree[next_key]
 
 if __name__ == '__main__':
 
@@ -229,3 +230,9 @@ if __name__ == '__main__':
     data.write('ABCDE', 6)
     check(data, 11, 0, 11, '0123XYABCDE', [0, 5, 8, 10])
 
+    data.truncate(7)
+    check(data, 7, 0, 7, '0123XYA', [0, 5])
+    data.truncate(5)
+    check(data, 5, 0, 5, '0123X', [0])
+    data.truncate(3)
+    check(data, 3, 0, 3, '012', [0])
-- 
2.30.9