Mondego/spacetime

Gracefully report application errors

Closed this issue · 0 comments

Catch typos and mistaken uses of pcc commands, and report error gracefully. Not setting a Node as a setter gave me this error on client side:

Traceback (most recent call last):
  File "C:\Python27\lib\threading.py", line 801, in __bootstrap_inner
    self.run()
  File "C:\Python27\lib\threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 83, in __run
    self.__pull()
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 159, in __pull
    self.__process_pull_resp(resp.json())
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\frame.py", line 136, in __process_pull_resp
    self.object_store.frame_insert_all(typeObj, new[tp])
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\store.py", line 38, in frame_insert_all
    self.frame_insert(tp, id, obj)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime_local\store.py", line 30, in frame_insert
    obj = create_tracking_obj(tp, objjson, self.__objects, False, False)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 55, in create_tracking_obj
    obj = create_complex_obj(tp, objjson, universemap, extra)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 73, in create_complex_obj
    setattr(obj, dimension._name, create_tracking_obj(dimension._type, objjson[dimension._name], universemap, True))
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 55, in create_tracking_obj
    obj = create_complex_obj(tp, objjson, universemap, extra)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\common\converter.py", line 63, in create_complex_obj
    all_attribs = set(objjson.keys())
AttributeError: 'NoneType' object has no attribute 'keys'

and this one on server-side:

[root] Exception handling function post:
Traceback (most recent call last):
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store_server.py", line 52, in wrapped
    ret = f(*args, **kwds)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store_server.py", line 147, in post
    FrameServer.Store.put_update(sim, typeObj, new, mod, deleted)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 236, in put_update
    return self.__put_update(app, tp, new, mod, deleted)
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 253, in __put_update
    self.__base_store.put(tp, id, new[id])
  File "C:\Users\Arthur Valadares\Documents\My Dropbox\workspace\spacetime\python\spacetime\store.py", line 60, in put
    self.__data[tp][id] = object
KeyError: <class 'pcc.set._set'>