Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
I do not see getRootFrame() returning null . It calls getSharedOwnerFrame() which instantiates a shared owner frame. In other instances of getRootFrame() invocation also in showInputDialog() , showOptionDialog we have pane.setComponentOrientation(((parentComponent == null) ? getRootFrame() : parentComponent).getComponentOrientation()); where it does not check for getRootFrame() returning null. Regards Prasanta On 5/22/2017 7:32 PM, Jason Mehrens wrote: What I mean is getRootFrame() can return null. Scan the rest of the source and notice the rest of the class handles that. From: Prasanta Sadhukhan <prasanta.sadhuk...@oracle.com> Sent: Friday, May 19, 2017 11:35 PM To: Jason Mehrens; swing-dev@openjdk.java.net Subject: Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException AFAIS, getComponentOrientation() will return ComponentOrientation.UNKNOWN and not null so I guess we are covered there. Regards Prasanta On 5/20/2017 2:46 AM, Jason Mehrens wrote: Prasanta, Couldn't getRootFrame().getComponentOrientation() thow a null pointer? The case that always burned me was is showing a dialog from a minimized internal frame. JInternalFrame is actually two components and when the minimized icon is showing the JInternalFrame doesn't have a parent. Jason From: swing-dev <swing-dev-boun...@openjdk.java.net> on behalf of Semyon Sadetsky <semyon.sadet...@oracle.com> Sent: Friday, May 19, 2017 8:55 AM To: Prasanta Sadhukhan; swing-dev@openjdk.java.net Subject: Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException Looks good. --Semyon On 05/18/2017 11:07 PM, Prasanta Sadhukhan wrote: Please find the modified webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.04/> Regards Prasanta On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: This version of the fix formally corresponds to the spec. (I did not check the spec for validity.) if (parentComponent == null) return false; if (parentComponent instanceof Frame) return true; return JOptionPane.checkFrameForComponent(parentComponent.getParent()); - "JOptionPane." is not necessary. - Please, add braces to the both if conditions. if (parentComponent == null || !(checkFrameForComponent(parentComponent))) { - "parentComponent == null" is not necessary now - to avoid extra "not" operation the if statement could be inverted. --Semyon On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.03/> If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.02/> Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * or if the parentComponent has no * Frame***, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.01/> Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
What I mean is getRootFrame() can return null. Scan the rest of the source and notice the rest of the class handles that. From: Prasanta Sadhukhan <prasanta.sadhuk...@oracle.com> Sent: Friday, May 19, 2017 11:35 PM To: Jason Mehrens; swing-dev@openjdk.java.net Subject: Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException AFAIS, getComponentOrientation() will return ComponentOrientation.UNKNOWN and not null so I guess we are covered there. Regards Prasanta On 5/20/2017 2:46 AM, Jason Mehrens wrote: > Prasanta, > > Couldn't getRootFrame().getComponentOrientation() thow a null pointer? The > case that always burned me was is showing a dialog from a minimized internal > frame. JInternalFrame is actually two components and when the minimized icon > is showing the JInternalFrame doesn't have a parent. > > Jason > > From: swing-dev <swing-dev-boun...@openjdk.java.net> on behalf of Semyon > Sadetsky <semyon.sadet...@oracle.com> > Sent: Friday, May 19, 2017 8:55 AM > To: Prasanta Sadhukhan; swing-dev@openjdk.java.net > Subject: Re: [10] RFR JDK-7042497: > javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException > > Looks good. > > --Semyon > > On 05/18/2017 11:07 PM, Prasanta Sadhukhan wrote: > > Please find the modified webrev > > http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.04/> > > Regards > Prasanta > On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: > > This version of the fix formally corresponds to the spec. (I did not check > the spec for validity.) > > if (parentComponent == null) > return false; > if (parentComponent instanceof Frame) > return true; > return > JOptionPane.checkFrameForComponent(parentComponent.getParent()); > > - "JOptionPane." is not necessary. > > - Please, add braces to the both if conditions. > > if (parentComponent == null || > !(checkFrameForComponent(parentComponent))) { > > - "parentComponent == null" is not necessary now > > - to avoid extra "not" operation the if statement could be inverted. > > --Semyon > > On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: > > Not sure about the exact meaning of that but anyways tried to make the code > spec-compliant. > > http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.03/> > > If you think it still does not adhere to spec, please suggest what more needs > to be done. > > Regards > Prasanta > On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: > > It seems, !(parentComponent instanceof Frame)) is not what the spec means. > > --Semyon > > On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: > Ok, sorry. Updated code to get the default Frame when component has no Frame > and > testcase to test that case too. > Updated webrev > http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.02/> > > Regards > Prasanta > On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: > > Yes, sorry. I meant the case I've mentioned in my first comment : when the > component has no frame. > > parentComponent determines the Frame > * in which the dialog is displayed; if null, > * or if the parentComponent has no > * Frame***, a default Frame is used > > --Semyon > > On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: > > Not sure which testcase you are running. I do not see this exception when I > run my testcase in the webrev. > > I am using createDialog in the fix for null parentComponent and not > createInternalFrame() which throws this exception. > > Regards > Prasanta > On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: > > I don't see how this change fixes the issue. > > I still got > > Exception in thread "main" java.lang.RuntimeException: JOptionPane: > parentComponent does not have a valid parent > > after applying it. > > --Semyon > > On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: > > Updated webrev to use getRootFrame() via createDialog() to get the default > Frame when a frame is not provided. > > http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.01/> > > Regards > Prasanta > On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: > > Also the spec says to use the default frame but the fix creates new frame > each time. > &g
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Hi, The fix looks good to me. With Regards, Avik Niyogi > > Subject: Re: [10] RFR JDK-7042497: > javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException > Date: Mon, 15 May 2017 15:44:17 +0530 > From: Prasanta Sadhukhan <prasanta.sadhuk...@oracle.com> > <mailto:prasanta.sadhuk...@oracle.com> > Organization: Oracle Corporation > To: Semyon Sadetsky <semyon.sadet...@oracle.com> > <mailto:semyon.sadet...@oracle.com>, swing-dev@openjdk.java.net > <mailto:swing-dev@openjdk.java.net> <swing-dev@openjdk.java.net> > <mailto:swing-dev@openjdk.java.net> > > Updated webrev to use getRootFrame() via createDialog() to get the default > Frame when a frame is not provided. > http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ > <http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.01/> > > Regards > Prasanta > On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: >> Also the spec says to use the default frame but the fix creates new frame >> each time. >> >> On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: >>> The fix covers the parentComponent=null case. >>> What about the second case when non-null component is provided but it has >>> no frame? >>> >>> --Semyon >>> >>> On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: >>>> Hi All, >>>> >>>> Please review a spec violation issue whereby if in >>>> JOptionPane.showInternalConfirmDialog(Component parentComponent, Object >>>> message) >>>> "parentComponent" is null, we are getting RuntimeException >>>> "parentComponent does not have a valid parent" >>>> >>>> but as per spec, >>>> https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html >>>> >>>> <https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html> >>>> it says "parentComponent - determines the Frame in which the dialog is >>>> displayed; if null, or if the parentComponent has no Frame, a default >>>> Frame is used" >>>> >>>> This violation exists for all overridden showInternalConfirmDialog methods >>>> and showInternalOptionDialog. >>>> >>>> The proposed fix creates a default JFrame and shows the confirm dialog in >>>> it, as stated in the spec. >>>> >>>> Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 >>>> <https://bugs.openjdk.java.net/browse/JDK-7042497> >>>> webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ >>>> <http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.00/> >>>> >>>> Regards >>>> Prasanta >>> >> >
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
AFAIS, getComponentOrientation() will return ComponentOrientation.UNKNOWN and not null so I guess we are covered there. Regards Prasanta On 5/20/2017 2:46 AM, Jason Mehrens wrote: Prasanta, Couldn't getRootFrame().getComponentOrientation() thow a null pointer? The case that always burned me was is showing a dialog from a minimized internal frame. JInternalFrame is actually two components and when the minimized icon is showing the JInternalFrame doesn't have a parent. Jason From: swing-dev <swing-dev-boun...@openjdk.java.net> on behalf of Semyon Sadetsky <semyon.sadet...@oracle.com> Sent: Friday, May 19, 2017 8:55 AM To: Prasanta Sadhukhan; swing-dev@openjdk.java.net Subject: Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException Looks good. --Semyon On 05/18/2017 11:07 PM, Prasanta Sadhukhan wrote: Please find the modified webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.04/> Regards Prasanta On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: This version of the fix formally corresponds to the spec. (I did not check the spec for validity.) if (parentComponent == null) return false; if (parentComponent instanceof Frame) return true; return JOptionPane.checkFrameForComponent(parentComponent.getParent()); - "JOptionPane." is not necessary. - Please, add braces to the both if conditions. if (parentComponent == null || !(checkFrameForComponent(parentComponent))) { - "parentComponent == null" is not necessary now - to avoid extra "not" operation the if statement could be inverted. --Semyon On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.03/> If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.02/> Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * or if the parentComponent has no * Frame***, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.01/> Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "parentComponent - determines the Frame in which the dialog is displayed; if null, or if the parentComponent has no Frame, a default Frame is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.o
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Prasanta, Couldn't getRootFrame().getComponentOrientation() thow a null pointer? The case that always burned me was is showing a dialog from a minimized internal frame. JInternalFrame is actually two components and when the minimized icon is showing the JInternalFrame doesn't have a parent. Jason From: swing-dev <swing-dev-boun...@openjdk.java.net> on behalf of Semyon Sadetsky <semyon.sadet...@oracle.com> Sent: Friday, May 19, 2017 8:55 AM To: Prasanta Sadhukhan; swing-dev@openjdk.java.net Subject: Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException Looks good. --Semyon On 05/18/2017 11:07 PM, Prasanta Sadhukhan wrote: Please find the modified webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.04/> Regards Prasanta On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: This version of the fix formally corresponds to the spec. (I did not check the spec for validity.) if (parentComponent == null) return false; if (parentComponent instanceof Frame) return true; return JOptionPane.checkFrameForComponent(parentComponent.getParent()); - "JOptionPane." is not necessary. - Please, add braces to the both if conditions. if (parentComponent == null || !(checkFrameForComponent(parentComponent))) { - "parentComponent == null" is not necessary now - to avoid extra "not" operation the if statement could be inverted. --Semyon On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.03/> If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.02/> Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * or if the parentComponent has no * Frame***, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.01/> Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "parentComponent - determines the Frame in which the dialog is displayed; if null, or if the parentComponent has no Frame, a default Frame is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/<http://cr.openjdk.java.net/%7Epsadhukhan/7042497/webrev.00/> Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Looks good. --Semyon On 05/18/2017 11:07 PM, Prasanta Sadhukhan wrote: Please find the modified webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/ Regards Prasanta On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: This version of the fix formally corresponds to the spec. (I did not check the spec for validity.) if (parentComponent == null) return false; if (parentComponent instanceof Frame) return true; return JOptionPane.checkFrameForComponent(parentComponent.getParent()); - "JOptionPane." is not necessary. - Please, add braces to the both if conditions. if (parentComponent == null || !(checkFrameForComponent(parentComponent))) { - "parentComponent == null" is not necessary now - to avoid extra "not" operation the if statement could be inverted. --Semyon On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/ If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/ Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * *_or if the _**__**_parentComponent_**_ _**_has no _**_* _**__**_Frame_**__**_***_*, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Please find the modified webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.04/ Regards Prasanta On 5/18/2017 8:44 PM, Semyon Sadetsky wrote: This version of the fix formally corresponds to the spec. (I did not check the spec for validity.) if (parentComponent == null) return false; if (parentComponent instanceof Frame) return true; return JOptionPane.checkFrameForComponent(parentComponent.getParent()); - "JOptionPane." is not necessary. - Please, add braces to the both if conditions. if (parentComponent == null || !(checkFrameForComponent(parentComponent))) { - "parentComponent == null" is not necessary now - to avoid extra "not" operation the if statement could be inverted. --Semyon On 05/18/2017 12:01 AM, Prasanta Sadhukhan wrote: Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/ If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/ Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * *_or if the _**__**_parentComponent_**_ _**_has no _**_* _**__**_Frame_**__**_***_*, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Not sure about the exact meaning of that but anyways tried to make the code spec-compliant. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.03/ If you think it still does not adhere to spec, please suggest what more needs to be done. Regards Prasanta On 5/17/2017 8:23 PM, Semyon Sadetsky wrote: It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/ Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * *_or if the _**__**_parentComponent_**_ _**_has no _**_* _**__**_Frame_**__**_***_*, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
It seems, !(parentComponent instanceof Frame)) is not what the spec means. --Semyon On 05/17/2017 12:55 AM, Prasanta Sadhukhan wrote: Ok, sorry. Updated code to get the default Frame when component has no Frame and testcase to test that case too. Updated webrev http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.02/ Regards Prasanta On 5/16/2017 8:47 PM, Semyon Sadetsky wrote: Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * *_or if the _**__**_parentComponent_**_ _**_has no _**_* _**__**_Frame_**__**_***_*, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Yes, sorry. I meant the case I've mentioned in my first comment : when the component has no frame. parentComponent determines the Frame * in which the dialog is displayed; if null, * *_or if the _**__**_parentComponent_**_ _**_has no _**_* _**__**_Frame_**__**_***_*, a default Frame is used --Semyon On 05/15/2017 10:44 PM, Prasanta Sadhukhan wrote: Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Not sure which testcase you are running. I do not see this exception when I run my testcase in the webrev. I am using createDialog in the fix for null parentComponent and not createInternalFrame() which throws this exception. Regards Prasanta On 5/15/2017 11:04 PM, Semyon Sadetsky wrote: I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
I don't see how this change fixes the issue. I still got Exception in thread "main" java.lang.RuntimeException: JOptionPane: parentComponent does not have a valid parent after applying it. --Semyon On 05/15/2017 03:14 AM, Prasanta Sadhukhan wrote: Updated webrev to use getRootFrame() via createDialog() to get the default Frame when a frame is not provided. http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.01/ Regards Prasanta On 5/12/2017 8:08 PM, Semyon Sadetsky wrote: Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Also the spec says to use the default frame but the fix creates new frame each time. On 05/12/2017 07:32 AM, Semyon Sadetsky wrote: The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
Re: [10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
The fix covers the parentComponent=null case. What about the second case when non-null component is provided but it has no frame? --Semyon On 05/12/2017 12:51 AM, Prasanta Sadhukhan wrote: Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta
[10] RFR JDK-7042497: javax.swing.JOptionPane.showInternalConfirmDialog throws RuntimeException
Hi All, Please review a spec violation issue whereby if in JOptionPane.showInternalConfirmDialog(Component parentComponent, Object message) "parentComponent" is null, we are getting RuntimeException "parentComponent does not have a valid parent" but as per spec, https://docs.oracle.com/javase/8/docs/api/index.html?javax/swing/JOptionPane.html it says "|parentComponent| - determines the |Frame| in which the dialog is displayed; if |null|, or if the |parentComponent| has no |Frame|, a default |Frame| is used" This violation exists for all overridden showInternalConfirmDialog methods and showInternalOptionDialog. The proposed fix creates a default JFrame and shows the confirm dialog in it, as stated in the spec. Bug: https://bugs.openjdk.java.net/browse/JDK-7042497 webrev: http://cr.openjdk.java.net/~psadhukhan/7042497/webrev.00/ Regards Prasanta