[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r6888 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc
From: |
jan |
Subject: |
[gnue] r6888 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc |
Date: |
Mon, 10 Jan 2005 15:09:04 -0600 (CST) |
Author: jan
Date: 2005-01-10 15:09:03 -0600 (Mon, 10 Jan 2005)
New Revision: 6888
Modified:
trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
Log:
Fix exception handling for remote and internal py_xmlrpc errors
Modified: trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
===================================================================
--- trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
2005-01-10 19:26:34 UTC (rev 6887)
+++ trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc/ClientAdapter.py
2005-01-10 21:09:03 UTC (rev 6888)
@@ -40,6 +40,7 @@
import types
import mx.DateTime
+from gnue.common.apps import errors
from gnue.common.rpc import client
from gnue.common.rpc.drivers import Base
@@ -100,10 +101,20 @@
# Bah! py_xmlrpc uses string exceptions!!
if sys.exc_info () [0] == 'xmlrpc.error':
if isinstance (sys.exc_info () [1], StringType):
+ # remote error
parts = string.split (sys.exc_info () [1], ':', 2)
if parts [0] == '1':
- raise client.DistantError (parts [2])
- raise
+ (exType, exName, exMessage, exDetail) = string.split (parts[1],
u'\x91')
+ exDetail += u"\n" + parts[2]
+ raise errors.RemoteError, (exType, exName, exMessage, exDetail)
+
+ if isinstance (sys.exc_info () [1], TupleType):
+ # xmlrpc internal error
+ tuple = sys.exc_info () [1]
+ raise client.AdapterConfigurationError, (tuple [1] + \
+ " (error code: " + str(tuple[0]) +")" )
+
+ raise client.Error, str(sys.exc_info())
# check, if an object handle is sent
# TODO: make a better check
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r6888 - trunk/gnue-common/src/rpc/drivers/xmlrpc/py_xmlrpc,
jan <=