On 11/09/2015 10:21, Jochen Theodorou wrote:

the error in Guava is not a failed attempt, it is a VerifyError, because AccessibleObject#setAccessible is now final and com.google.common.reflect.Element overrides the method.

As far as I have seen Guava makes a parallel reflective structure of a class to be able to better handle them. A the same time they proxy to their counter parts, but do also implement interfaces like Member. That requires for example to override setAccessible, which will just make the same call on the delegate. I don't see how they can easily fix that without giving up their mirror structure and have it exchangeable with the java reflective classes at the same time. But I am not on the guava team, so they know hopefully better
Okay, I mis-read one of the mails and assumed that setAccessible was failing and leading to other errors.

In the current builds then setAccessible is final, and yes, this is an incompatible change. The reason for this is that the method is now @CS. I think we need to consider changing this so that setAccessible is overridden in the final Field, Constructor, and Method classes instead.

-Alan

Reply via email to