[ 
https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17400173#comment-17400173
 ] 

Emond Papegaaij commented on WICKET-6913:
-----------------------------------------

A dependency upgrade normally is fine, but we guarantee API compatibility on 
upgrades within a major version. There's always a bit of a gray area when it 
comes to API changes in dependencies, as this is technically speaking not the 
Wicket API. However, swapping one dependency for an entirely different one can 
have serious consequences when upgrading. Therefore I opt to copy the updated 
module to Wicket 9.x under a new name. That way, we can stay entirely API 
compatible, and still offer support for Java 17.

> Java 17 compatibility
> ---------------------
>
>                 Key: WICKET-6913
>                 URL: https://issues.apache.org/jira/browse/WICKET-6913
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-spring
>    Affects Versions: 9.4.0
>            Reporter: Robert Bain
>            Assignee: Martin Tzvetanov Grigorov
>            Priority: Major
>             Fix For: 10.0.0
>
>
> Wicket's use of cglib means that as of Java 16, you need to specify 
> --illegal-access=permit. As of Java 17, this is no longer possible, which 
> I've verified using a JDK 17 Early-Access Build.
> See [https://github.com/cglib/cglib/issues/191]
> See 
> [https://stackoverflow.com/questions/66974846/java-lang-exceptionininitializererror-with-java-16-j-l-classformaterror-access]
>  
> {code}
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class 
> net.sf.cglib.proxy.EnhancerCaused by: java.lang.NoClassDefFoundError: Could 
> not initialize class net.sf.cglib.proxy.Enhancer at 
> org.apache.wicket.proxy.LazyInitProxyFactory.createProxy(LazyInitProxyFactory.java:182)
>  at 
> org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getFieldValue(AnnotProxyFieldValueFactory.java:166)
>  at org.apache.wicket.injection.Injector.inject(Injector.java:111) at 
> org.apache.wicket.spring.injection.annot.SpringComponentInjector.inject(SpringComponentInjector.java:124)
>  at 
> org.apache.wicket.spring.injection.annot.SpringComponentInjector.onInstantiation(SpringComponentInjector.java:130)
>  at 
> org.apache.wicket.application.ComponentInstantiationListenerCollection$1.notify(ComponentInstantiationListenerCollection.java:38)
>  at 
> org.apache.wicket.application.ComponentInstantiationListenerCollection$1.notify(ComponentInstantiationListenerCollection.java:34)
>  at 
> org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80)
>  at 
> org.apache.wicket.application.ComponentInstantiationListenerCollection.onInstantiation(ComponentInstantiationListenerCollection.java:33)
>  at org.apache.wicket.Component.<init>(Component.java:690) at 
> org.apache.wicket.MarkupContainer.<init>(MarkupContainer.java:179) at 
> org.apache.wicket.Page.<init>(Page.java:171) at 
> org.apache.wicket.Page.<init>(Page.java:135) at 
> org.apache.wicket.markup.html.WebPage.<init>(WebPage.java:74)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to