IllegalAccessException if a default-method is called in Lazy-Loaded Proxy objects ---------------------------------------------------------------------------------
Key: IBATIS-595 URL: https://issues.apache.org/jira/browse/IBATIS-595 Project: iBatis for Java Issue Type: Bug Components: SQL Maps Affects Versions: 2.3.4 Reporter: Stefan Gmeiner Attachments: lazy-loader.patch We are using the iBatis enhanced (cglib) proxy for lazy loading our bean references. One of these returned-proxied object is accessing a default-modifier method of another class in the same package. The code compiles without error but running it throws an IllegalAccessException thrown from the CGLIB-Proxy as it tries to invoke a non-public (default or protected) method from a different package. I wrote a test case for this problem (see attached patch). There is a solution (at least for default-modifier methods) for this problem using cglib LazyLoader callbacks. This is a replacement for the invocation handler which also has the advantage of increasing the performance of proxied objects as no methods are intercepted. This solution is contained in the attached patch. Unfortunately cglib handles protected methods differently to default so this solutions does not work with protected method calls. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.