If it helps here is the full ClassificationPanel class:
-------------
class ClassificationsPanel extends
FormComponentPanel<SimpleImageSearchCriteria> {
private static final long serialVersionUID = 1L;
private static final String TOGGLE_CLASS = "list-group-item-warning";
public ClassificationsPanel(String id, IModel<SimpleImageSearchCriteria> model,
BootstrapForm<SimpleImageSearchCriteria>form) {
// super(id, model, Model.of("Classifications"), PanelType.Info);
super(id, model);
final CheckGroup<DocumentCategory> documentCategoryCodes = new
CheckGroup<DocumentCategory>("documentCategoryCodes", new
PropertyModel<List<DocumentCategory>>(getModel(), "documentCategories"));
add(documentCategoryCodes);
ListView<DocumentCategory> documentCategoryCode = new
ListView<DocumentCategory>("documentCategoryCode",
IRISAuthenticatedWebSession.get().getDocumentCategoryforProcessingArea(getModelObject().getProcessingArea()))
{
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<DocumentCategory> item) {
item.setOutputMarkupId(true);
Check<DocumentCategory> check = new Check<DocumentCategory>("check",
item.getModel());
check.setMarkupId("check" + item.getMarkupId());
check.setOutputMarkupId(true);
check.setLabel(Model.of(item.getModelObject().getDocumentCategoryDescription()));
item.add(check);
item.add(new Label("label",
item.getModelObject().getDocumentCategoryDescription()));
if(documentCategoryCodes.getModelObject().contains(item.getModelObject())){
item.add(new CssClassNameAppender(TOGGLE_CLASS));
}
}
};
// documentCategoryCode.setReuseItems(true);
documentCategoryCodes.add(documentCategoryCode);
}
@Override
protected void convertInput() {
setConvertedInput(getModelObject());
}
@Override
public void renderHead(IHeaderResponse response) {
super.renderHead(response);
String javascript ="$(function(){$(\"input[type=checkbox]\").on(\"change\",
function() {var $chk = $(this),num = $chk.attr(\"id\").substring(7),$row =
$(\"#id\" + num);$row.toggleClass(\"" + TOGGLE_CLASS+ "\");});});";
response.render(OnDomReadyHeaderItem.forScript(javascript));
}
}
> On Jan 23, 2023, at 10:31 AM, Eric Hamel <[email protected]> wrote:
>
> The hierarchy is DocumentSearchPanel extends BootstrapGenericPanel ->
> BodyPanel extends GenericPanel -> BootstrapForm -> FormGroup ->
> ClassificationPanel.
>
>
> ClassificationPanel is an anonymous class of DocumentSearchPanel.
>
>> On Jan 23, 2023, at 10:19 AM, Martin Grigorov <[email protected]> wrote:
>>
>> Hi,
>>
>> On Mon, Jan 23, 2023 at 5:09 PM Eric Hamel <[email protected]> wrote:
>>
>>> Good morning,
>>>
>>> We are running into intermittent issues on our WebSphere 8.5 environment.
>>> The server keeps crashing and we see no cause in our logs. With that said,
>>> admins have seen the following error in our logs and I can’t make sense out
>>> of it.
>>>
>>> 07:48:51.632 ERROR [CVIENS | 10.79.49.41 | 5uRaDK6Hu4gj0ABIXyNTo76]
>>> o.a.wicket.DefaultExceptionMapper [DefaultExceptionMapper.java:170] -
>>> Unexpected error occurred
>>> java.lang.ClassCastException:
>>> gov.osc.ouf.web.components.document.search.DocumentSearchPanel$ClassificationsPanel$1
>>> incompatible with org.apache.wicket.markup.html.form.FormComponent
>>> at
>>> de.agilecoders.wicket.core.markup.html.bootstrap.form.FormGroup.findFormComponents(FormGroup.java:255)
>>> ~[wicket-bootstrap-core-0.9.22.jar:0.9.22]
>>> at
>>> de.agilecoders.wicket.core.markup.html.bootstrap.form.FormGroup.onInitialize(FormGroup.java:175)
>>> ~[wicket-bootstrap-core-0.9.22.jar:0.9.22]
>>> at
>>> org.apache.wicket.Component.fireInitialize(Component.java:877)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:967)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.MarkupContainer$3.component(MarkupContainer.java:963)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:144)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:162)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:123)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.util.visit.Visits.visitChildren(Visits.java:192)
>>> ~[wicket-util-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.MarkupContainer.visitChildren(MarkupContainer.java:875)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:962)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at org.apache.wicket.Page.isPageStateless(Page.java:463)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.getPageInfo(AbstractBookmarkableMapper.java:465)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.mapHandler(AbstractBookmarkableMapper.java:409)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.core.request.mapper.MountedMapper.mapHandler(MountedMapper.java:395)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.mapper.CompoundRequestMapper.mapHandler(CompoundRequestMapper.java:215)
>>> ~[wicket-request-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.cycle.RequestCycle.mapUrlFor(RequestCycle.java:429)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:281)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:890)
>>> ~[wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
>>> ~[wicket-request-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
>>> [wicket-core-6.24.0.jar:6.24.0]
>>> at
>>> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:4075)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1019)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:213)
>>> [com.ibm.ws.webcontainer.jar:na]
>>> at
>>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
>>> [com.ibm.ws.runtime.jar:na]
>>> at
>>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
>>> [com.ibm.ws.runtime.jar:na]
>>> at
>>> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
>>> [com.ibm.ws.runtime.jar:na]
>>> at
>>> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88)
>>> [com.ibm.ws.runtime.jar:na]
>>> at
>>> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1833)
>>> [com.ibm.ws.runtime.jar:na]
>>> at
>>> com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:558)
>>> [na:CCX.CF [o1800.01]]
>>> at
>>> com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:608)
>>> [na:CCX.CF [o1800.01]]
>>> at
>>> com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:985)
>>> [na:CCX.CF [o1800.01]]
>>> at
>>> com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1074)
>>> [na:CCX.CF [o1800.01]]
>>> at
>>> com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1892)
>>> [com.ibm.ws.runtime.jar:na]
>>>
>>> We are getting a ClassCastException on ClassificationPanel being
>>> incompatible with FormComponent, however ClassificationPanel extends
>>> FormComponentPanel
>>>
>>
>> ClassificationsPanel$1 is the first anonymous class defined inside
>> ClassificationPanel!
>>
>>
>>>
>>> class ClassificationsPanel extends
>>> FormComponentPanel<SimpleImageSearchCriteria> {
>>>
>>> ...
>>>
>>> }
>>>
>>> I’m sure there’s a simple answer here but I’m not seeing it. It’s only
>>> happening on WebSphere and are not seeing this behavior on test Jetty
>>> environment. We are using Apache Wicket 6.24.0 and Wicket-Bootstrap 0.9.22.
>>> Any insight would be appreciated.
>>>
>>> Thank you
>>> Eric H.
>>>
>