activerecord-jdbc-adapter icon indicating copy to clipboard operation
activerecord-jdbc-adapter copied to clipboard

`ArgumentError: wrong number of arguments (given 4, expected 1..3)` for `activerecord-jdbcsqlite3-adapter`

Open AlexWayfer opened this issue 2 years ago • 4 comments
trafficstars

I saw similar issues, but sqlite3 adapter seems to not be updated for years.

JRuby 9.4.3.0, ActiveRecord 7.0.7, activerecord-jdbcsqlite3-adapter 70.1.

ArgumentError: wrong number of arguments (given 4, expected 1..3)
                      initialize at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-70.1-java/lib/arjdbc/abstract/core.rb:12
                             new at org/jruby/RubyClass.java:931
                             new at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-70.1-java/lib/arjdbc/jdbc/callbacks.rb:14
                 jdbc_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-70.1-java/lib/arjdbc/jdbc/connection_methods.rb:10
                     public_send at org/jruby/RubyKernel.java:2119
                  new_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:656
         checkout_new_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:700
  try_to_checkout_new_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:679
              acquire_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:640
                        checkout at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:341
                      connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:181
             retrieve_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_adapters/abstract/connection_handler.rb:211
             retrieve_connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_handling.rb:313
                      connection at /home/alex/.rbenv/versions/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.0.7.2/lib/active_record/connection_handling.rb:280
                          <main> at /home/alex/Projects/ruby/email_address/test/activerecord/user.rb:34

AlexWayfer avatar Aug 24 '23 14:08 AlexWayfer

Facing similar issue for mysql adapter : When can we expect activerecord-jdbcmysql-adapter to support rails 7.1?

JRuby 9.4.5.0, ActiveRecord 7.1.0, activerecord-jdbcmysql-adapter 70.1.

Uncaught exception: wrong number of arguments (given 4, expected 1..3)

/home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-jdbc-adapter-70.1-java/lib/arjdbc/abstract/core.rb:13:in `initialize' /home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/userstamper-4.1.0/lib/userstamper/stampable.rb:22:in columns' /home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/activerecord-7.1.1/lib/active_record/model_schema.rb:503:in column_names' /home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/userstamper-4.1.0/lib/userstamper/utilities.rb:30:in available_association_columns' /home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/userstamper-4.1.0/lib/userstamper/stampable.rb:69:in add_userstamp_associations' /home/sam/Projects/SDKs/jruby-9.4.3.0/lib/ruby/gems/shared/gems/userstamper-4.1.0/lib/userstamper/stampable.rb:39:in stampable' /home/sam/Projects/awetest/app/models/regression_test/job.rb:14:in class:Job' /home/sam/Projects/awetest/app/models/regression_test/job.rb:3:in

sampadha avatar Jan 16 '24 13:01 sampadha

A year later, I have the opposite problem. I get this error:

23:40:20 web.1  | ArgumentError (wrong number of arguments (given 1, expected 4)):
23:40:20 web.1  |
23:40:20 web.1  | activerecord-jdbc-adapter-70.2 (java) lib/arjdbc/sqlite3/adapter.rb:92:in `initialize'
23:40:20 web.1  | activerecord-jdbc-adapter-70.2 (java) lib/arjdbc/abstract/statement_cache.rb:23:in `initialize'
23:40:20 web.1  | org/jruby/RubyClass.java:922:in `new'
23:40:20 web.1  | activerecord (7.2.1) lib/active_record/database_configurations/database_config.rb:26:in `new_connection'

My Gemfile contains:

IS_JRUBY = (defined? JRUBY_VERSION)
if IS_JRUBY
  ruby '3.1.4'
  gem 'activerecord-jdbc-adapter'
  gem 'jdbc-sqlite3'
else
  ruby "3.3.4"
  gem 'sqlite3', '>= 2.0.4', '~> 2.0'
end

My Gemfile.lock contains:

activerecord (7.2.1)
activerecord-jdbc-adapter (70.2-java)
jdbc-sqlite3 (3.42.0.0)

UPDATE: I have reverted to using Postgres so I no longer need an answer, but I will leave this here for informational purposes.

keithrbennett avatar Aug 25 '24 15:08 keithrbennett

@keithrbennett your problem is mostly due to the fact we do not support Rails 7.2. The thing we are not communicating well is that 70.x is Rails 7.0.x and when we support Rails 7.2 you will see a version 72.x come out for the adapters. It is good that postgresql is working but that is somewhat surprising since we have a lot of fixes coming in for 7.1 support. It is possible Rails 7.2 reverted something significant and the 70.x gems happen to work?

enebo avatar Aug 28 '24 21:08 enebo