summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/error.rb2
-rw-r--r--lib/opentox.rb5
-rw-r--r--lib/task.rb13
3 files changed, 12 insertions, 8 deletions
diff --git a/lib/error.rb b/lib/error.rb
index e58ed5d..3dd2950 100644
--- a/lib/error.rb
+++ b/lib/error.rb
@@ -31,7 +31,7 @@ class RuntimeError
# rdf serialization methods for all formats e.g. to_rdfxml
send :define_method, "to_#{format}".to_sym do
RDF::Writer.for(format).buffer do |writer|
- @rdf.each{|statement| writer << statement}
+ @rdf.each{|statement| writer << statement} if @rdf
end
end
end
diff --git a/lib/opentox.rb b/lib/opentox.rb
index d1e09f6..221a8dd 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -122,8 +122,9 @@ module OpenTox
t = OpenTox::Task.new uri
t.wait
unless t.completed?
- method = RestClientWrapper.known_errors.select{|error| error[:code] == t.hasStatus.to_i}.first[:method]
- Object.send(method,t.message,t.uri)
+ method = RestClientWrapper.known_errors.select{|error| error[:code] == t.code}.first[:method]
+ t.get
+ Object.send(method,t.error_report[RDF::OT.message],t.uri)
end
uri = t.resultURI
end
diff --git a/lib/task.rb b/lib/task.rb
index 315dc18..3d427bc 100644
--- a/lib/task.rb
+++ b/lib/task.rb
@@ -92,27 +92,30 @@ module OpenTox
while running?
sleep dur
dur = [[(Time.new - start_time)/20.0,0.3].max,300.0].min
- time_out_error "max wait time exceeded ("+DEFAULT_TASK_MAX_DURATION.to_s+"sec), task: '"+@uri.to_s+"'" if (Time.new > due_to_time)
+ request_timeout_error "max wait time exceeded ("+DEFAULT_TASK_MAX_DURATION.to_s+"sec), task: '"+@uri.to_s+"'" if (Time.new > due_to_time)
end
end
end
+ def code
+ RestClientWrapper.head(@uri).code.to_i
+ end
+
# get only header for status requests
def running?
- RestClientWrapper.head(@uri).code == 202
+ code == 202
end
def cancelled?
- RestClientWrapper.head(@uri).code == 503
+ code == 503
end
def completed?
- RestClientWrapper.head(@uri).code == 200
+ code == 200
end
def error?
- code = RestClientWrapper.head(@uri).code
code >= 400 and code != 503
end