-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Milestone
Description
Environment
jruby 9.2.8.0 (2.5.3) 2019-08-12 a1ac7ff OpenJDK 64-Bit Server VM 12.0.2+10 on 12.0.2+10 +jit [mswin32-x86_64]
JavaTest.java
public class JavaTest {
public interface PublicInterface {
public void publicMethod(Integer a);
public void publicMethod(Long a);
}
public PublicInterface publicMember = new PrivateSubclass();
private class PrivateSubclass implements PublicInterface {
public void publicMethod(Integer a) {System.out.println("publicMethod(Integer)");}
public void publicMethod(Long a) {System.out.println("publicMethod(Long)");}
}
}test.rb
java_import 'JavaTest'
JavaTest.new.publicMember.java_method(:publicMethod, [java.lang.Integer.java_class]).call(1)Expected Behavior
You can call methods of private subclasses with java_method in java 8.
$ javac JavaTest.java
$ jruby test.rb
publicMethod(Integer)
Actual Behavior
You can't call methods of private subclasses with java_method in java 12.
$ jruby test.rb
2019-08-20T09:36:29.010+09:00 [main] WARN FilenoUtil : Native subprocess control requires open access to sun.nio.ch
Pass '--add-opens java.base/sun.nio.ch=org.jruby.dist' or '=org.jruby.core' to enable.
TypeError: illegal access on 'publicMethod': class org.jruby.javasupport.JavaMethod (in module org.jruby.dist) cannot access a member of class JavaTest$PrivateSubclass with modifiers "public"
call at org/jruby/RubyMethod.java:120
<main> at test.rb:2
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels