[ 
https://issues.apache.org/jira/browse/ARIES-1486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Samuel Bratton updated ARIES-1486:
----------------------------------
    Attachment: aries-1486.patch

Java 8 adds synthetic private methods in support of default methods on 
interfaces. Attached patch to ignore such methods. Added test case which will 
fail on Java 8 without the patch. All test run cleanly on Java 7 and Java 8.

Absent the patch, the new test case will fail with following error:

checkInterfacesLambda(org.apache.aries.proxy.itests.BasicProxyBundlesTest)  
Time elapsed: 0.198 sec  <<< ERROR!
java.lang.ClassFormatError: Absent Code attribute in method that is not native 
or abstract in class file Proxyceee585d_5a1f_4c3c_af7a_91904d2b0f6f
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
        at 
org.apache.aries.proxy.impl.interfaces.ProxyClassLoader.createProxyClass(ProxyClassLoader.java:157)



> can't create proxy on java 8 vm  for interfaces containing lambda
> -----------------------------------------------------------------
>
>                 Key: ARIES-1486
>                 URL: https://issues.apache.org/jira/browse/ARIES-1486
>             Project: Aries
>          Issue Type: Bug
>          Components: Proxy
>    Affects Versions: proxy-impl-1.0.5
>         Environment: Java 8 vm
>            Reporter: Samuel Bratton
>         Attachments: aries-1486.patch, proxyTest.patch
>
>
> Creating proxy of an interface containing a default method implemented with a 
> lambda will result in a invalid Proxy class file (see attached test case).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to