You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Dmitry Irlyanov (JIRA)" <ji...@apache.org> on 2007/08/21 10:47:31 UTC

[jira] Created: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

[classlib][swing]Setting null as margin to button don't cause to use the default margin
---------------------------------------------------------------------------------------

                 Key: HARMONY-4655
                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
             Project: Harmony
          Issue Type: Bug
          Components: Classlib
            Reporter: Dmitry Irlyanov
            Priority: Minor


According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule

import java.awt.Insets;

import javax.swing.JRadioButton;

public class Test {

    public static void main(String[] args) {
        
        JRadioButton rb = new JRadioButton();
        System.err.println(rb.getMargin());
        rb.setMargin(null);
        System.err.println(rb.getMargin());
        rb.setMargin(new Insets(10,10,10,10));
        System.err.println(rb.getMargin());
        rb.setMargin(null);
        System.err.println(rb.getMargin());
    }

}


Output(RI):
javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
java.awt.Insets[top=10,left=10,bottom=10,right=10]
javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]


Output(Harmony):
javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
null
java.awt.Insets[left=10,top=10,right=10,bottom=10]
null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Dmitry Irlyanov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12523619 ] 

Dmitry Irlyanov commented on HARMONY-4655:
------------------------------------------

Alexei,
These tests are incompatible with RI:

try this:

import java.awt.Insets;

import javax.swing.JMenuItem;
import javax.swing.UIManager;
import javax.swing.plaf.InsetsUIResource;
import javax.swing.plaf.basic.BasicMenuItemUI;

public class Test {

        public static void main(String argv[]) {
            JMenuItem item = new JMenuItem();
            BasicMenuItemUIT menuItemUI;
            String prefix ="MenuItem.";
            menuItemUI = new BasicMenuItemUIT();
            item.setUI(menuItemUI);
            Insets margin = new InsetsUIResource(1, 2, 3, 4);
            UIManager.getDefaults().put(prefix + "margin", margin);
            menuItemUI.installDefaults();
            menuItemUI.uninstallDefaults();
            System.err.println(item.getMargin());
       }
}

class BasicMenuItemUIT extends BasicMenuItemUI{
    
    @Override
    public void installDefaults(){
        super.installDefaults();
    }
    
    @Override
    public void uninstallDefaults(){
        super.uninstallDefaults();
    }
}

The result is:

Harmony:
null

RI:
javax.swing.plaf.InsetsUIResource[top=1,left=2,bottom=3,right=4]


But IMHO this is a bug (a little one, but anyway)

I ask your commiter's weighty opinion: should I either make the patch to UI's and be architectural correct or patch to tests and be compatible 

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Dmitry Irlyanov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Irlyanov updated HARMONY-4655:
-------------------------------------

    Patch Info: [Patch Available]

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexei Zakharov updated HARMONY-4655:
-------------------------------------


Dmitry, after I've applied your patch three Swing tests starts to fail:

javax.swing.plaf.basic.BasicCheckBoxMenuItemUITest.testInstallUninstallDefaults()
javax.swing.plaf.basic.BasicMenuItemUITest.testInstallUninstallDefaults()
javax.swing.plaf.basic.BasicMenuUITest.testInstallUninstallDefaults()

Could you please take a look?

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Dmitry Irlyanov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Irlyanov updated HARMONY-4655:
-------------------------------------

    Attachment: H4655-AbstractButton.patch

Proposed fix added

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexei Zakharov reassigned HARMONY-4655:
----------------------------------------

    Assignee: Alexei Zakharov

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexei Zakharov resolved HARMONY-4655.
--------------------------------------

    Resolution: Fixed

Thanks Dmitry. The patch was applied at the revision 573239. Please verify.

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch, H4655-BasicMenuUITest-BasicMenuItemUITest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Alexei Zakharov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12525378 ] 

Alexei Zakharov commented on HARMONY-4655:
------------------------------------------

Dmitry, since from my point of view this issue is not very important and this specific case isn't directly mentioned in the spec let's just be compatible and comment out the tests.

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Dmitry Irlyanov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Irlyanov updated HARMONY-4655:
-------------------------------------

    Attachment: H4655-AbstractButtonTest.patch

Regression test patch added

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Priority: Minor
>         Attachments: H4655-AbstractButtonTest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4655) [classlib][swing]Setting null as margin to button don't cause to use the default margin

Posted by "Dmitry Irlyanov (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dmitry Irlyanov updated HARMONY-4655:
-------------------------------------

    Attachment: H4655-BasicMenuUITest-BasicMenuItemUITest.patch

Alexey,
I completely agree with you. The patch attached

> [classlib][swing]Setting null as margin to button don't cause to use the default margin
> ---------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4655
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4655
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Dmitry Irlyanov
>            Assignee: Alexei Zakharov
>            Priority: Minor
>         Attachments: H4655-AbstractButton.patch, H4655-AbstractButtonTest.patch, H4655-BasicMenuUITest-BasicMenuItemUITest.patch
>
>
> According to spec, AbstractButton.setMargin(null) causes the button to use the default margin (2,2,2,2) but Harmony doesn't obey this rule
> import java.awt.Insets;
> import javax.swing.JRadioButton;
> public class Test {
>     public static void main(String[] args) {
>         
>         JRadioButton rb = new JRadioButton();
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>         rb.setMargin(new Insets(10,10,10,10));
>         System.err.println(rb.getMargin());
>         rb.setMargin(null);
>         System.err.println(rb.getMargin());
>     }
> }
> Output(RI):
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> java.awt.Insets[top=10,left=10,bottom=10,right=10]
> javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2]
> Output(Harmony):
> javax.swing.plaf.InsetsUIResource[left=2,top=2,right=2,bottom=2]
> null
> java.awt.Insets[left=10,top=10,right=10,bottom=10]
> null

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.