From 94bf9dc004c3603ccb63b616f02c0b31f77037b9 Mon Sep 17 00:00:00 2001 From: Joni Lahtinen Date: Mon, 11 Mar 2024 14:04:25 +0200 Subject: [PATCH] Do not implement existing values to weakmap --- .../oracle_enhanced_adapter.rb | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb b/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb index 0d66b3f66..4b8f722ee 100644 --- a/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +++ b/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb @@ -779,13 +779,15 @@ module ActiveRecord if RUBY_ENGINE == "jruby" require "jruby" - class org.jruby::RubyObjectSpace::WeakMap - field_reader :map - end + unless ObjectSpace::WeakMap.new.respond_to? :values + class org.jruby::RubyObjectSpace::WeakMap + field_reader :map + end - class ObjectSpace::WeakMap - def values - JRuby.ref(self).map.values.reject(&:nil?) + class ObjectSpace::WeakMap + def values + JRuby.ref(self).map.values.reject(&:nil?) + end + end end - end end