[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1740#comment-1740 ] Robert Bain commented on WICKET-6913: - "IMHO that's not true if the dependencies change" I suppose a dependency upgrade, I.E. a hypothetical cglib Java 17 upgrade falls into this category too, so even that potential easy way out is off the cards without a little misdirection / config? Or would the intention be that the user application pom specifies the newer cglib version? I've been over there asking if they're planning anything soon, so hopefully get feedback soon. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399989#comment-17399989 ] Emond Papegaaij commented on WICKET-6913: - Or we could copy the new module from master to 9.x under a new name (wicket-oic-bytebuddy) and provide both. I don't think we can just change the implementation, as minor versions are supposed to be drop-in replacements, and IMHO that's not true if the dependencies change. However, you might also argue that this is just an implementation detail and the API doesn't change. I do agree with Robert, that we should try to support Java 17, the next LTS, for Wicket 9.x. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399804#comment-17399804 ] Sven Meier commented on WICKET-6913: Seems to me we could fit this into Wicket 9.x - isn't the change mainly in LazyInitProxyFactory only? Maybe as an optional feature via toggle-switch. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Comment Edited] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399764#comment-17399764 ] Robert Bain edited comment on WICKET-6913 at 8/16/21, 3:07 PM: --- Feels like unless cglib step up to the plate, Wicket is going to block Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? I don't think it's cricket for a framework to block an LTS version over the medium to long term. Could Wicket 10 become Wicket 11 and Wicket 10 is Java 17 support? was (Author: robertandrewbain): Feels like unless cglib step up to the plate, Wicket is going to block Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? I don't think it's cricket for a framework to block an LTS version over the medium to long term. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Comment Edited] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399764#comment-17399764 ] Robert Bain edited comment on WICKET-6913 at 8/16/21, 2:34 PM: --- Feels like unless cglib step up to the plate, Wicket is going to block Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? I don't think it's cricket for a framework to block an LTS version over the medium to long term. was (Author: robertandrewbain): Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? I don't think it's cricket for a framework to block an LTS version over the medium to long term. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Comment Edited] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399764#comment-17399764 ] Robert Bain edited comment on WICKET-6913 at 8/16/21, 2:33 PM: --- Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? I don't think it's cricket for a framework to block an LTS version over the medium to long term. was (Author: robertandrewbain): Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Comment Edited] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399764#comment-17399764 ] Robert Bain edited comment on WICKET-6913 at 8/16/21, 2:30 PM: --- Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? The ASM bump? was (Author: robertandrewbain): Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399764#comment-17399764 ] Robert Bain commented on WICKET-6913: - Feels like unless cglib step up to the plate, Wicket is going to blocking Java 17 upgrade for a long time. What's the breaking change by moving to ByteBuddy? > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399726#comment-17399726 ] Martin Tzvetanov Grigorov commented on WICKET-6913: --- There is no date set yet. Wicket 10.x will use Jakarta EE APIs and several dependencies are still not available (e.g. Spring, Commons FileUpload, JBoss Weld (CDI), ...). > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399723#comment-17399723 ] Robert Bain commented on WICKET-6913: - [~mgrigorov] when is Wicket 10 likely to be released? > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Resolved] (WICKET-6836) Replace CGLib with ByteBuddy and/or Javassist
[ https://issues.apache.org/jira/browse/WICKET-6836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Tzvetanov Grigorov resolved WICKET-6836. --- Fix Version/s: 10.0.0 Assignee: Martin Tzvetanov Grigorov Resolution: Duplicate > Replace CGLib with ByteBuddy and/or Javassist > - > > Key: WICKET-6836 > URL: https://issues.apache.org/jira/browse/WICKET-6836 > Project: Wicket > Issue Type: Improvement > Components: wicket-ioc >Affects Versions: 9.0.0 > Environment: Linux >Reporter: Gert-Jan Schouten >Assignee: Martin Tzvetanov Grigorov >Priority: Minor > Fix For: 10.0.0 > > > When trying to run Wicket 9.0.0 under Java 15, it fails with an "Unsupported > class file major version 59" error from CGLib. > [This issue|https://github.com/cglib/cglib/issues/74] suggests that CGLib is > not actively maintained anymore. The Maven Central hasn't seen a new version > since August 2019. > To make sure Wicket keeps running on the latest Java version, a migration to > ByteBuddy and/or Javassist is recommended. > This is especially relevant since Oracle now only supports the latest version > of OpenJDK, requiring OpenJDK users to switch to the latest version every 6 > months. -- This message was sent by Atlassian Jira (v8.3.4#803005)
buildbot success in on wicket-branch-8.x
The Buildbot has detected a restored build on builder wicket-branch-8.x while building wicket. Full details are available at: https://ci.apache.org/builders/wicket-branch-8.x/builds/245 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf945_ubuntu Build Reason: The SingleBranchScheduler scheduler named 'on-wicket-branch-8.x-commit' triggered this build Build Source Stamp: [branch wicket-8.x] 4d7fe80a85a0d6f0cfb2a4459abb6ea4a66f553c Blamelist: Martin Tzvetanov Grigorov Build succeeded! Sincerely, -The Buildbot
[jira] [Resolved] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Tzvetanov Grigorov resolved WICKET-6913. --- Fix Version/s: 10.0.0 Assignee: Martin Tzvetanov Grigorov Resolution: Fixed Replaced CGLib with ByteBuddy in master branch (Wicket 10.x). For Wicket 9.x we cannot make such big change so we will have to wait for a new CGLib release. > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] branch wicket-9.x updated (f9c9873 -> 86b02b9)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch wicket-9.x in repository https://gitbox.apache.org/repos/asf/wicket.git. from f9c9873 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data add 86b02b9 Explicitly install OpenJDK 11 and Maven No new revisions were added by this update. Summary of changes: .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399702#comment-17399702 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399706#comment-17399706 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399705#comment-17399705 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399704#comment-17399704 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399703#comment-17399703 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399701#comment-17399701 ] ASF subversion and git services commented on WICKET-6913: - Commit 8cfffea6441153a2c59700e4db30d71857fd0cbe in wicket's branch refs/heads/master from Martin Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8cfffea ] WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399708#comment-17399708 ] ASF GitHub Bot commented on WICKET-6913: martin-g merged pull request #476: URL: https://github.com/apache/wicket/pull/476 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@wicket.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[GitHub] [wicket] martin-g merged pull request #476: WICKET-6913 Replace CGLib with ByteBuddy
martin-g merged pull request #476: URL: https://github.com/apache/wicket/pull/476 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@wicket.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org
[wicket] branch master updated: WICKET-6913 Replace CGLib with ByteBuddy (#476)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git The following commit(s) were added to refs/heads/master by this push: new 8cfffea WICKET-6913 Replace CGLib with ByteBuddy (#476) 8cfffea is described below commit 8cfffea6441153a2c59700e4db30d71857fd0cbe Author: Martin Grigorov AuthorDate: Mon Aug 16 14:47:57 2021 +0300 WICKET-6913 Replace CGLib with ByteBuddy (#476) * WICKET-6913 Replace CGLib with ByteBuddy in LazyInitProxyFactory TODO: Update the Objenesis related classes too and wicket-jmx (cherry picked from commit 8e1a15b3c08a59cc21c285440d1bf4d3b1876419) * WICKET-6913 Convert Objenesis proxy generator to ByteBuddy (cherry picked from commit 43f040e1ffc2ea03a458cb74aca186e2692e63e8) * WICKET-6913 Replace CGLib with ByteBuddy Replace all occurrences of "cglib" with "byte-buddy". Merge AbstractByteBuddyInterceptor and ByteBuddyInterceptor. I see no need of both. If an application needs special impl of #writeReplace() then it could extend ByteBuddyInterceptor and override it. Improve Maven dependency management related to byte-buddy. * WICKET-6913 Set the ByteBuddy interceptor after creating an instance This is needed because otherwise we may get a cached generated class with wrong interceptor (i.e. IProxyTargetLocator) for classes with generics * WICKET-6913 Fix typos in javadoc --- NOTICE | 8 +- README.md | 4 +- pom.xml| 12 +- wicket-examples/src/main/resources/META-INF/NOTICE | 10 +- wicket-ioc/pom.xml | 8 +- wicket-ioc/src/main/java/module-info.java | 2 +- .../apache/wicket/proxy/LazyInitProxyFactory.java | 238 ++--- ...tor.java => ObjenesisByteBuddyInterceptor.java} | 8 +- .../proxy/objenesis/ObjenesisProxyFactory.java | 28 +-- .../proxy/objenesis/ObjenesisProxyReplacement.java | 2 +- .../wicket/injection/util/MockDependency.java | 2 +- .../wicket/proxy/LazyInitProxyFactoryTest.java | 51 +++-- .../wicket/proxy/PackagePrivateConcreteObject.java | 2 +- .../apache/wicket/proxy/util/ConcreteObject.java | 2 +- wicket-jmx/pom.xml | 4 +- wicket-jmx/src/main/java/module-info.java | 2 +- .../java/org/apache/wicket/jmx/Initializer.java| 130 +++ .../org/apache/wicket/jmx/wrapper/Application.java | 21 -- .../wicket/jmx/wrapper/ApplicationSettings.java| 9 - .../annot/SpringBeanWithGenericsTest.java | 2 +- 20 files changed, 268 insertions(+), 277 deletions(-) diff --git a/NOTICE b/NOTICE index 3e462db..b212522 100644 --- a/NOTICE +++ b/NOTICE @@ -53,11 +53,11 @@ src/./wicket-examples This product includes software developed by the Spring Framework Project (http://www.springframework.org). - This product includes software developed by the CGLib Project - (http://cglib.sourceforge.net). + This product includes software developed by the ByteBuddy Project + (https://bytebuddy.net/). - This product includes ASM, released under a BSD style license (http://asm.objectweb.org). - Copyright (c) 2000-2005 INRIA, France Telecom + This product includes ASM, released under a BSD style license (https://asm.ow2.io/). + Copyright (c) 2000-2011 INRIA, France Telecom This product includes jhighlight (https://jhighlight.dev.java.net/) which is released under CDDL 1.0 license (http://www.opensource.org/licenses/cddl1.php). diff --git a/README.md b/README.md index 01e9982..32b9555 100644 --- a/README.md +++ b/README.md @@ -158,8 +158,8 @@ the src/ folder. - wicket-ioc: -cglib 3.1 (http://cglib.sourceforge.net/) and -asm-util 5.0.3 (http://asm.objectweb.org/) +byte-buddy 1.11.12 (https://bytebuddy.net/) and +asm-util 9.1 (https://asm.ow2.io/) - wicket-spring: diff --git a/pom.xml b/pom.xml index 689a079..5e7a2b4 100644 --- a/pom.xml +++ b/pom.xml @@ -137,8 +137,8 @@ 9.1 1.9.6 3.19.0 + 1.11.12 4.1.0 - 3.3.0 3.2.2 4.4 1.4 @@ -259,11 +259,6 @@ provided - cglib - cglib - ${cglib.version} - - com.fasterxml.jackson.core jackson-databind ${jackson.version} @@ -323,6 +318,11 @@ true +
[wicket] branch master updated (866fefc -> ba21696)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git. from 866fefc Explicitly install OpenJDK 11 and Maven add ba21696 Bump SLF4J to 2.0.0-alpha4 No new revisions were added by this update. Summary of changes: pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399694#comment-17399694 ] ASF subversion and git services commented on WICKET-6913: - Commit 582e494ce13d6af4ac3e325bc55e37f399811d4d in wicket's branch refs/heads/WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=582e494 ] Merge branch 'master' into WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399692#comment-17399692 ] ASF subversion and git services commented on WICKET-6914: - Commit 47cf4ff8a44a1b91d2395e4eed639087b6ee2908 in wicket's branch refs/heads/WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=47cf4ff ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests (cherry picked from commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Fix For: 10.0.0, 9.5.0, 8.14.0 > > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6913) Java 17 compatibility
[ https://issues.apache.org/jira/browse/WICKET-6913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399693#comment-17399693 ] ASF subversion and git services commented on WICKET-6913: - Commit 3865a881786ab0cfa303b229581c592b91764294 in wicket's branch refs/heads/WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=3865a88 ] Merge branch 'master' into WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x > 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 >Priority: Major > > 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.(Component.java:690) at > org.apache.wicket.MarkupContainer.(MarkupContainer.java:179) at > org.apache.wicket.Page.(Page.java:171) at > org.apache.wicket.Page.(Page.java:135) at > org.apache.wicket.markup.html.WebPage.(WebPage.java:74) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399691#comment-17399691 ] ASF subversion and git services commented on WICKET-6914: - Commit d22d154ff4d3245df6ecb52cfb00f412b0a25bef in wicket's branch refs/heads/WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=d22d154 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax (cherry picked from commit 06e9f53dbe79a11bf6512263351edc9481dd5619) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Fix For: 10.0.0, 9.5.0, 8.14.0 > > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] branch WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x updated (48a12e7 -> 582e494)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x in repository https://gitbox.apache.org/repos/asf/wicket.git. from 48a12e7 WICKET-6913 Fix typos in javadoc add 8f8ccea Bump SLF4J to 2.0.0-alpha3 add d22d154 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data add e1930d2 Simplify JUnit assertions add 47cf4ff WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data add 866fefc Explicitly install OpenJDK 11 and Maven add 3865a88 Merge branch 'master' into WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x add ba21696 Bump SLF4J to 2.0.0-alpha4 add 582e494 Merge branch 'master' into WICKET-6913-replace-cglib-with-bytebuddy-wicket-10.x No new revisions were added by this update. Summary of changes: .travis.yml| 2 +- pom.xml| 2 +- .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 6 +- .../wicket/markup/html/form/FormMultiPartTest.java | 20 +++--- .../wicket/markup/html/form/MultiPartFormPage.java | 4 +- .../http/MultipartFormComponentListenerBean.java} | 63 ++--- .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 51 ++ 10 files changed, 240 insertions(+), 57 deletions(-) create mode 100644 wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java copy wicket-core/src/test/java/org/apache/wicket/{core/util/tester/apps_1/Book.java => protocol/http/MultipartFormComponentListenerBean.java} (58%) create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.html create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.java create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java
[jira] [Resolved] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Tzvetanov Grigorov resolved WICKET-6914. --- Fix Version/s: 8.14 9.5.0 10.0.0 Resolution: Fixed > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Fix For: 10.0.0, 9.5.0, 8.14 > > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] branch wicket-8.x updated: Fix build for Java 8
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git The following commit(s) were added to refs/heads/wicket-8.x by this push: new 4d7fe80 Fix build for Java 8 4d7fe80 is described below commit 4d7fe80a85a0d6f0cfb2a4459abb6ea4a66f553c Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 13:54:10 2021 +0300 Fix build for Java 8 --- .../test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java index 5891e13..65431ce 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java @@ -49,7 +49,7 @@ public class MultiPartFormPage extends WebPage form = new Form("form"); add(form.setOutputMarkupId(true)); - input = new TextField<>("input", Model.of("")) + input = new TextField("input", Model.of("")) { @Override public boolean isMultiPart() {
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399679#comment-17399679 ] ASF subversion and git services commented on WICKET-6914: - Commit 47cf4ff8a44a1b91d2395e4eed639087b6ee2908 in wicket's branch refs/heads/master from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=47cf4ff ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests (cherry picked from commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399678#comment-17399678 ] ASF subversion and git services commented on WICKET-6914: - Commit d22d154ff4d3245df6ecb52cfb00f412b0a25bef in wicket's branch refs/heads/master from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=d22d154 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax (cherry picked from commit 06e9f53dbe79a11bf6512263351edc9481dd5619) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] 03/04: WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git commit 47cf4ff8a44a1b91d2395e4eed639087b6ee2908 Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 12:17:21 2021 +0300 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests (cherry picked from commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2) --- .../java/org/apache/wicket/markup/html/form/FormMultiPartTest.java| 4 ++-- .../java/org/apache/wicket/markup/html/form/MultiPartFormPage.java| 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java index dc6ad3e..85c1419 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java @@ -77,12 +77,12 @@ class FormMultiPartTest extends WicketTestCase page.multiPart = true; tester.executeAjaxEvent(page.button1, "click"); - assertEquals(2, page.asked); + assertEquals(3, page.asked); assertTrue(page.form.isMultiPart()); page.multiPart = false; tester.executeAjaxEvent(page.button1, "click"); - assertEquals(3, page.asked); + assertEquals(5, page.asked); assertFalse(page.form.isMultiPart()); } } diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java index 86af382..27de9ae 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java @@ -49,7 +49,7 @@ public class MultiPartFormPage extends WebPage form = new Form("form"); add(form.setOutputMarkupId(true)); - input = new TextField("input", Model.of("")) + input = new TextField<>("input", Model.of("")) { @Override public boolean isMultiPart() { @@ -80,4 +80,4 @@ public class MultiPartFormPage extends WebPage }; form.add(button2); } -} \ No newline at end of file +}
[wicket] 01/04: WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git commit d22d154ff4d3245df6ecb52cfb00f412b0a25bef Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 11:43:36 2021 +0300 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax (cherry picked from commit 06e9f53dbe79a11bf6512263351edc9481dd5619) --- .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 6 +- .../http/MultipartFormComponentListenerBean.java | 58 .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 51 ++ 6 files changed, 262 insertions(+), 2 deletions(-) diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java new file mode 100644 index 000..f5572ed --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.protocol.http; + +import java.util.Map; + +import org.apache.wicket.Component; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.FormComponent; +import org.apache.wicket.util.visit.IVisitor; + +/** + * This listener updates the {@link Form}'s enctype whenever a multipart {@link FormComponent} + * is added to the {@code AjaxRequestTarget}. + * This is needed because the multipart form component may change its visibility/enablement and thus + * change the multipart-ness of the whole form. + */ +public class MultipartFormComponentListener implements AjaxRequestTarget.IListener +{ + static final String ENCTYPE_URL_ENCODED = "application/x-www-form-urlencoded"; + + @Override + public void onBeforeRespond(final Map map, final AjaxRequestTarget target) + { + target.getPage().visitChildren(FormComponent.class, (IVisitor, Void>) (formComponent, visit) -> { + if (formComponent.isMultiPart()) + { + Form form = formComponent.getForm(); + boolean multiPart = form.isMultiPart(); + String enctype = multiPart ? Form.ENCTYPE_MULTIPART_FORM_DATA : ENCTYPE_URL_ENCODED; + target.appendJavaScript(String.format("Wicket.$('%s').form.enctype='%s'", + formComponent.getMarkupId(), enctype)); + visit.stop(); + } + }); + } +} diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java index 1f4df9d..9825038 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java @@ -758,8 +758,10 @@ public abstract class WebApplication extends Application setSessionStoreProvider(HttpSessionStore::new); setAjaxRequestTargetProvider(AjaxRequestHandler::new); - getAjaxRequestTargetListeners().add(new AjaxEnclosureListener()); - + AjaxRequestTargetListenerCollection ajaxRequestTargetListeners = getAjaxRequestTargetListeners(); + ajaxRequestTargetListeners.add(new AjaxEnclosureListener()); + ajaxRequestTargetListeners.add(new MultipartFormComponentListener()); + // Configure the app. configure(); if (getConfigurationType() ==
[wicket] branch master updated (8f8ccea -> 866fefc)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git. from 8f8ccea Bump SLF4J to 2.0.0-alpha3 new d22d154 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data new e1930d2 Simplify JUnit assertions new 47cf4ff WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data new 866fefc Explicitly install OpenJDK 11 and Maven The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .travis.yml| 2 +- .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 6 +- .../wicket/markup/html/form/FormMultiPartTest.java | 20 +++--- .../wicket/markup/html/form/MultiPartFormPage.java | 4 +- .../http/MultipartFormComponentListenerBean.java} | 63 ++--- .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 51 ++ 9 files changed, 239 insertions(+), 56 deletions(-) create mode 100644 wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java copy wicket-core/src/test/java/org/apache/wicket/{core/util/tester/apps_1/Book.java => protocol/http/MultipartFormComponentListenerBean.java} (58%) create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.html create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.java create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java
[wicket] 04/04: Explicitly install OpenJDK 11 and Maven
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git commit 866fefc7f81f2ac71c9cd52c1b9602af88405965 Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 13:51:39 2021 +0300 Explicitly install OpenJDK 11 and Maven --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9ba78f6..927a3ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -31,7 +31,7 @@ cache: before_install: - lscpu - - sudo apt-get install -y chromium-browser fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 [...] + - sudo apt-get install -y openjdk-11-jdk maven chromium-browser fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr [...] - export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-${TRAVIS_CPU_ARCH}" - export PATH="$JAVA_HOME/bin:$PATH" - java -version
[wicket] 02/04: Simplify JUnit assertions
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/wicket.git commit e1930d22df1796990990ce3f27ae4564e13d5d8c Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 12:12:22 2021 +0300 Simplify JUnit assertions Non-functional change! (cherry picked from commit 66b35ade4b3999025e58580bc683e7f7c32cafa9) --- .../wicket/markup/html/form/FormMultiPartTest.java | 16 +--- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java index 31a62c3..dc6ad3e 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java @@ -17,6 +17,8 @@ package org.apache.wicket.markup.html.form; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import org.apache.wicket.util.tester.WicketTestCase; import org.junit.jupiter.api.Disabled; @@ -39,7 +41,7 @@ class FormMultiPartTest extends WicketTestCase assertEquals(0, page.asked); - assertEquals(true, page.form.isMultiPart()); + assertTrue(page.form.isMultiPart()); } @Test @@ -50,17 +52,17 @@ class FormMultiPartTest extends WicketTestCase page.multiPart = false; tester.startPage(page); assertEquals(1, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); page.multiPart = true; tester.newFormTester("form").submit(page.button1); assertEquals(2, page.asked); - assertEquals(true, page.form.isMultiPart()); + assertTrue(page.form.isMultiPart()); page.multiPart = false; tester.newFormTester("form").submit(page.button1); assertEquals(3, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); } @Test @@ -71,16 +73,16 @@ class FormMultiPartTest extends WicketTestCase page.multiPart = false; tester.startPage(page); assertEquals(1, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); page.multiPart = true; tester.executeAjaxEvent(page.button1, "click"); assertEquals(2, page.asked); - assertEquals(true, page.form.isMultiPart()); + assertTrue(page.form.isMultiPart()); page.multiPart = false; tester.executeAjaxEvent(page.button1, "click"); assertEquals(3, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); } }
buildbot failure in on wicket-branch-8.x
The Buildbot has detected a new failure on builder wicket-branch-8.x while building wicket. Full details are available at: https://ci.apache.org/builders/wicket-branch-8.x/builds/244 Buildbot URL: https://ci.apache.org/ Buildslave for this Build: asf945_ubuntu Build Reason: The SingleBranchScheduler scheduler named 'on-wicket-branch-8.x-commit' triggered this build Build Source Stamp: [branch wicket-8.x] bb69ae455f5ab9e3213d1f31ef9267b18d97e675 Blamelist: Martin Tzvetanov Grigorov BUILD FAILED: failed compile Sincerely, -The Buildbot
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399670#comment-17399670 ] ASF subversion and git services commented on WICKET-6914: - Commit a0b2f62901985961e8573747ea5771d4f983d6ec in wicket's branch refs/heads/wicket-8.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=a0b2f62 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests (cherry picked from commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399671#comment-17399671 ] ASF subversion and git services commented on WICKET-6914: - Commit bb69ae455f5ab9e3213d1f31ef9267b18d97e675 in wicket's branch refs/heads/wicket-8.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=bb69ae4 ] WICKET-6914 Update test to JUnit 4.x > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399669#comment-17399669 ] ASF subversion and git services commented on WICKET-6914: - Commit 8bc3614d67bd5b2aad204a4ec06136dc8df3fcf7 in wicket's branch refs/heads/wicket-8.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=8bc3614 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax (cherry picked from commit 06e9f53dbe79a11bf6512263351edc9481dd5619) > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] 02/05: WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git commit 8bc3614d67bd5b2aad204a4ec06136dc8df3fcf7 Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 11:43:36 2021 +0300 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax (cherry picked from commit 06e9f53dbe79a11bf6512263351edc9481dd5619) --- .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 4 +- .../http/MultipartFormComponentListenerBean.java | 58 .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 51 ++ 6 files changed, 261 insertions(+), 1 deletion(-) diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java new file mode 100644 index 000..f5572ed --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java @@ -0,0 +1,52 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.protocol.http; + +import java.util.Map; + +import org.apache.wicket.Component; +import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.FormComponent; +import org.apache.wicket.util.visit.IVisitor; + +/** + * This listener updates the {@link Form}'s enctype whenever a multipart {@link FormComponent} + * is added to the {@code AjaxRequestTarget}. + * This is needed because the multipart form component may change its visibility/enablement and thus + * change the multipart-ness of the whole form. + */ +public class MultipartFormComponentListener implements AjaxRequestTarget.IListener +{ + static final String ENCTYPE_URL_ENCODED = "application/x-www-form-urlencoded"; + + @Override + public void onBeforeRespond(final Map map, final AjaxRequestTarget target) + { + target.getPage().visitChildren(FormComponent.class, (IVisitor, Void>) (formComponent, visit) -> { + if (formComponent.isMultiPart()) + { + Form form = formComponent.getForm(); + boolean multiPart = form.isMultiPart(); + String enctype = multiPart ? Form.ENCTYPE_MULTIPART_FORM_DATA : ENCTYPE_URL_ENCODED; + target.appendJavaScript(String.format("Wicket.$('%s').form.enctype='%s'", + formComponent.getMarkupId(), enctype)); + visit.stop(); + } + }); + } +} diff --git a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java index 503f793..ddaf733 100644 --- a/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java +++ b/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java @@ -757,7 +757,9 @@ public abstract class WebApplication extends Application setSessionStoreProvider(HttpSessionStore::new); setAjaxRequestTargetProvider(AjaxRequestHandler::new); - getAjaxRequestTargetListeners().add(new AjaxEnclosureListener()); + AjaxRequestTargetListenerCollection ajaxRequestTargetListeners = getAjaxRequestTargetListeners(); + ajaxRequestTargetListeners.add(new AjaxEnclosureListener()); + ajaxRequestTargetListeners.add(new MultipartFormComponentListener()); // Configure the app. configure(); diff --git
[wicket] 05/05: WICKET-6914 Update test to JUnit 4.x
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git commit bb69ae455f5ab9e3213d1f31ef9267b18d97e675 Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 13:47:20 2021 +0300 WICKET-6914 Update test to JUnit 4.x --- .../wicket/protocol/http/MultipartFormComponentListenerTest.java | 9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java b/wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java index b5cbf26..cb75df7 100644 --- a/wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java @@ -16,21 +16,18 @@ */ package org.apache.wicket.protocol.http; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.util.tester.TagTester; import org.apache.wicket.util.tester.WicketTestCase; -import org.junit.jupiter.api.Test; +import org.junit.Test; /** * https://issues.apache.org/jira/browse/WICKET-6914 */ -class MultipartFormComponentListenerTest extends WicketTestCase +public class MultipartFormComponentListenerTest extends WicketTestCase { @Test -void updateFormEnctype() +public void updateFormEnctype() { tester.startPage(MultipartFormComponentListenerPage.class); tester.assertRenderedPage(MultipartFormComponentListenerPage.class);
[wicket] 03/05: Simplify JUnit assertions
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git commit cc34ecf0118ff2adfec04de53db817859ec7d37b Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 12:12:22 2021 +0300 Simplify JUnit assertions Non-functional change! (cherry picked from commit 66b35ade4b3999025e58580bc683e7f7c32cafa9) --- .../wicket/markup/html/form/FormMultiPartTest.java | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java index cb8effb..c6aebe4 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java @@ -34,7 +34,7 @@ public class FormMultiPartTest extends WicketTestCase assertEquals(0, page.asked); - assertEquals(true, page.form.isMultiPart()); + assertTrue(page.form.isMultiPart()); } @Test @@ -45,17 +45,17 @@ public class FormMultiPartTest extends WicketTestCase page.multiPart = false; tester.startPage(page); assertEquals(1, page.asked); - assertEquals(false, page.form.isMultiPart()); - + assertFalse(page.form.isMultiPart()); + page.multiPart = true; tester.newFormTester("form").submit(page.button1); assertEquals(2, page.asked); - assertEquals(true, page.form.isMultiPart()); - + assertTrue(page.form.isMultiPart()); + page.multiPart = false; tester.newFormTester("form").submit(page.button1); assertEquals(3, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); } @Test @@ -66,16 +66,16 @@ public class FormMultiPartTest extends WicketTestCase page.multiPart = false; tester.startPage(page); assertEquals(1, page.asked); - assertEquals(false, page.form.isMultiPart()); - + assertFalse(page.form.isMultiPart()); + page.multiPart = true; tester.executeAjaxEvent(page.button1, "click"); assertEquals(2, page.asked); - assertEquals(true, page.form.isMultiPart()); - + assertTrue(page.form.isMultiPart()); + page.multiPart = false; tester.executeAjaxEvent(page.button1, "click"); assertEquals(3, page.asked); - assertEquals(false, page.form.isMultiPart()); + assertFalse(page.form.isMultiPart()); } }
[wicket] branch wicket-8.x updated (db80c7e -> bb69ae4)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git. from db80c7e WICKET-6908 adjusted test to junit 4 new 3b7dd47 INFRA-22136 Replace bintray.io with apache.jfrog.io new 8bc3614 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data new cc34ecf Simplify JUnit assertions new a0b2f62 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data new bb69ae4 WICKET-6914 Update test to JUnit 4.x The 5 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 4 +- .../wicket/markup/html/form/FormMultiPartTest.java | 26 +++ .../wicket/markup/html/form/MultiPartFormPage.java | 4 +- .../http/MultipartFormComponentListenerBean.java} | 63 ++--- .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 48 + wicket-examples/pom.xml| 2 +- 9 files changed, 237 insertions(+), 59 deletions(-) create mode 100644 wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java copy wicket-core/src/test/java/org/apache/wicket/{util/tester/apps_1/Book.java => protocol/http/MultipartFormComponentListenerBean.java} (58%) create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.html create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.java create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java
[wicket] 01/05: INFRA-22136 Replace bintray.io with apache.jfrog.io
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git commit 3b7dd47d6419e6c06735dac7b6e94fea74987297 Author: Martin Tzvetanov Grigorov AuthorDate: Fri Jul 23 09:20:54 2021 +0300 INFRA-22136 Replace bintray.io with apache.jfrog.io (cherry picked from commit e3958b25642b90dbe011419a5aa0e489ce7774b3) --- wicket-examples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wicket-examples/pom.xml b/wicket-examples/pom.xml index 1af1378..b44d224 100644 --- a/wicket-examples/pom.xml +++ b/wicket-examples/pom.xml @@ -324,7 +324,7 @@ dockerfile-maven-plugin ${dockerfile-maven-plugin.version} - apache-docker-wicket-docker.bintray.io/wicket-examples + apache.jfrog.io/wicket-docker/wicket-examples LATEST-8
[wicket] 04/05: WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a commit to branch wicket-8.x in repository https://gitbox.apache.org/repos/asf/wicket.git commit a0b2f62901985961e8573747ea5771d4f983d6ec Author: Martin Tzvetanov Grigorov AuthorDate: Mon Aug 16 12:17:21 2021 +0300 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests (cherry picked from commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2) --- .../java/org/apache/wicket/markup/html/form/FormMultiPartTest.java| 4 ++-- .../java/org/apache/wicket/markup/html/form/MultiPartFormPage.java| 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java index c6aebe4..c7cdb8e 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormMultiPartTest.java @@ -70,12 +70,12 @@ public class FormMultiPartTest extends WicketTestCase page.multiPart = true; tester.executeAjaxEvent(page.button1, "click"); - assertEquals(2, page.asked); + assertEquals(3, page.asked); assertTrue(page.form.isMultiPart()); page.multiPart = false; tester.executeAjaxEvent(page.button1, "click"); - assertEquals(3, page.asked); + assertEquals(5, page.asked); assertFalse(page.form.isMultiPart()); } } diff --git a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java index e354ff9..5891e13 100644 --- a/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java +++ b/wicket-core/src/test/java/org/apache/wicket/markup/html/form/MultiPartFormPage.java @@ -49,7 +49,7 @@ public class MultiPartFormPage extends WebPage form = new Form("form"); add(form.setOutputMarkupId(true)); - input = new TextField("input", Model.of("")) + input = new TextField<>("input", Model.of("")) { @Override public boolean isMultiPart() { @@ -80,4 +80,4 @@ public class MultiPartFormPage extends WebPage }; form.add(button2); } -} \ No newline at end of file +}
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399624#comment-17399624 ] ASF subversion and git services commented on WICKET-6914: - Commit f9c98737fb9ed798c9c8cb25e87c3f7f6e87bfb2 in wicket's branch refs/heads/wicket-9.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=f9c9873 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update test expectations. FormComponent#isMultipart() is called now by MultipartFormComponentListener in Ajax requests > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] branch wicket-9.x updated (06e9f53 -> f9c9873)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch wicket-9.x in repository https://gitbox.apache.org/repos/asf/wicket.git. from 06e9f53 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data add 66b35ad Simplify JUnit assertions add f9c9873 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data No new revisions were added by this update. Summary of changes: .../wicket/markup/html/form/FormMultiPartTest.java | 20 +++- .../wicket/markup/html/form/MultiPartFormPage.java | 4 ++-- 2 files changed, 13 insertions(+), 11 deletions(-)
[jira] [Commented] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17399606#comment-17399606 ] ASF subversion and git services commented on WICKET-6914: - Commit 06e9f53dbe79a11bf6512263351edc9481dd5619 in wicket's branch refs/heads/wicket-9.x from Martin Tzvetanov Grigorov [ https://gitbox.apache.org/repos/asf?p=wicket.git;h=06e9f53 ] WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data Update the 's enctype whenever a multipart form component is repainted via Ajax > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[wicket] branch wicket-9.x updated (b1460b7 -> 06e9f53)
This is an automated email from the ASF dual-hosted git repository. mgrigorov pushed a change to branch wicket-9.x in repository https://gitbox.apache.org/repos/asf/wicket.git. from b1460b7 Fix a typo in javadoc add 06e9f53 WICKET-6914 Visibility change of "File Upload" via ajax causes "missing" form-data No new revisions were added by this update. Summary of changes: .../http/MultipartFormComponentListener.java | 52 ++ .../wicket/protocol/http/WebApplication.java | 6 +- .../http/MultipartFormComponentListenerBean.java} | 63 ++--- .../http/MultipartFormComponentListenerPage.html | 17 + .../http/MultipartFormComponentListenerPage.java | 80 ++ .../http/MultipartFormComponentListenerTest.java | 51 ++ 6 files changed, 225 insertions(+), 44 deletions(-) create mode 100644 wicket-core/src/main/java/org/apache/wicket/protocol/http/MultipartFormComponentListener.java copy wicket-core/src/test/java/org/apache/wicket/{core/util/tester/apps_1/Book.java => protocol/http/MultipartFormComponentListenerBean.java} (58%) create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.html create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerPage.java create mode 100644 wicket-core/src/test/java/org/apache/wicket/protocol/http/MultipartFormComponentListenerTest.java
[jira] [Assigned] (WICKET-6914) Visibility change of "File Upload" via ajax causes "missing" form-data
[ https://issues.apache.org/jira/browse/WICKET-6914?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Martin Tzvetanov Grigorov reassigned WICKET-6914: - Assignee: Martin Tzvetanov Grigorov > Visibility change of "File Upload" via ajax causes "missing" form-data > -- > > Key: WICKET-6914 > URL: https://issues.apache.org/jira/browse/WICKET-6914 > Project: Wicket > Issue Type: Bug >Affects Versions: 9.4.0 > Environment: Tested with Tomcat 8.5 and Firefox 90.0.2 >Reporter: Sebastian Frömel >Assignee: Martin Tzvetanov Grigorov >Priority: Major > Attachments: WICKET-6914.zip > > > I am not 100% sure this could be counted towards a bug. > > Hello reader :) > We have have a file upload component within a Form. Via OnChangeAjaxBehavior > we set the visibility for this file upload to false and put the file upload > component into the target.add(); > This of course removes the file upload form the UI, as expected. But after > pressing the submit button (no ajax), it will complain that our required text > fields are not filled. But they were. They are "nulled" after the request. > Side note: TextField has no value on the UI after submit. TextArea seems to > keep its value, but both are processed/validate "empty", during their > required-validation. > > We think we found the possible issue. > form + file upload = multipart form > form - file upload = "normal form". > It looks like that removing the file upload component via ajax, the form in > the browser stays multipart, but wicket (probably) expects a "normal" form. > Since we do not want to repaint the whole form at this point, since we do not > send the data via ajax to the backend, we simply keep now the file upload > visible, until it makes are workflow problem big enough to be solved another > way. > Do you think this is a bug, or just "us" using wicket the wrong way? > > Best, > Sebastian > > > > -- This message was sent by Atlassian Jira (v8.3.4#803005)