<Swing Dev> [12] RFR JDK-8211703: JInternalFrame : java.lang.AssertionError: cannot find the internal frame

Prasanta Sadhukhan prasanta.sadhukhan at oracle.com
Mon Nov 12 11:21:32 UTC 2018


Thanks Muneer for the confirmation. Gentle reminder to review which is 
pending for over a month now.

http://cr.openjdk.java.net/~psadhukhan/8211703/webrev.1/

Regards
Prasanta
On 24-Oct-18 3:13 PM, Muneer Kolarkunnu wrote:
> Hi Prasanta,
>
> I tested with provided binary and issue is resolved with this fix. Thanks for fixing this issue.
>
> Regards,
> Muneer
>
> -----Original Message-----
> From: Muneer Kolarkunnu
> Sent: Wednesday, October 24, 2018 12:00 PM
> To: Prasanta Sadhukhan <prasanta.sadhukhan at oracle.com>; Sergey Bylokhov <sergey.bylokhov at oracle.com>; swing-dev at openjdk.java.net
> Subject: Re: <Swing Dev> [12] RFR JDK-8211703: JInternalFrame : java.lang.AssertionError: cannot find the internal frame
>
> Hi Prasanta,
>
> I can verify it if you can share a binary with fix.
>
> Regards,
> Muneer
>
> -----Original Message-----
> From: Prasanta Sadhukhan
> Sent: Wednesday, October 24, 2018 11:41 AM
> To: Sergey Bylokhov <sergey.bylokhov at oracle.com>; swing-dev at openjdk.java.net; ABDUL.KOLARKUNNU <abdul.kolarkunnu at oracle.com>
> Subject: Re: <Swing Dev> [12] RFR JDK-8211703: JInternalFrame : java.lang.AssertionError: cannot find the internal frame
>
> Hi Muneer,
>
> Could you check (as a submitter) if the proposed fix works in your jemmy environment? It seems to work for me with the command line you gave in JBS.
>
> Regards
> Prasanta
> On 22-Oct-18 11:24 AM, Prasanta Sadhukhan wrote:
>> Gentle reminder...
>>
>> Regards
>> Prasanta
>> On 05-Oct-18 2:31 PM, Prasanta Sadhukhan wrote:
>>> Hi Sergey,
>>>
>>>
>>> On 04-Oct-18 11:03 PM, Prasanta Sadhukhan wrote:
>>>>
>>>> On 04-Oct-18 10:44 PM, Prasanta Sadhukhan wrote:
>>>>>
>>>>> On 04-Oct-18 10:29 PM, Sergey Bylokhov wrote:
>>>>>> On 04/10/2018 09:44, Prasanta Sadhukhan wrote:
>>>>>>> Hi Sergey,
>>>>>>>
>>>>>>> Yes, this method should return JInternalFrame but there is no way
>>>>>>> to get JinternalFrame object from BasicInternalFrameTitlePane
>>>>>>> currently.
>>>>>> But why it is not possible? The BasicInternalFrameTitlePane is a
>>>>>> title of the internalFrame and it looks like it should be located
>>>>>> somewhere inside the internalFrame, isn't it?
>>>>>>
>>>>> BasicInternalTitlePane has a protected variable of JInternalFrame
>>>>> object and there is no public method to access that so that's why I
>>>>> told it is not currently possible unless we add a public method in
>>>>> this Basic* class, if I understand it correctly. Let me know if it
>>>>> can be accessed some other way.
>>>>>
>>>> JInternalFrame.getUI().getNorthPane() probably might give
>>>> BasicInternalTitlePane object but I do not think we can get
>>>> viceversa, ie get JInternalFrame object from BasicInternalTitlePane.
>>> I have improved the code to get JInternalFrame from
>>> BasicInternalFrameTitlePane, as you have suggested
>>> http://cr.openjdk.java.net/~psadhukhan/8211703/webrev.1/
>>>
>>> Regards
>>> Prasanta
>>>>> Regards
>>>>> Prasanta
>>>>>> This Metacity class has the provision of accepting null value from
>>>>>> this method
>>>>>>> and this assertion problem is caused only when we ran with "esa"
>>>>>>> [to enable assertion]. The submitter has not mentioned there is
>>>>>>> any failure if we run the without esa, so I have only done away
>>>>>>> with the wrong assertion for BasicInternalFrameTitlePane.
>>>>>>>
>>>>>>> Regards
>>>>>>> Prasanta
>>>>>>> On 04-Oct-18 9:43 PM, Sergey Bylokhov wrote:
>>>>>>>> Hi, Prasanta.
>>>>>>>> Can you please clarify this code a little bit. As far as I
>>>>>>>> understand this method should return the JInternalFrame, which
>>>>>>>> should be accessed via the comp passed to this method. This
>>>>>>>> method already has this check:
>>>>>>>>          if (comp.getParent() instanceof
>>>>>>>> BasicInternalFrameTitlePane) {
>>>>>>>>              comp = comp.getParent();
>>>>>>>>          }
>>>>>>>>
>>>>>>>> So maybe we can improve it to fetch the JInternalFrame from the
>>>>>>>> BasicInternalFrameTitlePane or from another class passed to this
>>>>>>>> method?
>>>>>>>>
>>>>>>>> On 04/10/2018 07:35, Prasanta Sadhukhan wrote:
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> Please review a cleanup of the code where wrong assertion is
>>>>>>>>> used when Component is an instance of BasicInternalFrameTitlePane.
>>>>>>>>>
>>>>>>>>> Now, BasicInternalFrameTitlePane is extended from JComponent
>>>>>>>>> and not from JInternalFrame so it will never satisfy the
>>>>>>>>> if-else condition if "Component is instanceof
>>>>>>>>> BasicInternalFrameTitlePane", so proposed fix is to assert only
>>>>>>>>> if the component is not an instance of
>>>>>>>>> BasicInternalFrameTitlePane
>>>>>>>>>
>>>>>>>>> diff -r d96a607e9594
>>>>>>>>> src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Meta
>>>>>>>>> city.java
>>>>>>>>>
>>>>>>>>> ---
>>>>>>>>> a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Me
>>>>>>>>> tacity.java
>>>>>>>>> Tue Sep 18 18:32:03 2018 -0700
>>>>>>>>> +++
>>>>>>>>> b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Me
>>>>>>>>> tacity.java
>>>>>>>>> Thu Oct 04 19:53:10 2018 +0530
>>>>>>>>> @@ -337,7 +337,9 @@
>>>>>>>>>            } else if (comp instanceof
>>>>>>>>> JInternalFrame.JDesktopIcon) {
>>>>>>>>>                return
>>>>>>>>> ((JInternalFrame.JDesktopIcon)comp).getInternalFrame();
>>>>>>>>>            }
>>>>>>>>> -        assert false : "cannot find the internal frame";
>>>>>>>>> +       if (!(comp instanceof BasicInternalFrameTitlePane)) {
>>>>>>>>> +            assert false : "cannot find the internal frame";
>>>>>>>>> +       }
>>>>>>>>>            return null;
>>>>>>>>>        }
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Prasanta
>>>>>>>>
>>>>>>



More information about the swing-dev mailing list