aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/referential.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/referential.rb')
-rw-r--r--app/models/referential.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb
index b14ab3827..b44bb15c6 100644
--- a/app/models/referential.rb
+++ b/app/models/referential.rb
@@ -61,6 +61,18 @@ class Referential < ActiveRecord::Base
scope :order_by_validity_period, ->(dir) { joins(:metadatas).order("unnest(periodes) #{dir}") }
scope :order_by_lines, ->(dir) { joins(:metadatas).group("referentials.id").order("sum(array_length(referential_metadata.line_ids,1)) #{dir}") }
+ def save_with_table_lock_timeout
+ save_without_table_lock_timeout
+ rescue ActiveRecord::StatementInvalid => e
+ if e.message.include?('PG::LockNotAvailable')
+ raise TableLockTimeoutError.new(e)
+ else
+ raise
+ end
+ end
+
+ alias_method_chain :save, :table_lock_timeout
+
def lines
if metadatas.blank?
workbench ? workbench.lines : associated_lines