<Swing Dev> Unexpected NullPointerException by endComposition()

Charles Lee littlee at linux.vnet.ibm.com
Sun Oct 9 07:50:27 UTC 2011


On 10/08/2011 05:41 PM, Pavel Porvatov wrote:
> Hi Charles,
>> On 10/07/2011 05:11 PM, Pavel Porvatov wrote:
>>> Hi Charles,
>>>> On 10/03/2011 05:40 PM, Pavel Porvatov wrote:
>>>>> Hi Charles,
>>>>>> On 09/22/2011 05:18 PM, Neil Richards wrote:
>>>>>>> On Thu, 2011-09-22 at 14:21 +0800, Charles Lee wrote:
>>>>>>>> Hi guys,
>>>>>>>>
>>>>>>>> The webrev is attached.
>>>>>>> For ease of review, I've uploaded the webrev to 
>>>>>>> cr.openjdk.java.net [1]
>>>>>>>
>>>>>>> Regards, Neil
>>>>>>>
>>>>>>> [1] http://cr.openjdk.java.net/~ngmr/6938583/webrev.00
>>>>>>>
>>>>>> Hi guys,
>>>>>>
>>>>>> Any update about this issue? Is the idea workable?
>>>>>>
>>>>> Can you explain why should we consume right clicks but not left 
>>>>> ones? (May be there are other test cases when NPE is thrown... ) 
>>>>> And why do you consume event? (May be it hides NPE but breaks 
>>>>> functionality)
>>>>>
>>>>> Thanks, Pavel
>>>>>
>>>>
>>>> 1. When right clicks, it suppose to show a manu on where you click. 
>>>> But I guess the demo (CodePointIM) is not suppose to show that 
>>>> (what will be show when use CodePointIM and right click? IIRC, I 
>>>> tried the normal input and right click but get nothing)
>>>> 2. If point 1 is true, consuming the right click in the CodePointIM 
>>>> is the easiest way to fix it and less error-prone comparing with 
>>>> fixing in the jdk...
>>>> 3. Consuming left click will disable the movement of the input 
>>>> place by clicking, I guess...
>>>>
>>> There is no information about popup menu in the bug description. The 
>>> problem is that endComposition() throws NPE if Input Method is 
>>> turned on and the program is in composition mode. If you apply your 
>>> fix and change BUTTON3 into BUTTON2 in the MouseEventTest2 test (see 
>>> bug description), then NPE will be thrown with your patch as well...
>>>
>>> Regards, Pavel
>>
>> Why change Button3 to Button2? Does Button3 reflect the right click?
> No, Button2 is the middle button. But if you use Button2 in the 
> MouseEventTest2 the test is still valid and it shouldn't throw any 
> unexpected exceptions. But if you apply your fix and replace Button3 
> by Button2 in the MouseEventTest2 test, run the MouseEventTest2 test 
> and use testcase from the bug description (of course in step 5 you 
> should use the middle mouse button now) you'll get NPE
>>
>> NPE was occurred because the component is null. Component becomes 
>> null because the default carret, IIRC, has been changed when it 
>> receive the right click event. It is the right behavior, if I 
>> understand correctly. So I am trying to disable the right click event 
>> if the demo does not suppose some menu should going to show up.
>>
> I still don't understand where do you see popup menu? I wrote about 
> the test from 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6938583 and there 
> is no popup there...
>
> Regards, Pavel
I got your point. What about this solution:
If in the compose mode, endCompositoin just sendComposedText instead of 
sendCommittedText.

The patch is attached

-- 
Yours Charles

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch.v2
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20111009/767f7979/patch.v2>


More information about the swing-dev mailing list