Bug #11592
In-browse toggle-box MODIFIED flag is not set on mouse click
Start date:
Due date:
% Done:
0%
billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
History
#2 Updated by Stanislav Lomany 19 days ago
The issue is described in #11545-13.
Created task branch 11592a from FWD trunk revision 16634.
#3 Updated by Stanislav Lomany 18 days ago
- Status changed from WIP to Review
Hynek, please review 11592a rev 16635.
#4 Updated by Hynek Cihlar 15 days ago
Code review 11592a revisions 16634..16635
I didn't test, but worth to check:
- [MAJOR] functional
BrowseGuiImpl.rowClickSecondPart: The deferred toggle block can dereference anulleditor. WhencurrColumn toggleColumn,switchTogglestaystrueandgetActiveToggleBox()(which isreturn (ToggleBox) activeEditor) is called with noisEditorActive()/null guard, sotoggle.getValue()throws an NPE if the editor was torn down. Concrete trigger: user first-clicks a toggle-box cell in a not-currently-edited row;startEdit()returnstrue(editor active), theelse if (toggleClicked)branch recordstoggleColumn = currColumn, then the guard at line 5770 firesinvokeRowEntryTrigger(oldFocusId)— a synchronous ROW-ENTRY dispatch viaThinClient.invokeTriggers. If the application ROW-ENTRY trigger ends browse editing without changing the column (e.g.APPLY "ENTRY" TOa widget outside the browse),finishStopEdit()setsactiveEditor = nullbut leavescurrColumnunchanged. Control then reaches the deferred block withcurrColumn toggleColumn, the innerifis skipped, andgetActiveToggleBox()returnsnull→ NPE. Because the NPE is not aBrowseException, the method'scatchdoes not swallow it and the click handler crashes. This window is new: the pre-change code flipped the toggle in theelse ifbranch before the triggers ran, whenactiveEditorwas freshly non-null. Note the asymmetry — thecurrColumn != toggleColumnpath re-guards viaswitchToggle = startEdit(), and every othergetActiveToggleBox()call site inBrowse/BrowseGuiImplis guarded byisEditorToggleBox()/isEditorActive(), but the equal-column path here is not. Fix: gate the equal-column flip onisEditorActive()(or null-checkgetActiveToggleBox()) as well. [verdict: CONFIRMED]
#5 Updated by Stanislav Lomany 14 days ago
Hynek, I've added a guard condition in 11592a rev 16636, please review.
#6 Updated by Hynek Cihlar 13 days ago
Stanislav Lomany wrote:
Hynek, I've added a guard condition in 11592a rev 16636, please review.
Code review. It looks good.
#7 Updated by Alexandru Lungu 13 days ago
- Status changed from Review to Internal Test