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}" }