Looks like this is the commit that regressed. https://github.com/jruby/activerecord-jdbc-adapter/commit/ff14f8d3f626450f3f99bf1d2161254724c514c3
Unfortunately a change was made that increased compatibility with newer versions of Rails but broke Rails 2.x. I'll commit changes to add back the functionality for Rails 2.x, for now I suggest going back to 1.2.1 or 1.2.0. /Nick On Fri, Feb 17, 2012 at 8:58 AM, Lance Ball <[email protected]> wrote: > Thanks Charlie > > I hope to poke this more today. But a quick data point. The problem exists > with activerecord-jdbc-adapter-1.2.2 but not in 1.1.3. > > Lance > > On Feb 17, 2012, at 8:00 AM, Charles Oliver Nutter wrote: > >> This looks promising: >> >> http://stackoverflow.com/questions/1915166/how-to-get-the-insert-id-in-jdbc >> >> - Charlie >> >> On Thu, Feb 16, 2012 at 5:54 PM, Lance Ball <[email protected]> wrote: >>> FWIW, I've narrowed it down to this code in ActiveRecord::Base#create >>> >>> self.id = connection.insert(statement, "#{self.class.name} Create", >>> self.class.primary_key, self.id, self.class.sequence_name) >>> >>> The call to insert is always returning 1 - at least in the successful case. >>> >>> TBH, I'm not sure if this is jruby, activerecord-jdbc-adapter, or >>> jdbc-postgres that's behaving badly. I've been digging into >>> activerecord-jdbc-adapter and friends today to try and figure out what's >>> happening in Connection#insert, but wow that was a big can of worms that I >>> was unable to fully grok in a single afternoon. >>> >>> Lance >>> >>> On Feb 16, 2012, at 10:10 AM, Lance Ball wrote: >>> >>>> I have run into this issue as well. I have not yet dug into a fix, but >>>> have been able to reproduce the problem with a simple script that uses >>>> activerecord 2.3.11 on jruby 1.6.5. >>>> >>>> Here is the source: >>>> https://github.com/lance/pk_sequence_test >>>> >>>> Here is the output: >>>> $ bundle exec pk_sequence_test.rb >>>> -- create_table(:pk_tests, {:force=>true}) >>>> -> 0.1440s >>>> -> 0 rows >>>> -- initialize_schema_migrations_table() >>>> -> 0.0030s >>>> -- assume_migrated_upto_version(0, "db/migrate") >>>> -> 0.0030s >>>> #<PkTest id: 1, name: "foo"> >>>> #<PkTest id: 1, name: "bar"> >>>> #<PkTest id: 1, name: "foobar"> >>>> #<PkTest id: 1, name: "barfoo"> >>>> >>>> Here is my environment. >>>> $ gem list >>>> >>>> *** LOCAL GEMS *** >>>> >>>> activerecord (2.3.11) >>>> activerecord-jdbc-adapter (1.2.2) >>>> activesupport (2.3.11) >>>> bundler (1.0.22) >>>> jdbc-postgres (9.1.901) >>>> pg (0.13.1) >>>> >>>> $ rvm info >>>> >>>> jruby-1.6.5@arjdbc: >>>> >>>> system: >>>> uname: "Darwin Neptune.local 11.3.0 Darwin Kernel Version 11.3.0: >>>> Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64" >>>> bash: "/bin/bash => GNU bash, version 3.2.48(1)-release >>>> (x86_64-apple-darwin11)" >>>> zsh: "/bin/zsh => zsh 4.3.11 (i386-apple-darwin11.0)" >>>> >>>> rvm: >>>> version: "rvm 1.9.2 by Wayne E. Seguin ([email protected]) >>>> [https://rvm.beginrescueend.com/]" >>>> >>>> ruby: >>>> interpreter: "jruby" >>>> version: "1.6.5" >>>> date: "2011-10-25" >>>> platform: "darwin-x86_64-java" >>>> patchlevel: "TM" >>>> full_version: "jruby 1.6.5 (ruby-1.8.7-p330) (2011-10-25 9dcd388) (Java >>>> HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]" >>>> >>>> homes: >>>> gem: "/Users/lanceball/.rvm/gems/jruby-1.6.5@arjdbc" >>>> ruby: "/Users/lanceball/.rvm/rubies/jruby-1.6.5" >>>> >>>> binaries: >>>> ruby: "/Users/lanceball/.rvm/rubies/jruby-1.6.5/bin/ruby" >>>> irb: "/Users/lanceball/.rvm/rubies/jruby-1.6.5/bin/irb" >>>> gem: "/Users/lanceball/.rvm/rubies/jruby-1.6.5/bin/gem" >>>> rake: "/Users/lanceball/.rvm/rubies/jruby-1.6.5/bin/rake" >>>> >>>> environment: >>>> PATH: >>>> "/Users/lanceball/.rvm/gems/jruby-1.6.5@arjdbc/bin:/Users/lanceball/.rvm/gems/jruby-1.6.5@global/bin:/Users/lanceball/.rvm/rubies/jruby-1.6.5/bin:/Users/lanceball/.rvm/bin:/Users/lanceball/bin:/Developer/usr/bin:/Users/lanceball/local/node/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/PostgreSQL/9.0/bin:/opt/local/ImageMagick-6.6.9/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/usr/local/MacGPG2/bin:/usr/local/git/bin" >>>> GEM_HOME: "/Users/lanceball/.rvm/gems/jruby-1.6.5@arjdbc" >>>> GEM_PATH: >>>> "/Users/lanceball/.rvm/gems/jruby-1.6.5@arjdbc:/Users/lanceball/.rvm/gems/jruby-1.6.5@global" >>>> MY_RUBY_HOME: "/Users/lanceball/.rvm/rubies/jruby-1.6.5" >>>> IRBRC: "/Users/lanceball/.rvm/rubies/jruby-1.6.5/.irbrc" >>>> RUBYOPT: "" >>>> gemset: "arjdbc" >>>> >>>> >>>> >>>> >>>> >>>> On Feb 15, 2012, at 2:26 AM, Charles Oliver Nutter wrote: >>>> >>>>> I will echo Nick's suggestion: reproduce in a simple script. If we can >>>>> narrow it down to a simple schema and script, the fix may be easy to >>>>> find. >>>>> >>>>> My money is on auto-generated ID not propagating back out properly during >>>>> #save. >>>>> >>>>> Feel free to open an AR-JDBC issue at this point: >>>>> https://github.com/jruby/activerecord-jdbc-adapter/issues >>>>> >>>>> - Charlie >>>>> >>>>> On Tue, Feb 14, 2012 at 4:33 PM, Vivek Pandey <[email protected]> >>>>> wrote: >>>>>> that might be the case atleast from pure observation. My rubymine does >>>>>> not >>>>>> let me step inside ActiveRecord::Base.save() with jruby rack:( It does >>>>>> not >>>>>> look like anyone on this list has experienced this problem, that tells me >>>>>> maybe its some other dependencies or something else causing it. This is >>>>>> pretty basic stuff and should have worked. I will update you with my >>>>>> findings. >>>>>> >>>>>> vivek. >>>>>> >>>>>> >>>>>> On Tue, Feb 14, 2012 at 1:13 PM, Charles Oliver Nutter >>>>>> <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> Ahh, that's interesting. So perhaps there's something in save that >>>>>>> should be getting a generated ID and we're not doing that right? >>>>>>> >>>>>>> - Charlie >>>>>>> >>>>>>> On Tue, Feb 14, 2012 at 2:36 PM, Vivek Pandey <[email protected]> >>>>>>> wrote: >>>>>>>> Jruby rackup fails the same way, which is the persisted model object id >>>>>>>> is >>>>>>>> shown as 1 instead of its actual value. I ran it thru debugger and >>>>>>>> right >>>>>>>> after product.save(false) product.id gives 1 and if I do >>>>>>>> Product.find_by_name(), it gives me the just persisted object >>>>>>>> correctly. >>>>>>>> >>>>>>>> vivek. >>>>>>>> >>>>>>>> >>>>>>>> On Tue, Feb 14, 2012 at 8:30 AM, Nick Sieger <[email protected]> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> How about rackup on JRuby? Works or fails? >>>>>>>>> >>>>>>>>> /Nick >>>>>>>>> >>>>>>>>> On Tue, Feb 14, 2012 at 9:43 AM, Vivek Pandey <[email protected]> >>>>>>>>> wrote: >>>>>>>>>> Sorry, forgot to give my env. Running my env on rails is non-trivial >>>>>>>>>> at >>>>>>>>>> present. All I can tell is that when I run rackup with MRI it all >>>>>>>>>> works >>>>>>>>>> well >>>>>>>>>> but the same when warbled and deployed on tomcat, gives me the id of >>>>>>>>>> 1! >>>>>>>>>> Something must be silly going on here not sure what. >>>>>>>>>> >>>>>>>>>> thanks, >>>>>>>>>> >>>>>>>>>> vivek. >>>>>>>>>> >>>>>>>>>> JRuby 1.6.5 with JDK 1.6 >>>>>>>>>> >>>>>>>>>> $ bundle show >>>>>>>>>> >>>>>>>>>> * activerecord (2.3.8) >>>>>>>>>> * activerecord-activesalesforce-adapter (2.3.6.1 40ab887) >>>>>>>>>> * activerecord-jdbc-adapter (1.2.2) >>>>>>>>>> * activerecord-jdbcpostgresql-adapter (1.2.2) >>>>>>>>>> * activesupport (2.3.8) >>>>>>>>>> * arel (2.2.1) >>>>>>>>>> * backports (2.3.0) >>>>>>>>>> * blankslate (2.1.2.4) >>>>>>>>>> * bouncy-castle-java (1.5.0146.1) >>>>>>>>>> * builder (3.0.0) >>>>>>>>>> * bundler (1.0.21) >>>>>>>>>> * eventmachine (0.12.10) >>>>>>>>>> * haml (3.1.4) >>>>>>>>>> * hashery (1.5.0) >>>>>>>>>> * hpricot (0.8.6) >>>>>>>>>> * httpclient (2.2.1) >>>>>>>>>> * i18n (0.6.0) >>>>>>>>>> * jdbc-postgres (9.1.901) >>>>>>>>>> * jruby-jars (1.6.6) >>>>>>>>>> * jruby-openssl (0.7.5) >>>>>>>>>> * jruby-rack (1.0.10) >>>>>>>>>> * json (1.4.6) >>>>>>>>>> * mail (2.4.1) >>>>>>>>>> * mime-types (1.17.2) >>>>>>>>>> * net-ldap (0.1.1) >>>>>>>>>> * nokogiri (1.5.0) >>>>>>>>>> * oauth (0.4.5) >>>>>>>>>> * polyglot (0.3.3) >>>>>>>>>> * pony (1.4) >>>>>>>>>> * rack (1.3.4) >>>>>>>>>> * rack-protection (1.2.0) >>>>>>>>>> * rack-test (0.6.1) >>>>>>>>>> * rake (0.9.2) >>>>>>>>>> * rest-client (1.6.0) >>>>>>>>>> * rjack-slf4j (1.5.10.0) >>>>>>>>>> * ruby-openid (2.1.8) >>>>>>>>>> * rubyzip (0.9.6.1) >>>>>>>>>> * sinatra (1.3.1) >>>>>>>>>> * sinatra-activerecord (0.1.3) >>>>>>>>>> * sinatra-contrib (1.3.1) >>>>>>>>>> * sinatra-reloader (1.0) >>>>>>>>>> * soap4r (1.5.8) >>>>>>>>>> * tilt (1.3.3) >>>>>>>>>> * treetop (1.4.10) >>>>>>>>>> * uuidtools (2.1.1) >>>>>>>>>> * warbler (1.3.2) >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Tue, Feb 14, 2012 at 6:53 AM, Charles Oliver Nutter >>>>>>>>>> <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> Hi Vivek! >>>>>>>>>>> >>>>>>>>>>> On Tue, Feb 14, 2012 at 8:15 AM, Vivek Pandey >>>>>>>>>>> <[email protected]> >>>>>>>>>>> wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> I am using JRuby with Sinatra and ActiveRecord as ORM. I have code >>>>>>>>>>>> such >>>>>>>>>>>> as >>>>>>>>>>>> this: >>>>>>>>>>>> >>>>>>>>>>>> ActiveRecord::Base.transaction do >>>>>>>>>>>> product.rollback_active_record_state! do >>>>>>>>>>>> if(product.save(false)) >>>>>>>>>>>> logger.debug "Prod ID: #{product.id}" >>>>>>>>>>>> yield if block_given? >>>>>>>>>>>> end >>>>>>>>>>>> end >>>>>>>>>>>> end >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> When I execute rackup with MRI 1.8.7p 357, it prints valid Prod >>>>>>>>>>>> ID. >>>>>>>>>>>> However >>>>>>>>>>>> when I deploy the same using jruby-rack/warbler, It always prints >>>>>>>>>>>> 1 >>>>>>>>>>>> as >>>>>>>>>>>> product id, however save is successful and persisted correctly in >>>>>>>>>>>> the >>>>>>>>>>>> DB. >>>>>>>>>>>> Its just that I get invalid product id, which is always 1. Anyone >>>>>>>>>>>> knows >>>>>>>>>>>> what >>>>>>>>>>>> might be going on here? >>>>>>>>>>> >>>>>>>>>>> I doubt jruby-rack has anything to do with it. Can you reproduce >>>>>>>>>>> with >>>>>>>>>>> "rails server"? What versions of everything? >>>>>>>>>>> >>>>>>>>>>> - Charlie >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> --------------------------------------------------------------------- >>>>>>>>>>> To unsubscribe from this list, please visit: >>>>>>>>>>> >>>>>>>>>>> http://xircles.codehaus.org/manage_email >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> --------------------------------------------------------------------- >>>>>>>>> To unsubscribe from this list, please visit: >>>>>>>>> >>>>>>>>> http://xircles.codehaus.org/manage_email >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe from this list, please visit: >>>>>>> >>>>>>> http://xircles.codehaus.org/manage_email >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe from this list, please visit: >>>>> >>>>> http://xircles.codehaus.org/manage_email >>>>> >>>>> >>>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this list, please visit: >>> >>> http://xircles.codehaus.org/manage_email >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> > > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
