On 03/10/2016 16:15, Rafael Winterhalter wrote:

:

triggering in the following reflective invocation in the Java layer of the rule engine's module:

Object foo = Foo.getInstance();
foo.getClass().getMethod("qux").invoke(foo); // Causes IllegalAccessError

IllegalAccessException isn't new here of course, it's always been possible that getClass() returns a type that is not accessible. In this case, then Foo.class.getMethod("qux").invoke(foo) is what you want. I do have sympathy of course of course, it almost feels like there a new method is needed to here to walk the hierarchy to find the method on the accessible type (I think Peter Levart had an example in a recent mail).

:

For this and many other reasons, as for this particular application, I do not believe it will ever make it past the "weak module" phase. A lot of code was built based on the assumption that reflection can just cut through.
Sure but I don't think there is any expectation that every library or application will immediately migrate to strong modules. Getting to weak modules will be a huge achievement in many cases. It means there will be module names, it means that cycles and split package issues have been addressed, and it means that dependences are declared. No failure in getting that far.

-Alan.

Reply via email to