Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Null check operator used on a null value on TextField with contextMenuBuilder #128114

Merged
merged 6 commits into from
Jun 6, 2023

Conversation

fzyzcjy
Copy link
Contributor

@fzyzcjy fzyzcjy commented Jun 2, 2023

Close #128113

Fun fact: This is caught by monkey testing I have written (will soon be open sourced as well) that runs on my app!

Without the fix, the test fails as expected:

(base) ➜  flutter git:(feat/text-field-npe) /Volumes/MyExternal/ExternalRefCode/flutter/bin/flutter test test/material/text_field_test.dart --name 'changes from default'
00:06 +0: context menu contextMenuBuilder changes from default to null                                                                
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following _TypeError was thrown building
_OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#e3717](state:
_OverlayEntryWidgetState#7666a):
Null check operator used on a null value

When the exception was thrown, this was the stack:
#0      EditableTextState._createSelectionOverlay.<anonymous closure> (package:flutter/src/widgets/editable_text.dart:3331:43)
#1      SelectionOverlay.showToolbar.<anonymous closure> (package:flutter/src/widgets/text_selection.dart:1357:36)
#2      ContextMenuController.show.<anonymous closure> (package:flutter/src/widgets/context_menu_controller.dart:65:54)
#3      _OverlayEntryWidgetState.build (package:flutter/src/widgets/overlay.dart:351:36)
#4      StatefulElement.build (package:flutter/src/widgets/framework.dart:5198:27)
#5      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5086:15)
#6      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#7      Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#8      StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#9      Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#10     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6093:32)
#11     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6595:17)
#12     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#13     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#14     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#15     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#16     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#17     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#18     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#19     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#20     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#21     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#22     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#23     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#24     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#25     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#26     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#27     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#28     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#29     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#30     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#31     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#32     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#33     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#34     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#35     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#36     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#38     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#39     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#40     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#41     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#42     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#43     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#44     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#45     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#46     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#47     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#48     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#49     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#50     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#51     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#52     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#53     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#54     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#55     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#56     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#57     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#58     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#59     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#60     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#61     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#62     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#63     _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#64     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#65     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#66     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#69     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#70     StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#71     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#73     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#74     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#75     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#76     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#77     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#78     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#79     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#80     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#81     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#82     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#83     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#84     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#85     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#86     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#87     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#89     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#90     StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#91     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#93     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#94     ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#95     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#97     Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#98     StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#99     Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#100    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#101    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#102    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#103    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#104    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#105    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#106    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#107    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#108    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#109    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#110    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#111    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#112    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#113    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#114    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#115    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#116    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#117    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#118    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#119    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#120    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#121    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#122    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#123    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#124    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#125    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#126    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#127    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#128    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#129    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#130    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#131    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#132    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#133    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#134    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#135    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#136    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#137    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#138    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#140    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#141    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#142    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#143    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#144    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#145    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#146    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#147    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#148    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#149    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#150    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#151    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#152    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#153    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#154    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#155    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#156    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#157    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#158    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#159    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#160    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#161    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#162    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#163    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#164    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#165    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#166    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#167    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#168    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#169    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#170    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#171    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#172    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#173    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#174    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#175    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#176    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#177    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#178    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#179    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#180    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#181    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#182    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#183    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#184    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#185    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#186    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#187    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#188    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#189    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#190    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#191    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#192    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#193    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#194    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#195    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#196    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#197    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#198    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#199    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#200    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#201    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#202    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#203    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#204    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#205    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#206    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#207    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#208    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#209    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#210    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#211    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#212    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#213    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#214    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#215    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#216    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#217    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#218    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#219    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#220    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#221    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#222    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#223    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#224    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#225    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#226    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#227    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#228    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#229    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#230    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#231    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#232    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#233    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#234    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#235    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#236    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#237    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#238    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#239    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#240    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#241    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#242    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#243    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#244    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#245    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#246    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#247    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#248    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#249    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#250    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#251    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#252    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#253    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#254    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#255    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#256    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#257    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#258    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#259    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#260    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#261    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#262    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#263    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#264    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#265    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#266    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#267    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#268    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#269    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#270    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#271    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#272    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#273    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#274    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#275    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#276    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#277    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6442:14)
#278    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#279    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#280    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#281    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#282    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
#283    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#284    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#285    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#286    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#287    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#288    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#289    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#290    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#291    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#292    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#293    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#294    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#295    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#296    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#297    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#298    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#299    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#300    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#301    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#302    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#303    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#304    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#305    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#306    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#307    StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5251:11)
#308    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#309    StatefulElement.update (package:flutter/src/widgets/framework.dart:5274:5)
#310    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#311    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#312    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#313    ProxyElement.update (package:flutter/src/widgets/framework.dart:5417:5)
#314    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#315    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5111:16)
#316    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#317    StatelessElement.update (package:flutter/src/widgets/framework.dart:5162:5)
#318    Element.updateChild (package:flutter/src/widgets/framework.dart:3686:15)
#319    RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1253:16)
#320    RenderObjectToWidgetElement.update (package:flutter/src/widgets/binding.dart:1230:5)
#321    RenderObjectToWidgetElement.performRebuild (package:flutter/src/widgets/binding.dart:1244:7)
#322    Element.rebuild (package:flutter/src/widgets/framework.dart:4805:7)
#323    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2780:19)
#324    AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1396:19)
#325    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:358:5)
#326    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1297:15)
#327    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1227:9)
#328    AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:1246:9)
#331    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
#332    AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1232:27)
#333    WidgetTester._pumpWidget (package:flutter_test/src/widget_tester.dart:587:20)
#334    WidgetTester.pumpWidget.<anonymous closure> (package:flutter_test/src/widget_tester.dart:572:14)
#337    TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:68:41)
#338    WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:571:27)
#339    main.<anonymous closure>.<anonymous closure> (file:///Volumes/MyExternal/ExternalRefCode/flutter/packages/flutter/test/material/text_field_test.dart:15687:20)
<asynchronous suspension>
<asynchronous suspension>
(elided 5 frames from dart:async and package:stack_trace)

