[Erp5-report] r14271 - /erp5/trunk/products/ERP5OOo/Document/OOoDocument.py

nobody at svn.erp5.org nobody at svn.erp5.org
Fri Apr 27 17:54:31 CEST 2007


Author: ivan
Date: Fri Apr 27 17:54:25 2007
New Revision: 14271

URL: http://svn.erp5.org?rev=14271&view=rev
Log:
Import order fixed. Catch and log errors accessing conversion server (this prevents infinitive activity loops problem which make ZODB grow)

Modified:
    erp5/trunk/products/ERP5OOo/Document/OOoDocument.py

Modified: erp5/trunk/products/ERP5OOo/Document/OOoDocument.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5OOo/Document/OOoDocument.py?rev=14271&r1=14270&r2=14271&view=diff
==============================================================================
--- erp5/trunk/products/ERP5OOo/Document/OOoDocument.py (original)
+++ erp5/trunk/products/ERP5OOo/Document/OOoDocument.py Fri Apr 27 17:54:25 2007
@@ -25,22 +25,14 @@
 #
 ##############################################################################
 
-import xmlrpclib
-from xmlrpclib import Fault
-import base64
-import re
-import zipfile
-import cStringIO
-import socket
+import xmlrpclib, base64, re, zipfile, cStringIO, socket
 from warnings import warn
 from DateTime import DateTime
-
+from xmlrpclib import Fault
 from AccessControl import ClassSecurityInfo
 from OFS.Image import Pdata
-from Products.CMFCore.utils import getToolByName
-from Products.CMFCore.utils import _setCacheHeaders
+from Products.CMFCore.utils import getToolByName, _setCacheHeaders
 from Products.DCWorkflow.DCWorkflow import ValidationFailed
-
 from Products.ERP5Type import Permissions, PropertySheet, Constraint, Interface
 from Products.ERP5Type.Message import Message
 from Products.ERP5Type.Cache import CachingMethod
@@ -48,8 +40,7 @@
 from Products.ERP5.Document.File import File
 from Products.ERP5.Document.Document import ConversionCacheMixin, ConversionError
 from Products.ERP5.Document.File import _unpackData
-
-from zLOG import LOG
+from zLOG import LOG, INFO, ERROR
 
 enc=base64.encodestring
 dec=base64.decodestring
@@ -252,9 +243,15 @@
       z.close()
       return 'text/plain', s
     server_proxy = self._mkProxy()
-    kw = server_proxy.run_generate(self.getId(),
-                                   enc(_unpackData(self.getBaseData())),
-                                   None, format)
+    try:
+        kw = server_proxy.run_generate(self.getId(),
+                                       enc(_unpackData(self.getBaseData())),
+                                       None, 
+                                       format)
+    except Exception, inst:
+      # Catch, log and raise errors with converting server.Explicitly raise the exception!
+      LOG('[DMS]', ERROR, 'Error generating document %s' %inst)
+      raise Exception
     return kw['mime'], Pdata(dec(kw['data']))
 
   # Conversion API
@@ -361,10 +358,14 @@
       by invoking the conversion server. Store the result
       on the object. Update metadata information.
     """
-    # LOG('in _convertToBaseFormat', 0, self.getRelativeUrl())
     server_proxy = self._mkProxy()
-    kw = server_proxy.run_convert(self.getSourceReference() or self.getId(),
-                                  enc(_unpackData(self.getData())))
+    try:
+        kw = server_proxy.run_convert(self.getSourceReference() or self.getId(),
+                                      enc(_unpackData(self.getData())))
+    except Exception, inst:
+      # Catch, log and raise errors with converting server.Explicitly raise the exception!
+      LOG('[DMS]', ERROR, 'Error converting document to base format %s' %inst)
+      raise Exception
     self._setBaseData(dec(kw['data']))
     metadata = kw['meta']
     self._base_metadata = metadata
@@ -388,7 +389,12 @@
       through the invocation of the conversion server.
     """
     server_proxy = self._mkProxy()
-    kw = server_proxy.run_setmetadata(self.getId(),
+    try:
+      kw = server_proxy.run_setmetadata(self.getId(),
                                       enc(_unpackData(self.getBaseData())),
                                       kw)
+    except Exception, inst:
+      # Catch, log and raise errors with converting server.Explicitly raise the exception!
+      LOG('[DMS]', ERROR, 'Error getting document\'s metadata %s' %inst)
+      raise Exception
     self._setBaseData(dec(kw['data']))




More information about the Erp5-report mailing list