RFR: 8295248: JEditorPane HTML form with multi-selection broke data after resetting [v3]
Toshio Nakamura
tnakamura at openjdk.org
Mon Oct 31 09:15:24 UTC 2022
On Mon, 24 Oct 2022 02:06:23 GMT, Toshio Nakamura <tnakamura at openjdk.org> wrote:
>> When JEditorPane shown HTML form with multi-selection, the reset operation broke its data.
>>
>> The sample testcase were attached in JBS. The recreate steps are below:
>> 1. The sample shows a multi-selection form with 5 items.
>> 2. Select the 4th item.
>> 3. Press the reset button.
>> Actual: The 4th item is still selected.
>> Expect: No item should be selected. Resetting operation may move to the initial state. The sample doesn't use 'selected' property in each option tag.
>> 4. Just after the step 3, move the focus to outside of the application and back.
>> Actual: The 2nd item is selected. It means inside data indicates so.
>> Expect: No item is selected.
>>
>> There are two issues. The current method `OptionListModel.removeIndexInterval()` removed the indexed item, and shifted the rest. Then, selection values were corrupted.
>> I think the clear selection method `OptionListModel.clearSelection()` is suitable here.
>>
>> Test: jdk_desktop on macOS (x64, Monterey), Linux (x64, RHEL8), and Windows (x64, 2012R2).
>> No regression found
>
> Toshio Nakamura has updated the pull request incrementally with one additional commit since the last revision:
>
> Fixed space
Tested with jwebserver. It shows logs like `GET /test.html?select=1&subtmi=submit HTTP/1.1`, and the selected items can be identified.
Test1: 5 items in HTML select form without property. Like,
<select size="5" multiple>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
1.1 Select and submit
|selected item(s)|results w/o patch |results w/ patch |
| -------------- | ------- | ------ |
|1 |1 |1 |
|2 |2 |2 |
|3 |3 |3 |
|4 |4 |4 |
|5 |5 |5 |
|1,2,3,4,5 |1,2,3,4,5 |1,2,3,4,5 |
1.2. Select, _reset_ and submit
|selected item(s)|w/o patch|w/ patch|
| -------------- | ------- | ------ |
|1 |none |none |
|2 |**1** |none |
|3 |none |none |
|4 |**2** |none |
|5 |none |none |
|1,2,3,4,5 |**1,2** |none |
Test2: 5 items in HTML select form with 'selected' property at the first items. Like,
<select size="5" multiple>
<option selected>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
</select>
2.1 Select and submit
|selected item(s)|w/o patch|w/ patch|
| -------------- | ------- | ------ |
|1 |1 |1 |
|2 |2 |2 |
|3 |3 |3 |
|4 |4 |4 |
|5 |5 |5 |
|1,2,3,4,5 |1,2,3,4,5 |1,2,3,4,5 |
2.2 Select, _reset_ and submit
|selected item(s)|w/o patch|w/ patch|
| -------------- | ------- | ------ |
|1 |1 |1 |
|2 |1 |1 |
|3 |1 |1 |
|4 |**1,2** |1 |
|5 |1 |1 |
|1,2,3,4,5 |**1,2** |1 |
Bold marked cases have the problem, and this patch can solve it.
-------------
PR: https://git.openjdk.org/jdk/pull/10685
More information about the client-libs-dev
mailing list