════════════════════════════════════════════════════════════════════════════════════════════════════
00:06 +0 -1: context menu contextMenuBuilder changes from default to null [E]                                                         
  Test failed. See exception logs above.
  The test description was: contextMenuBuilder changes from default to null
  

To run this test again: /Volumes/MyExternal/ExternalRefCode/flutter/bin/cache/dart-sdk/bin/dart test /Volumes/MyExternal/ExternalRefCode/flutter/packages/flutter/test/material/text_field_test.dart -p vm --plain-name 'context menu contextMenuBuilder changes from default to null'
00:06 +0 -1: Some tests failed.                                                                                                       
(base) ➜  flutter git:(feat/text-field-npe) 

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
  • I signed the CLA.
  • I listed at least one issue that this PR fixes in the description above.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@flutter-dashboard flutter-dashboard bot added a: text input Entering text in a text field or keyboard related problems f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels. labels Jun 2, 2023
@HansMuller HansMuller requested a review from justinmc June 2, 2023 21:38
Copy link
Contributor

@justinmc justinmc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with nits. Thanks for fixing this! I'd be interested to see your monkey testing thing when it's open source.

packages/flutter/test/material/text_field_test.dart Outdated Show resolved Hide resolved
packages/flutter/test/material/text_field_test.dart Outdated Show resolved Hide resolved
Co-authored-by: Justin McCandless <justinjmccandless@gmail.com>
@github-actions github-actions bot removed the f: material design flutter/packages/flutter/material repository. label Jun 2, 2023
@fzyzcjy
Copy link
Contributor Author

fzyzcjy commented Jun 2, 2023

I'd be interested to see your monkey testing thing when it's open source.

Sure! When I am ready (open sourced with doc, screenshots, etc) will ping you :)

