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.

Reply via email to