You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vasily Zakharov (JIRA)" <ji...@apache.org> on 2007/01/17 23:46:30 UTC

[jira] Commented: (HARMONY-2605) [classlib][swing][plaf] javax.swing.plaf.basic.BasicCheckBoxUI.getMaximumSize(...) throws unexpected ClassCastException

    [ https://issues.apache.org/jira/browse/HARMONY-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12465590 ] 

Vasily Zakharov commented on HARMONY-2605:
------------------------------------------

If JScrollBar() in the test is replaced with JLabel(), the test throws the same ClassCastException on RI.

So it seems RI implementation follows the same general logic Harmony does, but makes some additional checks before making a cast, and in some cases omits the cast. Moreover, in these cases (for example, for JScrollBar) RI returns null, which means (see specification): "If null is returned, the preferred size will be calculated by the component's layout manager instead".

So, in some cases both RI and Harmony try to calculate size themselves, and both throw ClassCastException, and in some cases Harmony tries to calculate the size itself, while RI delegates this task to component's layout manager.

This is sure a compatibility issue, and probably both behaviors are correct. I'm not sure if we should fix this issue or close it as a non-bug difference.
Moreover, I have no idea on how to fix it, as the criteria RI uses to determine whether it would calculate size itself or delegate to layout manager, are unclear.

HARMONY-2663 (1) is a similar issue.


> [classlib][swing][plaf] javax.swing.plaf.basic.BasicCheckBoxUI.getMaximumSize(...) throws unexpected ClassCastException
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2605
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2605
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Anton Luht
>            Priority: Minor
>
> javax.swing.plaf.basic.BasicCheckBoxUI.getMaximumSize(...) throws unexpected ClassCastException while RI doesn't
> Code to reproduce:
> import javax.swing.*;
> import javax.swing.plaf.basic.*;
> public class Test {
>    public static void main(String[] argv) {
>       new BasicCheckBoxUI().getMaximumSize(new JScrollBar());
>    }
> }
> Output in RI: 
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)
> <none>
> Output in Harmony:
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundatio
> n or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r485537, (Dec 11 2006), Windows/ia32/msvc 1310, debug build
> http://incubator.apache.org/harmony
> Uncaught exception in main:
> java.lang.ClassCastException
>         at javax.swing.plaf.basic.BasicRadioButtonUI.getPreferredSize(BasicRadio
> ButtonUI.java)
>         at javax.swing.plaf.ComponentUI.getMaximumSize(ComponentUI.java)
>         at Test.main(Test.java:6)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira