Skip to content

Commit c832eff

Browse files
committed
Update exception handling for validator
1 parent 4613581 commit c832eff

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

lib/octocatalog-diff/util/parallel.rb

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,9 @@ def self.run_tasks_parallel(result, task_array, logger)
126126
result[index] = YAML.load(pidmap[this_pid][:reader].read)
127127
pidmap[this_pid][:reader].close
128128
pidmap.delete(this_pid)
129-
break unless result[index].status
129+
130+
next if result[index].status
131+
raise result[index].exception
130132
end
131133
ensure
132134
pidmap.each do |pid, pid_data|
@@ -164,14 +166,20 @@ def self.execute_task(task, logger)
164166
result = Result.new(output: output, status: true, args: task.args)
165167
rescue => exc
166168
logger.debug("Failed #{task.description}: #{exc.class} #{exc.message}")
167-
result = Result.new(exception: exc, status: false, args: task.args)
169+
return Result.new(exception: exc, status: false, args: task.args)
168170
end
169171

170-
if task.validate(output, logger)
171-
logger.debug("Success #{task.description}")
172-
else
172+
begin
173+
if task.validate(output, logger)
174+
logger.debug("Success #{task.description}")
175+
else
176+
logger.warn("Failed #{task.description}")
177+
result.status = false
178+
end
179+
rescue => exc
173180
logger.warn("Failed #{task.description}")
174181
result.status = false
182+
result.exception = exc
175183
end
176184

177185
result

0 commit comments

Comments
 (0)