Details
-
Bug
-
Status: Closed
-
Trivial
-
Resolution: Fixed
-
None
-
None
Description
The SEOHelperComponentTest class for the SEO Support plugin creates a proxy object using private interfaces.
This works up to Java 8, but fails as of Java 8.
This is a documented incompatibility between Java 7 and Java 8, Area: Core Libs / java.lang.reflect:
The java.lang.reflect.Proxy class that implements non-public interface will be non-public, final, and not abstract. Prior to Java SE 8, the proxy class was public, final and not abstract.
As result, method access to proxies objects based on private interfaces no longer works (without otherwise dynamically modifying the accessibilty).
The fix is trivial: just make these interfaces public, which in the context of this testcase indeed is trivial.
Take away: be very careful with proxying interfaces as of Java 8.