This file contains all changes done in releases for Apache Wicket 8.x. ======================================================================= Release Notes - Wicket - Version 8.12.0 ** Bug * [WICKET-6815] - Incorrect parsing of html attributes * [WICKET-6858] - Do not lower case the session cookie name * [WICKET-6860] - ConcatBundleResource double scope processing when CssUrlReplacer is used * [WICKET-6863] - Method Component.setVisibilityAllowed should call onVisibleStateChanged() * [WICKET-6865] - JS Error on keyup in AutoCompleteTextField * [WICKET-6867] - AutoComplete list don't choose any item, if click took more then 500 ms * [WICKET-6868] - UploadProcessBar doesn't work anymore with AjaxFormSubmitBehaviour("change") out of the box * [WICKET-6869] - StalePageException does not refresh page * [WICKET-6870] - Wicket complains about component failing to render * [WICKET-6871] - Exception with nested AjaxLazyLoadPanel ** Task * [WICKET-6873] - Upgrade jQuery to 3.6.0 ======================================================================= Release Notes - Wicket - Version 8.11.0 ** Bug * [WICKET-6839] - Component visible-in-hierarchy cache not used but cleared * [WICKET-6847] - async page storing fails with flush before detach without session * [WICKET-6848] - Session invalidation fails because response is already committed ** Improvement * [WICKET-6828] - Wrong tree branch icon with hidden children * [WICKET-6844] - Add support for MethodMismatchResponse for Ajax behaviors ** Task * [WICKET-6846] - wicket-ajax-jquery.js ActiveX control discovery - Unpatched Application ======================================================================= Release Notes - Wicket - Version 8.10.0 ** Bug * [WICKET-6702] - AsynchronousPageStore with NotDetachedModelChecker - "Not detached model found" exception on several fast sequential Ajax calls * [WICKET-6818] - NPE in WicketEndpoint onClose * [WICKET-6822] - AsynchronousPageStore Potential Memory Leak ** Improvement * [WICKET-6824] - Use concatenation instead of String.format for frequently called methods * [WICKET-6826] - Improve performance and reduce allocations for Behaviors * [WICKET-6827] - Improve performance of Strings.join and Strings.replaceAll * [WICKET-6828] - Wrong tree branch icon with hidden children * [WICKET-6829] - Use String.isEmpty() instead of "".equals(...) * [WICKET-6830] - Convert Behaviors into a static utility class to reduce allocations * [WICKET-6831] - Try to flush the response before detach * [WICKET-6833] - Reduce allocations when merging page parameters * [WICKET-6835] - Improve performance of AbstractMapper.getPlaceholder ======================================================================= Release Notes - Wicket - Version 8.9.0 ** Bug * [WICKET-6742] - Stacktrace in Fragment example * [WICKET-6764] - RedirectToUrlException change the second question mark in URL from "?" to "%3F" * [WICKET-6771] - Performance issues accessing component metadata while iterating * [WICKET-6782] - WebSocket onError/onAbort is not being called * [WICKET-6784] - StockQuote example does not work because the web service is no more available * [WICKET-6791] - Offload WebSocket push when initiated in Wicket request cycle * [WICKET-6793] - OOM in AsynchronousPageStore ** Improvement * [WICKET-6767] - Do not log error for broken pipes in websocket connections * [WICKET-6772] - Use StandardCharset for URL encoding and decoding * [WICKET-6773] - Improve performance of getting behaviors for components * [WICKET-6781] - Timezone can be determined on client side (7.x and 8.x) * [WICKET-6792] - Packages#absolutePath keeps unnecessary current dir dot "." * [WICKET-6796] - Report the component path when failing to set a new object to a read only model * [WICKET-6800] - Use LinkedHashSet instead of LinkedList for AjaxRequestHandler#listeners ** Task * [WICKET-6779] - Upgrade JQuery 3 to 3.5.1 * [WICKET-6783] - Utility classes available in JDK should be deprecated/removed ======================================================================= Release Notes - Wicket - Version 8.8.0 ** Bug * [WICKET-6746] - HttpsMapper cannot deal with resources over websockets * [WICKET-6752] - Some dependencies contain CVEs * [WICKET-6753] - res/modal.js using aria-labelledby where it should be using aria-label * [WICKET-6754] - Iteration stops with nested containers * [WICKET-6755] - MockServletContext does not decode real path * [WICKET-6756] - Avoid URL.getFile() when actually expecting paths. * [WICKET-6757] - Avoid URL.getFile during mime type detection. * [WICKET-6758] - NPE in AbstractWebSocketProcessor after session times out ** Improvement * [WICKET-6759] - Support disabling error notification for websockets * [WICKET-6760] - Nested Form placeholder should preserve tag name * [WICKET-6761] - Support multiple connections to the same websocket resource from a single session * [WICKET-6762] - Support manual initialization of websocket connections ======================================================================= Release Notes - Wicket - Version 8.7.0 ** Bug * [WICKET-6531] - Crash in Unsafe.getObject when running on the J9 VM * [WICKET-6650] - Url decode the name of the file after AjaxDownload with Location == Blob * [WICKET-6704] - JavaSerializer.serialize causes the JVM crash ! * [WICKET-6705] - URL filename not decoded when downloading via AjaxDownload blob mode * [WICKET-6706] - Websocket Endpoint logs exception when user leaves page * [WICKET-6707] - Property setter parameter type is assumed to be equal to getter return type * [WICKET-6708] - FormComponent should read only the GET/POST parameters of the request, not both * [WICKET-6713] - BaseWicketTester does not reset componentInPage field ** Improvement * [WICKET-6714] - Please add better getResource-Support for MockServletContext * [WICKET-6720] - ConcatBundleResource#getResourceStream should not eagerly fetch resources ** Task * [WICKET-6698] - Non-security critical dependency updates ======================================================================= Release Notes - Wicket - Version 8.6.1 ** Bug * [WICKET-6613] - Wicket 8.1 ModalWindow autosizing problem * [WICKET-6671] - IAjaxLink should be serializable * [WICKET-6676] - Quickstart application won't deploy to GlassFish * [WICKET-6680] - JavaScriptStripper chokes on template literals that contain two forward slashes * [WICKET-6689] - ClientProperties.getTimeZone() has some issue when DST and UTC offsets are different * [WICKET-6690] - NullPointerException in KeyInSessionSunJceCryptFactory. * [WICKET-6692] - Page deserialization on websocket close - possible performance issue ** Improvement * [WICKET-6675] - log4j-slf4j-impl requires version 1.7.25 of slf4j-api while Wicket 8.5 requires version 1.7.26 * [WICKET-6684] - Make autolabel functionality more flexible by introducing a locator interface that allows to specify the component the wicket:for refers to * [WICKET-6695] - Add AjaxEditable*Label#shouldTrimInput() ======================================================================= Release Notes - Wicket - Version 8.6.0 ** Bug * [WICKET-6613] - Wicket 8.1 ModalWindow autosizing problem * [WICKET-6671] - IAjaxLink should be serializable * [WICKET-6676] - Quickstart application won't deploy to GlassFish * [WICKET-6680] - JavaScriptStripper chokes on template literals that contain two forward slashes * [WICKET-6689] - ClientProperties.getTimeZone() has some issue when DST and UTC offsets are different * [WICKET-6690] - NullPointerException in KeyInSessionSunJceCryptFactory. * [WICKET-6692] - Page deserialization on websocket close - possible performance issue ** Improvement * [WICKET-6675] - log4j-slf4j-impl requires version 1.7.25 of slf4j-api while Wicket 8.5 requires version 1.7.26 * [WICKET-6684] - Make autolabel functionality more flexible by introducing a locator interface that allows to specify the component the wicket:for refers to * [WICKET-6695] - Add AjaxEditable*Label#shouldTrimInput() ======================================================================= Release Notes - Wicket - Version 8.5.0 ** Bug * [WICKET-6611] - Missing check for IScopeAwareTextResourceProcessor when concatenating resources * [WICKET-6650] - Url decode the name of the file after AjaxDownload with Location == Blob * [WICKET-6651] - Redirecting with ResetResponseException does not work anymore * [WICKET-6669] - CSS Resource Bundling throws exception when used with CssUrlReplacer ** Improvement * [WICKET-6648] - It is impossible to initiate AjaxDownloadBehavior with IPartialPageRequestHandler * [WICKET-6655] - ExportToolbar should set cache duration to none on the served file and also provide a way to easily change that * [WICKET-6656] - JSR 303 - @NotNull validation problems * [WICKET-6658] - Allow nested forms on non-
tag * [WICKET-6659] - commons-io:commons-io is used in multiple versions at same time * [WICKET-6668] - Sign out the existing session if a sign in attempt has failed ** Task * [WICKET-6654] - Upgrade JQuery to 3.4.0 * [WICKET-6661] - Upgrade jquery to 3.4.x * [WICKET-6665] - Upgrade various dependencies ======================================================================= Release Notes - Wicket - Version 8.4.0 ** Bug * [WICKET-6637] - Handling exception Wicket 8 * [WICKET-6639] - PageStoreManager$SessionEntry.clear produces NullPointerException * [WICKET-6642] - Form.findSubmittingComponent returns null instead of SubmitLink * [WICKET-6645] - Concurrent web socket response message processing on the client ** New Feature * [WICKET-6641] - Extract an interface for classes allowing to register feedback messages ** Improvement * [WICKET-6634] - Save the closeCode and message in WebSocket's ClosedMessage * [WICKET-6638] - RedirectRequestHandler does not support Ajax * [WICKET-6640] - Add settings for customizing the ModalWindow's spacing, header height and overflow * [WICKET-6644] - AbstractPageableView can only be serialized with Java built-in serialization ** Wish * [WICKET-6646] - Upgrade jquery to 3.3.x ** Task * [WICKET-6647] - Upgrade asm to 7.1 ======================================================================= Release Notes - Wicket - Version 8.3.0 ** Bug * [WICKET-6616] - Stateless pages are not rendered anymore before executing a behavior * [WICKET-6617] - Header contribution ignore * [WICKET-6623] - Consecutive Temporary Behaviors are not properly removed * [WICKET-6628] - wicket-ioc needs to use ASM 7 and CGLIB 3.2.10 to be compatible with JDK11 * [WICKET-6629] - OOM (and disk) in AsynchronousPageStore * [WICKET-6630] - FileUpload.writeToTempFile() fails with commons-fileupload 1.4 * [WICKET-6631] - AnnotProxyFieldValueFactory does not cache beanNames ** New Feature * [WICKET-6578] - StatelessResourceLink * [WICKET-6626] - Introduce application-wide Component#onComponentTag listeners ** Improvement * [WICKET-6587] - CheckBoxSelector should accept more CheckBoxes to be added later * [WICKET-6615] - maven-surefire-plugin need to be updated to work with latest OpenJdk8 * [WICKET-6621] - Exceeding exception retries should return control back to server ** Wish * [WICKET-6569] - LambdaModel.of overload is ambiguous ** Task * [WICKET-6624] - Upgrade to commons-filupload 1.4 ======================================================================= Release Notes - Wicket - Version 8.2.0 ** Bug * [WICKET-4423] - Modal Window dragging failes with iframe * [WICKET-5552] - Events to close pop-up on Modal Window are not propagated * [WICKET-6586] - Broken JavaScript due to fix charsetName in JavaScriptPackageResource * [WICKET-6588] - Under Tomcat (ver. >= 8.5) BaseWebSocketBehavior can't find session id cookie * [WICKET-6589] - ClientInfo fails with NumberFormatException for unusual browser versions * [WICKET-6599] - ResponseIOException should never escape from WicketFilter * [WICKET-6602] - AuthenticatedWebApplication login Workflow broken with replaceSession * [WICKET-6603] - WicketTester.destroy sometimes hangs * [WICKET-6604] - Ajax repaint is not correctly handled when component being repainted has an enclosure associated with it and is not a child of the enclosure * [WICKET-6606] - data-wicket-placeholder is invalid XHTML * [WICKET-6607] - NoSuchMethodError when using Spring-Beans with constructor injection in an AjaxLink#onClick * [WICKET-6608] - Stateless page, mix of queue and add can cause unforseen consequences * [WICKET-6610] - Incorrect Javadoc: Refering to specific page in Application properties file is not possible ** Improvement * [WICKET-6435] - WicketTester should provide assertExists and assertNotExists methods * [WICKET-6600] - Error logging in AjaxRequestHandler is too strict * [WICKET-6601] - Events to close pop-up on Modal Window are not propagated from caption bar * [WICKET-6605] - Allow AjaxFallbackButton to be stateless ** Task * [WICKET-6594] - JavaDoc of redirectToInterceptPage in Component urges to use redirectTo method when in a constructor * [WICKET-6609] - Update Guice from 4.1.0 to 4.2.2 ======================================================================= Release Notes - Wicket - Version 8.1.0 ** Bug * [WICKET-6551] - LazyInitProxyFactory doesn't work correctly at Weblogic * [WICKET-6552] - Spring proxy creation fails with IAE inside ASM ClassReader on JDK10 * [WICKET-6553] - SelectOptions doesn't html-encode option values * [WICKET-6564] - PageStoreManager#clear() does not completely clear * [WICKET-6568] - Wicket fails / does not encode request header values in AjaxCalls * [WICKET-6571] - BaseWebSocketBehavior should check sessionId cookie name dynamically * [WICKET-6573] - WicketTesterHelper ignores invalid Ajax-Event names starting with "on" * [WICKET-6574] - JQueryResourceReference#get() (still) return V1 * [WICKET-6584] - Import Junit Package as optional ** New Feature * [WICKET-6577] - Introduce class GenericWebMarkupContainer ** Improvement * [WICKET-6560] - Improve serialization warnings in ChainingModel * [WICKET-6565] - ResponseIOException logged as an error in DefaultExceptionMapper * [WICKET-6575] - Ajax requests are still firing even when placeholder tag is written only * [WICKET-6576] - Support multiple dateFormats for LocalDateTextfield * [WICKET-6580] - org.apache.wicket.util.lang.Bytes - toString() ======================================================================= Release Notes - Wicket - Version 8.0.0 ** Bug * [WICKET-6473] - Double slash break 404page * [WICKET-6525] - SubmitLink.onSubmit not invoked when using GET-method * [WICKET-6528] - Component part of Page check in AjaxRequestHandler breaks applications * [WICKET-6533] - Error while parsing xml using AjaxButton * [WICKET-6540] - When form.setDefaultButton(button) is called, the form is not displayed * [WICKET-6542] - Wrong message for IllegalArgumentException in ConverterLocator.java * [WICKET-6543] - onConfigure() Javadoc claims Overrides must call super, but there is no check to enforce it * [WICKET-6545] - Argument 'markup' may not be null. * [WICKET-6546] - CssContentHeaderItem comments CSS code with HTML comments ** Improvement * [WICKET-6055] - AjaxLazyLoadPanel should provide non-blocking lazy load * [WICKET-6321] - Support Integrity and Crossorigin attributes for JavaScriptUrlReferenceHeaderItem * [WICKET-6503] - Ajax refresh and feedback panel * [WICKET-6527] - no possibility to override fixed html appended directly to response by FilterForm * [WICKET-6541] - Allow wizard finish before last step * [WICKET-6548] - CSVDataExporter custom converters and resource strings ======================================================================= Release Notes - Wicket - Version 8.0.0-M9 ** Bug * [WICKET-6332] - NullPointerException in PageParameters#equals() * [WICKET-6441] - MockHttpSession and MockSessionStore don't call onInvalidate() on invalidate() * [WICKET-6448] - Provide behavior that disables a button after click * [WICKET-6477] - Component.getDefaultModelObject() wraps in RuntimeException instead of WicketRuntimeException * [WICKET-6484] - Wicket.Cookie.set does not set 'secure' flag * [WICKET-6489] - Exception when "identifier|code" javascript is not start on PrependJavaScript * [WICKET-6491] - AjaxDownload is not working in blob mode for Microsoft browsers * [WICKET-6492] - javascript files are not minified in deployment mode and not united * [WICKET-6493] - WebSocket SessionIds are wrong (HttpSession one used instead of Websocket one) + NPE if no HttpSession is found during Handshake Request * [WICKET-6496] - Duplicate definition of interface JSONString * [WICKET-6501] - DefaultPageManagerProvider does not honour StoreSettings.setAsynchronous(false) * [WICKET-6506] - Performance issue when large component isn't visible * [WICKET-6512] - pageId is being reset during Session::replaceSession() call * [WICKET-6513] - NullPointerException at PageStoreManager$SessionEntry after login * [WICKET-6518] - Memory leaks on quickstart restart in tomcat * [WICKET-6522] - ThreadLocal leak in PageStoreManager * [WICKET-6523] - Two AbstractAjaxTimerBehaviors on same component timeId conflict * [WICKET-6524] - Do not require bean validation 2.0.0 * [WICKET-6529] - Feedback from onSubmit not rendered on stateless pages * [WICKET-6530] - Race-condition in session invalidation ** New Feature * [WICKET-6497] - unify javascript files * [WICKET-6498] - wicket 8 - js to asnyc and or defer ** Improvement * [WICKET-6055] - AjaxLazyLoadPanel should provide non-blocking lazy load * [WICKET-6284] - Introduce lambda-enhanced factory method in ResourceReference * [WICKET-6499] - Support for Bean Validation 2.0 * [WICKET-6503] - Ajax refresh and feedback panel * [WICKET-6504] - Use a serializable model for FileSystemResource's path * [WICKET-6509] - Import junit packages as optional * [WICKET-6514] - FeedbackCollector(Component) should not collect session-scoped feedback messages * [WICKET-6517] - use Ajax for multipart instead of iframe ** Task * [WICKET-6148] - Remove AjaxEventBehavior#onCheckEvent() before Wicket 8.0.0 ======================================================================= Release Notes - Wicket - Version 8.0.0-M8 ** Bug * [WICKET-6455] - AjaxFormSubmitBehavior doesn't submit inner forms * [WICKET-6457] - PageStore not cleared at session end * [WICKET-6459] - Ajax re-renders of enclosures do not render their children's header contributions * [WICKET-6461] - Default constructor is incorrectly called if optional param is not provided in parameter placeholder URL with additional required parameter * [WICKET-6462] - When an Ajax Button is submitted, AjaxFormSubmitBehavior # onSubmit is called twice * [WICKET-6465] - PageStore not cleared at session end * [WICKET-6471] - FileSystemResource file descriptor leak * [WICKET-6476] - It is impossible to use multiple WebSocketTester with the same WebApplication * [WICKET-6479] - AjaxNewWindowNotifyingBehavior erroneously reports new window * [WICKET-6481] - NullPointerException in MountedMapper * [WICKET-6485] - IllegalArgumentException: Argument 'pageClass' may not be null ** Improvement * [WICKET-6396] - Model should provide other Optional's methods * [WICKET-6451] - Components with collection models do not support unmodifiable or empty sets * [WICKET-6460] - Rename AjaxDownload to AjaxDownloadBehavior * [WICKET-6463] - Please add additional constructor to Roles * [WICKET-6482] - CompoundValidator should implement all Behavior methods ** Task * [WICKET-6105] - Decommission wicket-datetime ======================================================================= Release Notes - Wicket - Version 8.0.0-M7 ** Bug * [WICKET-4324] - [wicket-ioc] LazyInitProxyFactory CGLIB proxies naming strategy may cause java.lang.IllegalAccessError * [WICKET-6366] - Autocomplete race condition makes page unresponsive * [WICKET-6373] - Edge not recognized in UserAgent * [WICKET-6374] - Exception caused by border extending another border with * [WICKET-6376] - Ajax redirects to non http(s)-urls are interpreted as relative * [WICKET-6377] - Autolinking breaks hierarchy for nested elements * [WICKET-6379] - IModel's default models should detach the target model * [WICKET-6386] - Simplification of the code in WICKET-3347 is not consistent with previous behavior * [WICKET-6387] - ModalWindow PageReference broken * [WICKET-6393] - NestedStringResourceLoader ignores hard-coded default values and throws MissingResourceException * [WICKET-6398] - WICKET-6204 breaks jQuery.noConflict() * [WICKET-6399] - Dequeuing of Border component with nested body fails * [WICKET-6400] - Object with array property fails on NPE when construction JSON object * [WICKET-6402] - OSGi-Manifest: wicket does not declare BSN * [WICKET-6406] - Each path has to be pushed directly * [WICKET-6419] - Localization of PageParameters * [WICKET-6428] - PageProvider#getPageInstance() may return null * [WICKET-6429] - AbstractRequestLogger should not create new Sessions * [WICKET-6434] - Fixed WicketTester to detect components in enclosure when doing isComponentOnAjaxResponse. ** Improvement * [WICKET-6372] - Consider to switch to a sans-serif typeface in the Wicket guide * [WICKET-6385] - Allow using custom port for web socket connections * [WICKET-6388] - MockServletContext should define non-null session tracking modes * [WICKET-6389] - Introduce CsrfPreventionRequestCycleListener that is aware of Web Socket requests * [WICKET-6401] - OSGi-Manifest: wicket-util should decalre its dependency to 'commons-io' and 'commons-fileupload' * [WICKET-6412] - Model#orElse behavior is inconsistent! * [WICKET-6421] - WicketTester should provide assertBehavior method * [WICKET-6433] - Allow to set the rel attribute with CssHeaderItem * [WICKET-6436] - Please add CompoundPropertyModel.of(T object) method * [WICKET-6437] - Libraries should be updated to most recent versions ** Task * [WICKET-6390] - Update Tomcat to 8.5.15 to get the latest HTTP2 features and APIs ======================================================================= Release Notes - Wicket - Version 8.0.0-M6 ** Bug * [WICKET-6177] - Introduce AsynchronousPageStore * [WICKET-6339] - Wrong implementation of MarkupFragment.iterator() * [WICKET-6353] - Proxy deserialization fails due to classloading issues * [WICKET-6356] - Clustering failover not working on Tomcat * [WICKET-6360] - WebSocket fails when url-based jsessionid is used * [WICKET-6361] - MarkupContainer#queue doesn't work in table column * [WICKET-6362] - HeaderItems with different PageParameters are treated as identical * [WICKET-6365] - Links on "Contribute to the User Guide" are broken ** Improvement * [WICKET-6347] - IChoiceRenderer implements IDetachable * [WICKET-6348] - New FormComponentUpdatingBehavior to replace wantOnSelectionChangedNotifications() * [WICKET-6351] - Form.anyFormComponentError performance degradation * [WICKET-6354] - Add JavaScriptResourceReference for JQuery 3.x * [WICKET-6355] - Pass the request attributes to FileSystemResource#createResourceResponse() * [WICKET-6364] - The autogenerated input field when a form has a default button should not gain the focus when navigating with tab ** New Feature * [WICKET-6286] - Would be good to have AjaxDownload available out of the box ** Task * [WICKET-4201] - IPageProvider and its implementations need to be improved * [WICKET-6322] - Remove lambda factories * [WICKET-6363] - Do not use jetty-all but specific dependencies ======================================================================= Release Notes - Wicket - Version 8.0.0-M5 ** Bug * [WICKET-6317] - AuthenticatedWebSession#signOut() calls twice after session invalidation * [WICKET-6319] - AutoCompleteTextField: popup is hidden when clicking on scrollbar in IE * [WICKET-6329] - org.json migration issue * [WICKET-6337] - Wrong class type in PageAccessSynchronizer * [WICKET-6340] - The Ajax reponse of an AjaxSubmitButton creates invalid XHTML markup for multipart forms * [WICKET-6342] - Wrong baseUrl in BaseWebSocketBehavior ** Improvement * [WICKET-6212] - CheckChoice / add a getAdditionalAttributes() also for