Opened 10 years ago

Closed 10 years ago

#536 closed defect (fixed)

error when filtering for facet value

Reported by: Twan Goosen Owned by:
Priority: blocker Milestone: VLO-3.0
Component: VLO web app Version:
Keywords: Cc: teckart@informatik.uni-leipzig.de

Description

using value filtering on the language facet on the search page. Selected continent North America, trying to select language Dutch (vlo-3.0-alpha5 on http://catalog-clarin.esc.rzg.mpg.de/vlo/search?fq=continent:North-America)

2014-04-24 15:11:00,899 ERROR [org.apache.wicket.DefaultExceptionMapper#internalMap:129] - Unexpected error occurred
org.apache.wicket.WicketRuntimeException: Attempted to set property value on a null object. Property expression: name Value: du
        at org.apache.wicket.core.util.lang.PropertyResolver.setValue(PropertyResolver.java:133)
        at org.apache.wicket.model.AbstractPropertyModel.setObject(AbstractPropertyModel.java:132)
        at org.apache.wicket.Component.setDefaultModelObject(Component.java:3072)
        at org.apache.wicket.markup.html.form.FormComponent.setModelObject(FormComponent.java:1578)
        at org.apache.wicket.markup.html.form.FormComponent.updateModel(FormComponent.java:1104)
        at org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior.onEvent(AjaxFormComponentUpdatingBehavior.java:148)
        at org.apache.wicket.ajax.AjaxEventBehavior.respond(AjaxEventBehavior.java:123)
        at org.apache.wicket.ajax.AbstractDefaultAjaxBehavior.onRequest(AbstractDefaultAjaxBehavior.java:626)
        at sun.reflect.GeneratedMethodAccessor78.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
        at java.lang.reflect.Method.invoke(Method.java:618)
        at org.apache.wicket.RequestListenerInterface.internalInvoke(RequestListenerInterface.java:258)
        at org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:241)
        at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:250)
        at org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:236)
        at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
        at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
        at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
        at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
        at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
        at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259)
        at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201)
        at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:804)

Change History (4)

comment:1 Changed 10 years ago by DefaultCC Plugin

Cc: teckart@informatik.uni-leipzig.de added

comment:2 Changed 10 years ago by Twan Goosen

can filterModel possibly be null? In FacetValuesPanel?.java:

 private Form createFilterForm(String id) {
        final Form filterForm = new Form(id);
        final TextField<String> filterField = new TextField<String>("filterText",
                new PropertyModel<String>(filterModel, "name"));
        // make field update 
        filterField.add(new AjaxFormComponentUpdatingBehavior("keyup") {

            @Override
            protected void onUpdate(AjaxRequestTarget target) {
                //update values
                target.add(valuesContainer);
            }
        });
        filterForm.add(filterField);
        return filterForm;
    }

comment:3 Changed 10 years ago by Twan Goosen

Yes:

private void addFacetValue(final Item<Count> item) {
        item.setDefaultModel(new CompoundPropertyModel<Count>(item.getModel()));

        // link to select an individual facet value
        final Link selectLink = new IndicatingAjaxFallbackLink("facetSelect") {

            @Override
            public void onClick(AjaxRequestTarget target) {
                // reset filter
                filterModel.setObject(null);

                // call callback
                onValuesSelected(
                        item.getModelObject().getFacetField().getName(),
                        // for now only single values can be selected
                        new FacetSelection(Collections.singleton(item.getModelObject().getName())),
                        target);
            }
        };
        item.add(selectLink);

comment:4 Changed 10 years ago by Twan Goosen

Resolution: fixed
Status: newclosed

Fixed in [5057]

Note: See TracTickets for help on using tickets.