<Swing Dev> [12] RFR JDK-8211703: JInternalFrame : java.lang.AssertionError: cannot find the internal frame
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Thu Oct 4 16:13:40 UTC 2018
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/Metacity.java
> ---
> a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.java
> Tue Sep 18 18:32:03 2018 -0700
> +++
> b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/Metacity.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
--
Best regards, Sergey.
More information about the swing-dev
mailing list