nio4r icon indicating copy to clipboard operation
nio4r copied to clipboard

JRuby build uses bytecode format greater than Java 8

Open enebo opened this issue 1 year ago • 2 comments

$ /home/enebo/work/release/release/jruby-9.4.8.0/bin/jruby   -S rails server
=> Booting Puma
=> Rails 7.0.8.4 application starting in development 
=> Run `bin/rails server --help` for more startup options
Puma starting in single mode...
* Puma version: 5.6.8 (jruby 9.4.8.0 - ruby 3.1.4) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 3055755
* Listening on http://[::1]:3000
* Listening on http://127.0.0.1:3000
Exiting
NameError: cannot link Java class org.nio4r.Nio4r org/nio4r/Nio4r has been compiled by a more recent version of the Java Runtime (class file version 53.0), this version of the Java Runtime only recognizes class file versions up to 52.0
  method_missing at org/jruby/javasupport/JavaPackage.java:253
          <main> at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/nio4r-2.7.3-java/lib/nio.rb:56
         require at org/jruby/RubyKernel.java:1184
         require at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/zeitwerk-2.6.16/lib/zeitwerk/kernel.rb:34
      initialize at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/puma-5.6.8-java/lib/puma/reactor.rb:24
             new at org/jruby/RubyClass.java:922
             run at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/puma-5.6.8-java/lib/puma/server.rb:244
             run at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/puma-5.6.8-java/lib/puma/single.rb:53
             run at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/puma-5.6.8-java/lib/puma/launcher.rb:193
             run at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/puma-5.6.8-java/lib/rack/handler/puma.rb:72
           start at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/rack-2.2.9/lib/rack/server.rb:327
           start at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/commands/server/server_command.rb:38
         perform at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/commands/server/server_command.rb:143
             tap at <internal:uri:classloader:/jruby/kernel/kernel.rb>:19
         perform at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/commands/server/server_command.rb:134
             run at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/thor-1.3.1/lib/thor/command.rb:28
  invoke_command at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/thor-1.3.1/lib/thor/invocation.rb:127
        dispatch at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/thor-1.3.1/lib/thor.rb:527
         perform at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/command/base.rb:87
          invoke at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/command.rb:48
          <main> at /home/enebo/work/release/release/jruby-9.4.8.0/lib/ruby/gems/shared/gems/railties-7.0.8.4/lib/rails/commands.rb:18
         require at org/jruby/RubyKernel.java:1184
          <main> at bin/rails:4
false

This was introduced in this commit: https://github.com/socketry/nio4r/commit/db21697acb14c9003b9d793d0511d942820e8e1a

JRuby 9.4 supports Java 8 still.

enebo avatar Jul 02 '24 14:07 enebo

Do you mind submitting a PR to fix this? Thanks!

ioquatix avatar Jul 02 '24 15:07 ioquatix

@ioquatix done!

enebo avatar Jul 02 '24 17:07 enebo

Could version 2.7.4 be built with this fix so that the last version of 2.7.x supports JRuby on Java 8? Thanks!

gacha avatar Oct 28 '24 12:10 gacha

Thanks for the reminder, I've released v2.7.4 just now.

ioquatix avatar Oct 28 '24 20:10 ioquatix