<Swing Dev> [14] RFR JDK-8190763 - Class cast exception on (CompoundEdit) UndoableEditEvent.getEdit()

Tejpal Rebari tejpal.rebari at oracle.com
Tue Nov 12 05:54:13 UTC 2019


Hi Prasanta, 
I have added try-finally in the main and called frame.dispose from finally clause.
Please find the updated webrev
http://cr.openjdk.java.net/~trebari/swing/8190763/webrev3/ <http://cr.openjdk.java.net/~trebari/swing/8190763/webrev3/>

Regards
Tejpal

> On 11-Nov-2019, at 4:34 PM, Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com> wrote:
> 
> dispose is called from createTextArea when CCE is thrown so ideally the EDT should be inside dispose() function. I guess it will be clean if you remove dispose() from CCE and add frame.dispose() under try-finally clause in main() itself. I guess frame.setIconImage() also is not needed.
> Also, please add @Override annotation to run() method of EDT.
> On 11-Nov-19 3:07 PM, Tejpal Rebari wrote:
>> Hi all,
>> I have removed GridBagLayout() ,GridBagConstraints and author tag ,
>> moved dispose() call to EDT 
>> and changed the test name to TestCCEOnEditEvet.
>> 
>> Please find the updated webrev 
>> http://cr.openjdk.java.net/~trebari/swing/8190763/webrev2/ <http://cr.openjdk.java.net/~trebari/swing/8190763/webrev2/>
>> 
>> Regards
>> Tejpal
>> 
>>> On 11-Nov-2019, at 12:02 PM, Pankaj Bansal <pankaj.b.bansal at oracle.com <mailto:pankaj.b.bansal at oracle.com>> wrote:
>>> 
>>> The fix look good to me.
>>> Some points about test case.
>>> 1.      No need for author tag. This is not followed now.
>>> 2.      The test case name should be something meaningful instead of bug***.
>>> 3.      You should not need the GridBagConstraints code anywhere to reproduce the issue.  You should remove this.
>>>  
>>>  
>>> Regards,
>>> Pankaj
>>>   <>
>>> From: Prasanta Sadhukhan 
>>> Sent: Monday, November 11, 2019 11:47 AM
>>> To: Tejpal Rebari
>>> Cc: swing-dev at openjdk.java.net <mailto:swing-dev at openjdk.java.net>
>>> Subject: Re: <Swing Dev> [14] RFR JDK-8190763 - Class cast exception on (CompoundEdit) UndoableEditEvent.getEdit()
>>>  
>>> Fix looks ok to me. Regarding the test, dispose() should be called under EDT, just as you have done for createAndShowGUI().Also, I don't think createGridBagLayout() code is necessary to recreate the issue.
>>> 
>>> Regards
>>> Prasanta
>>> On 08-Nov-19 3:56 PM, Tejpal Rebari wrote:
>>> Hi Prasanta ,  
>>> I have added a  test to the fix.
>>> Updated webrev : http://cr.openjdk.java.net/~trebari/swing/8190763/webrev1/ <http://cr.openjdk.java.net/~trebari/swing/8190763/webrev1/>
>>>  
>>> Regards
>>> Tejpal
>>>  
>>> 
>>> 
>>> On 31-Oct-2019, at 1:58 PM, Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com <mailto:prasanta.sadhukhan at oracle.com>> wrote:
>>>  
>>> Hi tejpal,
>>> Can you add a testcase to the fix? I guess one is there in the JBS itself.
>>> Regards
>>> Prasanta
>>> On 24-Oct-19 10:31 AM, Tejpal Rebari wrote:
>>> Hi All,
>>> Please review the following fix for jdk14.
>>>  
>>> Bug                  : https://bugs.openjdk.java.net/browse/JDK-8190763 <https://bugs.openjdk.java.net/browse/JDK-8190763>
>>> Webrev            : http://cr.openjdk.java.net/~trebari/swing/8190763/webrev0/ <http://cr.openjdk.java.net/~trebari/swing/8190763/webrev0/>
>>>  
>>> Issue : This issue is a regression of https://bugs.openjdk.java.net/browse/JDK-8030702 <https://bugs.openjdk.java.net/browse/JDK-8030702>.
>>> When UndoableEditEvent.getEdit() is casted to CompoundEdit, it throws class cast exception.
>>>  
>>> Fix :  In JDK-8030702 <https://bugs.openjdk.java.net/browse/JDK-8030702>  a new class DefaultDocumentEventUndoableWrapper was introduced.
>>> UndoableEditEvent.getEdit() returns an object of DefaultDocumentEventUndoableWrapper                                       and when it is casted to CompoundEdit it throws class cast exception because
>>> it doesn’t inherit CompoundEdit.
>>> Before the fix of JDK-8030702 <https://bugs.openjdk.java.net/browse/JDK-8030702>  , UndoableEditEvent.getEdit()  used to return an object of DefaultDocumentEvent which inherits CompoundEdit so the class cast exception was not thrown.
>>> The solution is to make DefaultDocumentEventUndoableWrapper a subclass of DefaultDocumentEvent.
>>>  
>>> Testing : I have tested it on Mac, Windows and Ubuntu.
>>>  
>>> Regards
>>> Tejpal
>>>  
>> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/swing-dev/attachments/20191112/a278d23d/attachment-0001.html>


More information about the swing-dev mailing list