ContinuumIO/bokeh — pull request #1133 by bryevdv (2014-09-04 02:14:16+00:00)
Title: hotifx/crossfilter

@hhuuggoo if you have any comments or suggestions where to start please let me know.
```
2014-09-03 20:28:15,327:ERROR:root:model not found for {u'type': u'Plot', u'id': u'9bf7e2ef-e190-4eb0-96fd-24a9a9504c90'}
2014-09-03 20:28:15,327:ERROR:root:model not found for {u'type': u'ColumnDataSource', u'id': u'6a17cb1f-969c-47a2-a2b4-ef7670670358'}
2014-09-03 20:28:15,327:ERROR:bokeh.server:Exception on /bokeh/bb/7a38c079-7326-4f8a-bdef-232437f6f3c1/CrossFilter/de8f1bc9-5dc0-4f68-b8d3-dcf7511e3147/ [PUT]
Traceback (most recent call last):
File "/Users/bryan/anaconda/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/Users/bryan/anaconda/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/bryan/anaconda/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/bryan/anaconda/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/bryan/anaconda/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/bryan/work/bokeh/bokeh/server/crossdomain.py", line 29, in wrapped_function
resp = make_response(f(*args, **kwargs))
File "/Users/bryan/work/bokeh/bokeh/server/views/backbone.py", line 139, in handle_specific_model
return update(docid, typename, id)
File "/Users/bryan/work/bokeh/bokeh/server/views/bbauth.py", line 20, in wrapper
return func(docid, *args, **kwargs)
File "/Users/bryan/work/bokeh/bokeh/server/views/backbone.py", line 164, in update
clientdoc = bokeh_app.backbone_storage.get_document(docid)
File "/Users/bryan/work/bokeh/bokeh/server/serverbb.py", line 92, in get_document
doc = Document(json_objs)
File "/Users/bryan/work/bokeh/bokeh/document.py", line 45, in __init__
self.load(*json_objs, dirty=False)
File "/Users/bryan/work/bokeh/bokeh/document.py", line 244, in load
m.update(**props)
File "/Users/bryan/work/bokeh/bokeh/crossfilter/objects.py", line 330, in update
self.setup_events()
File "/Users/bryan/work/bokeh/bokeh/crossfilter/objects.py", line 338, in setup_events
obj.on_change('selected', self, 'handle_filter_selection')
AttributeError: 'NoneType' object has no attribute 'on_change'
```