Hi all,

I just finished upgrading a larger application from Wicket 6.21.0 to Wicket
7.2.0. I encountered 3 issues that more or less prevent me from pushing it
into production:

1. There seems to be an issue with <wicket:enclosures/> whose children are
added during onConfigure and stateless checking.

Stateless checking triggers visibility checks on the enclosure too early,
i.e. before the enclosure's children have been added to the page, resulting
in exceptions like this:

org.apache.wicket.WicketRuntimeException: Could not find child with id:
> emptyInfoPanel in the wicket:enclosure
> at
> org.apache.wicket.markup.html.internal.Enclosure.checkChildComponent(Enclosure.java:297)
> at
> org.apache.wicket.markup.html.internal.Enclosure.getChildComponent(Enclosure.java:275)
> at
> org.apache.wicket.markup.html.internal.Enclosure.getChild(Enclosure.java:138)
> at
> org.apache.wicket.markup.html.internal.Enclosure.isVisible(Enclosure.java:173)
> at org.apache.wicket.Component.determineVisibility(Component.java:4400)
> at org.apache.wicket.Component.isVisibleInHierarchy(Component.java:2152)
> at org.apache.wicket.Component.isStateless(Component.java:2069)
> at
> org.apache.wicket.devutils.stateless.StatelessChecker$1.component(StatelessChecker.java:83)
> at
> org.apache.wicket.devutils.stateless.StatelessChecker$1.component(StatelessChecker.java:66)
> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
> at org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192)
> at
> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:981)
> at
> org.apache.wicket.devutils.stateless.StatelessChecker.onBeforeRender(StatelessChecker.java:120)


For now, I adjusted my code to add the enclosed components during
onInitialize.

2. Performance degradation of Wicket tests

All other things left equal, my 1500 Wicket tests take nearly a minute
longer to run compared to Wicket 6.21.0. I have not yet had time to profile
this. Have there been any configuration changes in WicketTester that might
have caused this?

3. serializer-fast2 throws NullPointerExceptions

I first encountered this issue when upgrading to Wicket 7.2.0 but later
discovered that I have the same issue when moving from Wicketstuff 6.21.0
to 6.22.0, so I guess this issue was introduced somehow between those minor
versions. It has nothing to do with the dependency version of
de.ruedigermoeller.fst, as I have fixed that to the latest version in my
POM.


> Caused by: java.lang.NullPointerException: null
> at
> org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:375)
> at
> org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:361)
> at
> org.nustaq.serialization.FSTObjectOutput.writeObjectFields(FSTObjectOutput.java:639)


I tried to check the history between those two versions on Github but
couldn't find any differences. For now, I solved this issue by pinning my
version of wicketstuff-serializer-fast2 to 6.21.0.

I can try to provide quickstarts for #1 and #3 if needed, altough it might
be difficult to extract the behavior from my application. My most pressing
issue is #2 as it is the only one I cannot work around and I'm very
sensitive to build and test feedback time.

Any help would be greatly appreciated.

Best regards,

Thomas

Reply via email to