← Back to team overview

openerp-india team mailing list archive

[Bug 899794] Re: [6.1] Saving an image fails with "TypeError: can't escape non-string object" when simplejson does not have C speedup extension installed

 

Some minor remarks about this bug:

1. The version of psycopg2 is irrelevant for the occurrence of the bug,
however it will cause a minor difference in the error message:  older
versions (e.g. 2.0) will raise a "TypeError: can't escape non-string
object" while more recent version (e.g. 2.4) will raise a "TypeError:
can't escape unicode to binary".

2. This bug did not occur in 6.0 because it is caused by the JSON
(de)serialization of OpenERP binary values, and the JSON protocol was
only introduced in OpenERP 6.1 - nothing else changed between 6.0 and
6.1 in the handling of binaries or the way we use psycopg2.

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Server.
https://bugs.launchpad.net/bugs/899794

Title:
  [6.1] Saving an image fails with "TypeError: can't escape non-string
  object" when simplejson does not have C speedup extension installed

Status in OpenERP Server:
  Fix Released

Bug description:
  from a virtual ubuntu 10.04 server installing OpenERP from trunk:
  OpenERP-server rev: 3848
  OpenERP-addons rev: 5861
  OpenERP-web rev: 1596
  using pip for installing essentially all software except python-ldap, postgresql. 

  0) Go to http://<virtualserver>:8069
  Create a new database without demo data
  This should automatically log you in as Admin with a screen to install modules

  1) Click "SETTINGS" 
  2) Click "Set Company Header and Footer"
  3) Click folder icon to add new logo
  4) Click "Save"

  Result is:
  OpenERP Server Error

  Client Traceback (most recent call last):
    File "/opt/openerp/openerp-web/addons/web/common/http.py", line 154, in dispatch
      response["result"] = method(controller, self, **self.params)
    File "/opt/openerp/openerp-web/addons/web/controllers/main.py", line 772, in save
      r = m.write([id], data, req.session.eval_context(req.context))
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 429, in proxy
      *args)
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 306, in proxy
      result = self.connector.send(self.service_name, method, *args)
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 276, in send
      raise fault

  
  Server Traceback (most recent call last):
    File "/opt/openerp/openerp-web/addons/web/common/openerplib/main.py", line 257, in send
      result = openerp.netsvc.dispatch_rpc(service_name, method, args)
    File "/opt/openerp/openerp-server/openerp/netsvc.py", line 325, in dispatch_rpc
      result = ExportService.getService(service_name).dispatch(method, params)
    File "/opt/openerp/openerp-server/openerp/service/web_services.py", line 580, in dispatch
      res = fn(db, uid, *params)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 120, in wrapper
      return f(self, dbname, *args, **kwargs)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 172, in execute
      res = self.execute_cr(cr, uid, obj, method, *args, **kw)
    File "/opt/openerp/openerp-server/openerp/osv/osv.py", line 163, in execute_cr
      return getattr(object, method)(cr, uid, *args, **kw)
    File "/opt/openerp/openerp-server/openerp/addons/base/res/res_company.py", line 240, in write
      return super(res_company, self).write(cr, *args, **argv)
    File "/opt/openerp/openerp-server/openerp/osv/orm.py", line 3854, in write
      'where id IN %s', upd1 + [sub_ids])
    File "/opt/openerp/openerp-server/openerp/sql_db.py", line 153, in wrapper
      return f(self, *args, **kwargs)
    File "/opt/openerp/openerp-server/openerp/sql_db.py", line 215, in execute
      res = self._obj.execute(query, params)
  TypeError: can't escape non-string object

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/899794/+subscriptions