@justinmc
Copy link
Contributor

justinmc commented Jun 5, 2023

Ironically the Google tests are failing with the same error "Null check operator used on a null value". It looks like it's happening when changing AppLifecycleState.

@fzyzcjy Maybe try pushing a merge commit to let it run again and make sure it's a real failure? Or let me know if you have any ideas why we could be getting that error.

@github-actions github-actions bot added the f: material design flutter/packages/flutter/material repository. label Jun 5, 2023
@fzyzcjy
Copy link
Contributor Author

fzyzcjy commented Jun 5, 2023

Maybe try pushing a merge commit to let it run again and make sure it's a real failure?

Done merging.

Or let me know if you have any ideas why we could be getting that error.

If you show some code (surely removing any private parts) I am happy to have a look. But without any code I am afraid I do not have the ability to debug...

Copy link
Contributor

@Renzo-Olivares Renzo-Olivares left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM and google testing seems to be passing now.

@Renzo-Olivares Renzo-Olivares added the autosubmit Merge PR when tree becomes green via auto submit App label Jun 6, 2023
@auto-submit auto-submit bot merged commit eb2d9de into flutter:master Jun 6, 2023
72 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 7, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 7, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 7, 2023
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jun 7, 2023
Roll Flutter from 0b7415356e07 to 8a5c22e282db (46 revisions)

flutter/flutter@0b74153...8a5c22e

