Skip to content

Unable to use protected java method in jruby with jdk9 #4851

@monkstone

Description

@monkstone

Unable to use inherited, protected method with jdk9.

Environment

Failing Setup:

Passing Setup

  • jruby 9.1.14.0 (2.3.3) 2017-11-08 2176f24 OpenJDK 64-Bit Server VM 25.151-b12 on 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12 +jit [linux-x86_64]

  • Linux tux-PC-2163 4.10.0-38-generic Add quick support for using jruby on MSYS | MinGW #42~16.04.1-Ubuntu SMP Tue Oct 10 16:32:20 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Expected Behavior

Actual Behavior

  • Fails with TypeError message
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper$ReflectiveAccess to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper$ReflectiveAccess
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
TypeError: illegal access on 'runSketch': class org.jruby.javasupport.JavaMethod cannot access a member of class processing.core.PApplet with modifiers "protected"
  initialize at /home/tux/rbprocessing/lib/rbprocessing/app.rb:10
      <main> at test.rb:18

The runSketch method

The runSketch method is provided by processing.org, primarily for the benefit of processing.py, that uses jython to create a python wrapper around processing. In JRubyArt and propane I have created a ruby wrapper around processing using jruby. Is there a way I can still access this method with jdk9?

Behaviour since confirmed with simpler java test case, that is also included in repo.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions