Skip to content

Commit 606bb7e

Browse files
authored
Merge pull request #2 from giwa/master
Raise Embulk Error
2 parents 44d5f69 + 796e8f3 commit 606bb7e

File tree

3 files changed

+39
-3
lines changed

3 files changed

+39
-3
lines changed

lib/embulk/input/elasticsearch/connection.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ def search_with_retry
7373
sleep 2**retries
7474
retry
7575
end
76-
Embulk.logger.error "Could not search to Elasticsearch after #{retries} retries. #{e.message}"
77-
return nil
76+
msg = "Could not search to Elasticsearch after #{retries} retries. #{e.message}"
77+
raise Elasticsearch::ConfigError(e, msg)
7878
end
7979
end
8080

lib/embulk/input/elasticsearch/converter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def self.convert_value(value, field)
4040
when "json"
4141
value
4242
else
43-
raise "Unsupported type #{field['type']}"
43+
raise Elasticsearch::TypecastError.new "Unsupported type #{field['type']}"
4444
end
4545
end
4646
end
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
module Embulk
2+
module Input
3+
4+
class Elasticsearch < InputPlugin
5+
6+
module Traceable
7+
def initialize(e, more_msg = nil)
8+
message = e.is_a?(String) ? '' : "(#{e.class}) "
9+
message << "#{e}#{more_msg}\n"
10+
message << "\tat #{e.backtrace.join("\n\tat ")}\n" if e.respond_to?(:backtrace)
11+
12+
while e.respond_to?(:cause) and e.cause
13+
# Java Exception cannot follow the JRuby causes.
14+
message << "Caused by (#{e.cause.class}) #{e.cause}\n"
15+
message << "\tat #{e.cause.backtrace.join("\n\tat ")}\n" if e.cause.respond_to?(:backtrace)
16+
e = e.cause
17+
end
18+
19+
super(message)
20+
end
21+
end
22+
23+
class ConfigError < ::Embulk::ConfigError
24+
include Traceable
25+
end
26+
27+
class DataError < ::Embulk::DataError
28+
include Traceable
29+
end
30+
31+
class TypecastError < DataError
32+
end
33+
34+
end
35+
end
36+
end

0 commit comments

Comments
 (0)