2023-06-07 5236035+fzyzcjy@users.noreply.github.com Super tiny MediaQuery doc update (flutter/flutter#127904)
2023-06-07 jacksongardner@google.com Revert "Make inspector weakly referencing the inspected objects." (flutter/flutter#128436)
2023-06-07 leigha.jarett@gmail.com Update menu API docs to help developers migrate to m3 (flutter/flutter#128351)
2023-06-07 andrewrkolos@gmail.com [tools] allow explicitly specifying the JDK to use via a new config setting (flutter/flutter#128264)
2023-06-07 engine-flutter-autoroll@skia.org Roll Flutter Engine from 6f9df0f988c1 to 59d5444cf06c (3 revisions) (flutter/flutter#128376)
2023-06-07 andrewrkolos@gmail.com Do not try to load main/default asset image if only higher-res variants exist (flutter/flutter#128143)
2023-06-07 92602467+99spark@users.noreply.github.com Addressed Ambiguity in transform.scale constructor docs (flutter/flutter#128182)
2023-06-07 5236035+fzyzcjy@users.noreply.github.com Super tiny fix of dead link (flutter/flutter#128160)
2023-06-07 goderbauer@google.com Refactor tests (flutter/flutter#128371)
2023-06-07 polinach@google.com Make inspector weakly referencing the inspected objects. (flutter/flutter#128095)
2023-06-07 goderbauer@google.com Add viewId to PointerEvents (flutter/flutter#128287)
2023-06-07 5236035+fzyzcjy@users.noreply.github.com Show error message in release mode when box is not laid out without losing performance (flutter/flutter#126302)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from ca499463ec2e to 6f9df0f988c1 (1 revision) (flutter/flutter#128363)
2023-06-06 khanhnwin@gmail.com Update Draggable YouTube video link (flutter/flutter#128078)
2023-06-06 31859944+LongCatIsLooong@users.noreply.github.com Remove more rounding hacks from TextPainter (flutter/flutter#127826)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 4571695f9e76 to ca499463ec2e (1 revision) (flutter/flutter#128356)
2023-06-06 43054281+camsim99@users.noreply.github.com [Android] Update plugin and module templates to use Flutter constant for `compileSdkVersion` (flutter/flutter#128073)
2023-06-06 rmolivares@renzo-olivares.dev handleSelectWord in MultiSelectableSelectionContainerDelegate should handle rects inside of rects (flutter/flutter#127478)
2023-06-06 christopherfujino@gmail.com [flutter_tools] never tree shake 0x20 (space) font codepoints on web (flutter/flutter#128302)
2023-06-06 31859944+LongCatIsLooong@users.noreply.github.com Remove `textScaleFactor` dependent logic from `AppBar` (flutter/flutter#128112)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from b6d37f8f74ad to 4571695f9e76 (6 revisions) (flutter/flutter#128350)
2023-06-06 5236035+fzyzcjy@users.noreply.github.com Fix `Null check operator used on a null value` on TextField with contextMenuBuilder (flutter/flutter#128114)
2023-06-06 engine-flutter-autoroll@skia.org Roll Packages from db4e5c2 to da72219 (10 revisions) (flutter/flutter#128348)
2023-06-06 91688203+yusuf-goog@users.noreply.github.com Updating cirrus docker image to ubuntu focal. (flutter/flutter#128291)
2023-06-06 leigha.jarett@gmail.com Adding example for migrating to navigation drawer (flutter/flutter#128295)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 722aad83e5fe to b6d37f8f74ad (2 revisions) (flutter/flutter#128341)
2023-06-06 goderbauer@google.com Clean-up viewId casts in flutter_test (flutter/flutter#128256)
2023-06-06 kevinjchisholm@google.com Update cherry-pick issue template to more uniform labels. (flutter/flutter#128333)
2023-06-06 hans.muller@gmail.com Use Material3 in the 2D viewport tests (flutter/flutter#128155)
2023-06-06 nbosch@google.com Use a `show` over a `hide` for `test_api` exports (flutter/flutter#128298)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from aaa7574375a6 to 722aad83e5fe (1 revision) (flutter/flutter#128307)
2023-06-06 leigha.jarett@gmail.com Migration guide for moving from BottomNavigationBar to NavigationBar (flutter/flutter#128263)
2023-06-06 mdebbar@google.com [web] Use 'Uri' instead of 'dart:html' to extract pathname (flutter/flutter#127983)
2023-06-06 engine-flutter-autoroll@skia.org Roll Flutter Engine from 2b353ae90731 to aaa7574375a6 (4 revisions) (flutter/flutter#128301)
2023-06-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from 220ece4d9faa to 2b353ae90731 (1 revision) (flutter/flutter#128293)
2023-06-05 49699333+dependabot[bot]@users.noreply.github.com Bump actions/labeler from 4.0.4 to 4.1.0 (flutter/flutter#128290)
2023-06-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from 7f12e3497428 to 220ece4d9faa (6 revisions) (flutter/flutter#128282)
2023-06-05 jonahwilliams@google.com [framework] attempt non-key solution (flutter/flutter#128273)
2023-06-05 chillers@google.com [labeler] Fix adding labels when name is directory (flutter/flutter#128243)
2023-06-05 katelovett@google.com Remove scrollbar deprecations isAlwaysShown and hoverThickness (flutter/flutter#127351)
2023-06-05 katelovett@google.com Fix update drag error that made NestedScrollView un-scrollable (flutter/flutter#127718)
2023-06-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from f9f72388a4da to 7f12e3497428 (4 revisions) (flutter/flutter#128271)
2023-06-05 goderbauer@google.com Migrate SemanticsBinding to onSemanticsActionEvent (flutter/flutter#128254)
2023-06-05 engine-flutter-autoroll@skia.org Roll Flutter Engine from c838a1b05924 to f9f72388a4da (19 revisions) (flutter/flutter#128252)
2023-06-05 jonahwilliams@google.com [framework] force flexible space background to rebuild. (flutter/flutter#128138)
2023-06-05 engine-flutter-autoroll@skia.org Roll Packages from 75085ed to db4e5c2 (4 revisions) (flutter/flutter#128246)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a: text input Entering text in a text field or keyboard related problems autosubmit Merge PR when tree becomes green via auto submit App f: material design flutter/packages/flutter/material repository. framework flutter/packages/flutter repository. See also f: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Null check operator used on a null value on TextField with contextMenuBuilder
3 participants