Error when creating instances of classes extending ActiveRecord::Base
---------------------------------------------------------------------

                 Key: JRUBY-1627
                 URL: http://jira.codehaus.org/browse/JRUBY-1627
             Project: JRuby
          Issue Type: Bug
          Components: ActiveRecord-JDBC
    Affects Versions: JRuby 1.1b1
         Environment: Linux; Edge Rails; ActiveRecord-JDBC 0.6; 
activerecord-jdbcderby-adapter (0.6)

            Reporter: Elliot Smith
         Attachments: jdbc_adapter.rb.patch

Creating new instances of class inheriting from ActiveRecord::Base works fine; 
however, on updating the same model, this error occurs:

*******
wrong # of arguments(2 for 1)

vendor/rails/activerecord/lib/active_record/base.rb:2029:in `update'
vendor/rails/activerecord/lib/active_record/locking/optimistic.rb:70:in 
`update_with_lock'
vendor/rails/activerecord/lib/active_record/callbacks.rb:240:in 
`update_with_callbacks'
vendor/rails/activerecord/lib/active_record/timestamp.rb:38:in 
`update_with_timestamps'
vendor/rails/activerecord/lib/active_record/base.rb:2022:in `create_or_update'
vendor/rails/activerecord/lib/active_record/callbacks.rb:213:in 
`create_or_update_with_callbacks'
vendor/rails/activerecord/lib/active_record/base.rb:1774:in `save'
vendor/rails/activerecord/lib/active_record/validations.rb:893:in 
`save_with_validation'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in 
`save_with_transactions'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in `transaction'
vendor/rails/activerecord/lib/active_record/transactions.rb:90:in `transaction'
vendor/rails/activerecord/lib/active_record/transactions.rb:86:in `transaction'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in 
`save_with_transactions'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in 
`rollback_active_record_state!'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in 
`save_with_transactions'
vendor/rails/activerecord/lib/active_record/transactions.rb:118:in `update'
app/controllers/actors_controller.rb:62:in `call'
vendor/rails/actionpack/lib/action_controller/mime_responds.rb:106:in 
`respond_to'
app/controllers/actors_controller.rb:62:in `update'
app/controllers/actors_controller.rb:62:in `perform_action'
vendor/rails/actionpack/lib/action_controller/filters.rb:697:in `call_filters'
vendor/rails/actionpack/lib/action_controller/filters.rb:689:in 
`perform_action_with_filters'
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in 
`perform_action_with_benchmark'
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in `measure'
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in 
`perform_action_with_benchmark'
vendor/rails/actionpack/lib/action_controller/benchmarking.rb:68:in 
`perform_action_with_rescue'
vendor/rails/actionpack/lib/action_controller/caching.rb:669:in 
`perform_action_with_caching'
vendor/rails/actionpack/lib/action_controller/caching.rb:668:in `cache'
vendor/rails/activerecord/lib/active_record/query_cache.rb:8:in `cache'
vendor/rails/actionpack/lib/action_controller/caching.rb:668:in 
`perform_action_with_caching'
vendor/rails/actionpack/lib/action_controller/caching.rb:668:in `process'
vendor/rails/actionpack/lib/action_controller/filters.rb:685:in 
`process_with_filters'
vendor/rails/actionpack/lib/action_controller/session_management.rb:123:in 
`process_with_session_management_support'
vendor/rails/actionpack/lib/action_controller/base.rb:386:in `process'
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:171:in 
`handle_request'
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch'
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in 
`dispatch_cgi'
vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch'
vendor/rails/railties/lib/webrick_server.rb:112:in `handle_dispatch'
vendor/rails/railties/lib/webrick_server.rb:78:in `service'
/home/ell/apps/jruby-1.1b1/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/home/ell/apps/jruby-1.1b1/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/home/ell/apps/jruby-1.1b1/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/home/ell/apps/jruby-1.1b1/lib/ruby/1.8/webrick/server.rb:162:in `start'
*******

I believe this is down to the attributes_with_quotes method in 
activerecord-jdbc-adapter-0.6/lib/active_record/connection_adapters/jdbc_adapter.rb
 (line 59) having the wrong signature (taking one argument instead of two). The 
version of this in ActiveRecord itself has a second parameter, 
include_readonly_attributes. Adding this second parameter to the method 
signature in ActiveRecord-JDBC fixes this bug.

The attached patch mirrors the effect of the include_readonly_attributes 
parameter in ActiveRecord.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to