X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9be8a468534acaf324e9c18b831677f0ae067e60..acefccc4d506ed4bd3f51d3d88bc3a826b28be76:/services/api/lib/eventbus.rb diff --git a/services/api/lib/eventbus.rb b/services/api/lib/eventbus.rb index cb65c7f30c..11b178d985 100644 --- a/services/api/lib/eventbus.rb +++ b/services/api/lib/eventbus.rb @@ -3,10 +3,11 @@ Thread.abort_on_exception = true require 'eventmachine' -require 'oj' require 'faye/websocket' -require 'record_filters' require 'load_param' +require 'oj' +require 'record_filters' +require 'safe_json' require 'set' require 'thread' @@ -79,7 +80,7 @@ class EventBus end def send_message(ws, obj) - ws.send(Oj.dump(obj, mode: :compat)) + ws.send(SafeJSON.dump(obj)) end # Push out any pending events to the connection +ws+ @@ -181,7 +182,7 @@ class EventBus begin begin # Parse event data as JSON - p = (Oj.strict_load event.data).symbolize_keys + p = SafeJSON.load(event.data).symbolize_keys filter = Filter.new(p) rescue Oj::Error => e send_message(ws, {status: 400, message: "malformed request"}) @@ -316,6 +317,7 @@ class EventBus @mtx.synchronize do @connection_count -= 1 end + ActiveRecord::Base.connection.close end end