From 805a82e3853251d2c7d661d435335f4a52e1c5a4 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Tue, 20 Oct 2009 12:31:48 +0000
Subject: [PATCH] Try to convert only if not already converted.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@29850 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../Document_tryToConvertToBaseFormat.xml     | 41 ++++++++++---------
 bt5/erp5_dms/bt/revision                      |  2 +-
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_tryToConvertToBaseFormat.xml b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_tryToConvertToBaseFormat.xml
index c0b78b3374..198f27a932 100644
--- a/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_tryToConvertToBaseFormat.xml
+++ b/bt5/erp5_dms/SkinTemplateItem/portal_skins/erp5_dms/Document_tryToConvertToBaseFormat.xml
@@ -59,25 +59,28 @@ from xmlrpclib import Fault\n
 from socket import error as SocketError\n
 \n
 message = None\n
-try:\n
-  return context.convertToBaseFormat()\n
-except ConflictError:\n
-  raise\n
-except ConversionError, e:\n
-  message = \'Conversion Error: %s\' % (str(e) or \'undefined.\')\n
-except Fault, e:\n
-  message = \'XMLFault: %s\' % (repr(e) or \'undefined.\')\n
-except SocketError, e:\n
-  message = \'Socket Error: %s\' % (repr(e) or \'undefined.\')\n
-except Exception, e:\n
-  message = \'Problem: %s\' % (repr(e) or \'undefined.\')\n
-except:\n
-  message = \'Problem: unknown\'\n
-# reach here, then exception was raised.\n
-# message must be logged in workflow.\n
-context.processFile(comment=message)\n
-# try again.\n
-context.activate(priority=3).convertToBaseFormat()\n
+if context.getExternalProcessingState()!=\'converted\':\n
+  # try to convert to base format only if not already done\n
+  try:\n
+    return context.convertToBaseFormat()\n
+  except ConflictError:\n
+    raise\n
+  except ConversionError, e:\n
+    message = \'Conversion Error: %s\' % (str(e) or \'undefined.\')\n
+  except Fault, e:\n
+    message = \'XMLFault: %s\' % (repr(e) or \'undefined.\')\n
+  except SocketError, e:\n
+    message = \'Socket Error: %s\' % (repr(e) or \'undefined.\')\n
+  except Exception, e:\n
+    message = \'Problem: %s\' % (repr(e) or \'undefined.\')\n
+  except:\n
+    message = \'Problem: unknown\'\n
+\n
+  # reach here, then exception was raised.\n
+  # message must be logged in workflow.\n
+  context.processFile(comment=message)\n
+  # try again.\n
+  context.activate(priority=3).convertToBaseFormat()\n
 return message\n
 </string> </value>
         </item>
diff --git a/bt5/erp5_dms/bt/revision b/bt5/erp5_dms/bt/revision
index a76eb9d7a5..03c4ecbc93 100644
--- a/bt5/erp5_dms/bt/revision
+++ b/bt5/erp5_dms/bt/revision
@@ -1 +1 @@
-1043
\ No newline at end of file
+1044
\ No newline at end of file
-- 
2.30.9