<Swing Dev> [10] RFR JDK-8176072: READING attributes are not available on TSF

semyon.sadetsky at oracle.com semyon.sadetsky at oracle.com
Fri Nov 17 16:10:04 UTC 2017


+1

--Semyon


On 11/17/17 4:35 AM, Sreeprakash Sreedharan wrote:
>
> Hi Semyon,
>
> Thanks for your inputs. You are right about the need for redirecting 
> AwtInputTextInfor::GetAttributeInfor also to m_pResultTextInfor.
>
> This scenario can happen when for the main AwtInputTextInfor (having 
> the composition string in this case), the size of the current 
> composition string is zero or if there is a mismatch in the size of 
> the composition attribute and the composition string.
>
> However, I have not yet been able to regenerate this scenario at all, 
> as composition string being zero indirectly implies that 
> WM_IME_COMPOSITION will not be send with GCS_COMPSTR.
>
> This could probably explain why GetAttributeInfor was never redirected 
> to m_pResultTextInfor and the results were only merged.
>
> But there is still a theoretical possibility of this happening.
>
> I have updated the webrev with this change.
>
> Updated Webrev : 
> http://cr.openjdk.java.net/~ssreedharan/8176072/jdk10/webrev.01/ 
> <http://cr.openjdk.java.net/%7Essreedharan/8176072/jdk10/webrev.01/>
>
> Thanks And Regards,
>
> Sreeprakash
>
> *From:*Semyon Sadetsky
> *Sent:* Friday, November 17, 2017 12:22 AM
> *To:* Sreeprakash Sreedharan <sreeprakash.s at oracle.com>; 
> awt-dev at openjdk.java.net; swing-dev at openjdk.java.net
> *Subject:* Re: <Swing Dev> [10] RFR JDK-8176072: READING attributes 
> are not available on TSF
>
> Hi Sreeprakash,
>
> Shouldn't the AwtInputTextInfor::GetAttributeInfor be readdressed to 
> m_pResultTextInfor as well?
>
> --Semyon
>
> On 11/16/2017 08:36 AM, Sreeprakash Sreedharan wrote:
>
>     Hello All,
>
>     Please review the following fix in JDK10.
>
>     Bug : https://bugs.openjdk.java.net/browse/JDK-8176072
>
>     Webrev :
>     http://cr.openjdk.java.net/~ssreedharan/8176072/jdk10/webrev.00/
>     <http://cr.openjdk.java.net/%7Essreedharan/8176072/jdk10/webrev.00/>
>
>     The bug describes a scenario wherein reading
>     (AttributedCharacterIterator.Attribute.READING) attributes are not
>     obtained from the InputMethodEvent text. (Japanese IME)
>
>     (Detailed summary is provided in the JBS-Comment
>     <https://bugs.openjdk.java.net/browse/JDK-8176072?focusedCommentId=14131714&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14131714>)
>
>     Issue:
>
>     This issue is seen when IMM sends WM_IME_COMPOSITION with both
>     GCS_COMPSTR and GCS_RESULTSTR. The scenario is handled in
>     AwtInputTextInfor::GetContextData, where we extract the result
>     string using the GCS_RESULTSTR data and store it in
>     m_pResultTextInfor, member variable inside the main
>     AwtInputTextInfor. Along with the result string the READING
>     attributes of the first portion of the string is also stored in
>     m_pResultTextInfor. The main AwtInputTextInfor stores the data
>     represented by GCS_COMPSTR. When GetClauseInfor is called on the
>     main AwtInputTextInfor, it just checks whether the read clause is
>     present within it. If it’s not present, it just returns NULL even
>     though the GCS_RESULTSTR data present within m_pResultTextInfor
>     has READING attributes present.
>
>     Solution :
>
>     In GetClauseInfor, made sure that even if the main
>     AwtInputTextInfor doesn't have any clause and Reading information
>     it still checks for the GCS_RESULTSTR data held in m_pResultTextInfor.
>
>     Also in WInputMethod.java, there was a condition which checks
>     whether the last element in clauseBoundary is equal to length of
>     the text entered. This is an incorrect assumption, as proven in
>     the test case.
>
>     Here, the last element of clauseBoundary comes as 2 (length of the
>     Japanese String formed after typing 'a','b','e','space','space'),
>     but the final text now has the new character 's' added and the
>     total length will be 3.
>
>     The test case added requires the user to change to Japanese IME
>     and hence its manual.
>
>     I have run all relevant JTREG test cases and Mach5 jobs and didn't
>     see any failures.
>
>     Regards,
>
>     Sreeprakash
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20171117/689f4fad/attachment.html>


More information about the swing-dev mailing list