lib/qooxview/rpcqooxdoo.rb in qooxview-1.9.9 vs lib/qooxview/rpcqooxdoo.rb in qooxview-1.9.10

- old
+ new

@@ -47,11 +47,11 @@ get_services(services) end def needs_covered(a) return true unless @@needs.has_key?(a) - @@needs[a].each{|n| + @@needs[a].each { |n| return false if @@services_hash[n].class == Class } return true end @@ -65,18 +65,18 @@ # The entities have to be initialized before the views %w(Entities View).each { |e| @@services_hash.sort.each { |k, v| if k =~ /^#{e}/ and k =~ /#{services}/ - dputs(3) { "Initializing #{k.inspect} with #{v.inspect}" } + dputs(3) { "Initializing #{k.class.name} with #{v.class.name}" } if @@services_hash[k].class == Class dputs(5) { "Needs is: #{@@needs.inspect}" } #if @@needs.has_key?(k) && # @@services_hash[@@needs[k]].class == Class if !needs_covered(k) dputs(3) { "Not initializing #{k}, as it needs #{@@needs[k]}" } - @@needs[k].each{|n| + @@needs[k].each { |n| get_services(/^#{n}$/) } do_init = true else dputs(3) { "RPC: making an instance of #{k.inspect} with #{v.inspect}" } @@ -195,11 +195,11 @@ if RPCQooxdooService::services.has_key?(service) s = RPCQooxdooService::services[service] method = "rpc_#{method}" if s.respond_to?(method) dputs(3) { "Calling #{method} with #{params.inspect}" } - begin + System.rescue_all("while handling #{method} with #{params.inspect}") do parsed = s.parse_request(method, session, params[0]) time.probe("Parsing #{service}.#{method}") dputs(4) { "Parsed request is #{parsed.inspect}" } answer = s.parse_reply(method, session, parsed) time.probe("Replying #{service}.#{method}") @@ -216,17 +216,12 @@ answer = [{:cmd => 'none', :data => []}] end dputs(show_request_reply) { "Final answer is #{answer.inspect}" } return self.answer(answer, id) - rescue Exception => e - dputs(0) { "Error while handling #{method} with #{params.inspect}: #{e.message}" } - dputs(0) { "#{e.inspect}" } - dputs(0) { "#{e.to_s}" } - puts e.backtrace - return self.error(2, 2, 'Error in handling method', id) end + return self.error(2, 2, 'Error in handling method', id) else return self.error(2, 2, "No such method #{method} for #{s.class.name}", id) end else return self.error(2, 1, 'No such service', id) @@ -316,24 +311,18 @@ dputs(4) { "#{path}-Request is #{req.path} and " + "method is #{req.request_method}" } status = HTTPStatus::OK res['content-type'] = 'text/html' - begin + System.rescue_all("while handling #{cl.name} with #{req.inspect}") { if cl.respond_to? :parse_req_res res.body = cl.parse_req_res(req, res).to_s elsif cl.respond_to? :parse_req res.body = cl.parse_req(req).to_s else res.body = cl.parse(req.request_method, req.path, req.query).to_s end - rescue Exception => e - dputs(0) { "Error while handling #{cl.name} with #{req.inspect}: #{e.message}" } - dputs(0) { "#{e.inspect}" } - dputs(0) { "#{e.to_s}" } - puts e.backtrace - res.body = 'Error in handling method' - end + } or res.body = 'Error in handling method' res.body.force_encoding(Encoding::ASCII_8BIT) res['content-length'] = res.body.length res['status'] = status if res['content-type'] == 'text/html' dputs(3) { "#{path}-reply is #{res.body.inspect}" }