vaadin / vaadin/framework

Grid client side exception when filtering in subwindow (IE10/IE11)

Open
#7,883 11 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Stale v7
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:*

  1. Create a Vaadin application and use the attached UI class.
  2. Load the application with the ?debug flag set.
  3. Using IE10 or IE11, bring up application UI that contains the subwindow with a contained grid.
  4. Make sure the grid contains at least 3 rows.
  5. In the first column, enter a filter string that will cause only the second row to show. Press 'Enter'.
  6. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.