socketry / nio4r

Cross-platform asynchronous I/O primitives for scalable network clients and servers.
Other
965 stars 86 forks source link

JRuby build uses bytecode format greater than Java 8 #316

Open enebo opened 1 week ago

enebo commented 1 week ago
$ /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.

ioquatix commented 1 week ago

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

enebo commented 1 week ago

@ioquatix done!