Hi, yes, in j > 10 the workaround is different and the one you pushed :(.
Le ven. 21 déc. 2018 04:43, Andriy Redko <drr...@gmail.com> a écrit : > Hi Andy, > > I've committed a small patch to master [1] to fallback to > MethodHandles.privateLookupIn (JDK9+) > in case the main flow fails with IllegalAccessException, it seems to fix > the issue and properly > invoke the default method for JDK9+. As far as I know, at the moment there > is no universal > solution which works for JDK 8, 9, 10 and 11. Please let me know what do > you think. > > Thank you! > > [1] > https://github.com/apache/cxf/commit/58d9bcd12059c46713902b756881e80c2f28f030 > > Best Regards, > Andriy Redko > > Thursday, December 20, 2018, 3:52:29 PM, you wrote: > > AM> Hi Dennis, > > AM> I most likely introduced this with my fix for CXF-7922 - in that fix, I > AM> made some changes to internal JDK classes in ClientProxyImpl's > AM> invokeDefaultMethod method. The MP Rest Client (as well as the CXF > proxy > AM> client) should be able to invoke default methods, and there doesn't > seem to > AM> be a good way of doing that... Romain wrote a blog post on the subject > AM> here: > AM> > https://rmannibucau.wordpress.com/2014/03/27/java-8-default-interface-methods-and-jdk-dynamic-proxies/ > AM> - this was the idea behind that change, but I would bet that it is not > AM> allowed with JPMS enabled - and is most likely causing the failure. > > AM> It sounds like I need to find a better way to invoke default interface > AM> methods without using JDK internals. If anyone knows of a better way > or > AM> has any hints, please let me know. In the meantime, I could add > something > AM> like "assume Java 8" to skip the test in Java 9+ environments. What > do you > AM> think? > > AM> Thanks, > > AM> Andy > > AM> On Thu, Dec 20, 2018 at 2:33 PM Dennis Kieselhorst <d...@apache.org> > wrote: > > >> Hi, > > >> only CxfTypeSafeClientBuilderTest is missing to have a stable build from > >> JDK 9 - 11. > > >> java.lang.reflect.UndeclaredThrowableException > >> at > >> > org.apache.cxf.microprofile.client.CxfTypeSafeClientBuilderTest.testCanInvokeDefaultInterfaceMethods(CxfTypeSafeClientBuilderTest.java:173) > >> Caused by: java.lang.IllegalAccessException: access to public member > >> failed: > >> > org.apache.cxf.microprofile.client.mock.MyClient.myDefaultMethod[Ljava.lang.Object;@10cf09e8 > /invokeSpecial, > >> from org.apache.cxf.microprofile.client.mock.MyClient/2 (unnamed module > >> @14dd9eb7) > >> at > >> > org.apache.cxf.microprofile.client.CxfTypeSafeClientBuilderTest.testCanInvokeDefaultInterfaceMethods(CxfTypeSafeClientBuilderTest.java:173) > > >> Anyone seen something similar before? > > >> Cheers > >> Dennis > > >