Grid client side exception when filtering in subwindow (IE10/IE11)
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.8k
- Forks
- 717
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 3
Description
Originally by drewharvey
Reproduced issue in:
- Browsers: IE10 and IE11
- Vaadin Version: 7.6.8 and 7.7.3
Filtering down to a single item in a grid, contained by a subwindow, can cause a client-side exception. Once the exception is thrown, the grid will continue to throw exceptions and will not display any rows.
I cannot find a way to reproduce this 100% of the time. Sometimes it takes a few times of clearing the filter textbox and re-entering the filter string to get the exception to throw. This does not happen in the latest Chrome or Firefox. Have not tested pre IE10.
-Repro Steps:*
- Create a Vaadin application and use the attached UI class.
- Load the application with the ?debug flag set.
- Using IE10 or IE11, bring up application UI that contains the subwindow with a contained grid.
- Make sure the grid contains at least 3 rows.
- In the first column, enter a filter string that will cause only the second row to show. Press 'Enter'.
- Result: client side exception is thrown and displayed.
-Example of exception thrown:*
7411msError performing server to client RPC callscom.google.gwt.core.client.JavaScriptException: (Error) : Unspecified error.
at Unknown.com_google_gwt_lang_Exceptions_wrap__Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_RpcManager_$applyInvocation__Lcom_vaadin_client_communication_RpcManager_2Lcom_vaadin_shared_communication_MethodInvocation_2Lcom_vaadin_client_ServerConnector_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_RpcManager_$parseAndApplyInvocation__Lcom_vaadin_client_communication_RpcManager_2Lelemental_json_JsonArray_2Lcom_vaadin_client_ApplicationConnection_2Lcom_vaadin_shared_communication_MethodInvocation_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler$3_$handleRpcInvocations__Lcom_vaadin_client_communication_MessageHandler$3_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler$3_$execute__Lcom_vaadin_client_communication_MessageHandler$3_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler_$handleJSON__Lcom_vaadin_client_communication_MessageHandler_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler_$handleMessage__Lcom_vaadin_client_communication_MessageHandler_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_XhrConnection$XhrResponseHandler_onResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.anonymous(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_core_client_impl_Impl_entry0__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.anonymous(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
7434msServer to client RPC call: 7:com.vaadin.shared.data.DataProviderRpc.setRowData([0, [object Object]])
7723msError performing server to client RPC callscom.google.gwt.core.client.JavaScriptException: (TypeError) : Unable to set property 'colSpan' of undefined or null reference
at Unknown.com_google_gwt_dom_client_Element_$setPropertyInt__Lcom_google_gwt_dom_client_Element_2Ljava_lang_String_2IV(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widget_escalator_FlyweightCell_$setup__Lcom_vaadin_client_widget_escalator_FlyweightCell_2Lcom_vaadin_client_widget_escalator_FlyweightRow$CellIterator_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widget_escalator_FlyweightRow$CellIterator_$next__Lcom_vaadin_client_widget_escalator_FlyweightRow$CellIterator_2Lcom_vaadin_client_widget_escalator_FlyweightCell_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widget_escalator_FlyweightRow$CellIterator_next__Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widgets_Grid$BodyUpdater_update__Lcom_vaadin_client_widget_escalator_Row_2Ljava_lang_Iterable_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widgets_Escalator$AbstractRowContainer_$refreshRow__Lcom_vaadin_client_widgets_Escalator$AbstractRowContainer_2Lcom_google_gwt_dom_client_TableRowElement_2ILcom_vaadin_shared_ui_grid_Range_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widgets_Escalator$BodyRowContainerImpl_refreshCells__Lcom_vaadin_shared_ui_grid_Range_2Lcom_vaadin_shared_ui_grid_Range_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widgets_Escalator$AbstractRowContainer_$refreshRows__Lcom_vaadin_client_widgets_Escalator$AbstractRowContainer_2IIV(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_widgets_Grid$7_$dataUpdated__Lcom_vaadin_client_widgets_Grid$7_2IIV(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_data_AbstractRemoteDataSource_$setRowData__Lcom_vaadin_client_data_AbstractRemoteDataSource_2ILjava_util_List_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_connectors_RpcDataSourceConnector$RpcDataSource_$setRowData__Lcom_vaadin_client_connectors_RpcDataSourceConnector$RpcDataSource_2ILjava_util_List_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_connectors_RpcDataSourceConnector$RpcDataSource$1_$setRowData__Lcom_vaadin_client_connectors_RpcDataSourceConnector$RpcDataSource$1_2ILelemental_json_JsonArray_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_metadata_ConnectorBundleLoaderImpl$1$1$220_invoke__Ljava_lang_Object_2_3Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_metadata_Method_$invoke__Lcom_vaadin_client_metadata_Method_2Ljava_lang_Object_2_3Ljava_lang_Object_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_RpcManager_$applyInvocation__Lcom_vaadin_client_communication_RpcManager_2Lcom_vaadin_shared_communication_MethodInvocation_2Lcom_vaadin_client_ServerConnector_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_RpcManager_$parseAndApplyInvocation__Lcom_vaadin_client_communication_RpcManager_2Lelemental_json_JsonArray_2Lcom_vaadin_client_ApplicationConnection_2Lcom_vaadin_shared_communication_MethodInvocation_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler$3_$handleRpcInvocations__Lcom_vaadin_client_communication_MessageHandler$3_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler$3_$execute__Lcom_vaadin_client_communication_MessageHandler$3_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler_$handleJSON__Lcom_vaadin_client_communication_MessageHandler_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_MessageHandler_$handleMessage__Lcom_vaadin_client_communication_MessageHandler_2Lcom_vaadin_client_ValueMap_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_vaadin_client_communication_XhrConnection$XhrResponseHandler_onResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.anonymous(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.com_google_gwt_core_client_impl_Impl_entry0__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
at Unknown.anonymous(http://192.168.101.67:8080/VAADIN/widgetsets/com.example.MyWidgetset/FC8CC77F657201509CBF27671347ACA1.cache.js)
Imported from https://dev.vaadin.com/ issue #20416
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in the reported Vaadin versions with IE10 or IE11, using a subwindow containing a grid with at least three rows and filtering to the second row. Use the debug output to follow the DataProviderRpc.setRowData call and the Grid/Escalator stack around FlyweightCell.setup. Done means filtering no longer triggers the client-side exception and the grid continues displaying rows.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100