harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Loenko" <mloe...@gmail.com>
Subject Re: [jira] Created: (HARMONY-1113) [classlib][beans]Harmony does not throw IllegalArgumentException for java.beans.PropertyEditorSupport.setAsText() while RI does.
Date Mon, 14 Aug 2006 14:48:35 GMT
2006/8/14, Alexei Zakharov <alexei.zakharov@gmail.com>:
> Ilya,
>
> > Thus test_setAsTextNull is redundant but
> > other two test cases have to be added.
>
> This is exactly what I mean.
> BTW, If you have more patches (or free time) for java.beans you are
> highly welcome. I have already tired from working on this package
> alone. :)

You are not alone :)

BTW, I've managed to fix most of the failures in
org.apache.harmony.beans.tests.java.beans.PropertyEditorSupportTest
they were caused by a bug in no-arg constructor of
PropertyEditorSupport
I'll commit the fix tomorrow. But there are two remaining failures related to
Proxy. That area is completely new for me and I guess it's caused
by incorrect process of Object's methods including equals().

Can you guys take a look?

Thanks,
Mikhail


>
> Regards,
>
> 2006/8/14, Ilya Okomin <ilya.okomin@gmail.com>:
> > On 8/14/06, Alexei Zakharov <alexei.zakharov@gmail.com> wrote:
> > >
> > > Hi Ilya,
> > >
> > > FYI there is the existing class
> > > org.apache.harmony.beans.tests.java.beans.PropertyEditorSupportTest
> > > that contains all tests for PropertyEditorSupport. IMHO it would be
> > > better if you embed your tests into this class. BTW, you may also take
> > > a look at existent
> > > testSetAsText
> > > method since it seems it does the same job.
> >
> >
> > Thanks for suggested solution, I've already done it before read your message
> > :-)
> >
> > Hmmm..you right, existing one test testSetAsText is the same as
> > test_setAsTextNull.
> > Actually existing testSetAsText test doesn't cover the problem, according to
> > the documentation setAsText method behavior depends on the object state
> > (rather newValue field type), thus we have to take into account the type of
> > the newValue before setAsText call, if it is instanse of String or not. I've
> > created tests for these cases. Thus test_setAsTextNull is redundant but
> > other two test cases have to be added.
> >
> > Regards,
> > > Alexei
> > >
> > > P.S. thanks for the patch :)
> >
> >
> > Always welcome!
> >
> >  Thanks,
> > Ilya.
> >
> > 2006/8/14, Ilya Okomin <ilya.okomin@gmail.com>:
> > > > Hello, Mikhail!
> > > >
> > > > Provided test case can work from classpath of course. It's my mistake,
> > > > thanks for noticed it. I'll prepare updated test case' patch with
> > > correct
> > > > packaging and taking into account exceptions handling recommendation
> > > ASAP.
> > > >
> > > > Thanks,
> > > > Ilya.
> > > >
> > > >
> > > > On 8/14/06, Mikhail Loenko <mloenko@gmail.com> wrote:
> > > > >
> > > > > Hi Ilya
> > > > >
> > > > > Is it significant that the test code is in bootclasspath, or it can
> > > > > work from classpath?
> > > > >
> > > > > There were some discussions around the tests that might be
> > > interesting,
> > > > > please look at [1].
> > > > >
> > > > > Please look at the section
> > > > > Utilize JUnit's assert/fail methods and exception handling for clean
> > > test
> > > > > code
> > > > >
> > > > > This also might be useful [2]
> > > > >
> > > > > Thanks,
> > > > > Mikhail
> > > > >
> > > > > [1]
> > > > >
> > > http://mail-archives.apache.org/mod_mbox/incubator-harmony-dev/200603.mbox/%3c442B7857.7040002@gmail.com%3e
> > > > >
> > > > > [2]
> > > > >
> > > http://incubator.apache.org/harmony/subcomponents/classlibrary/agreements.html
> > > > >
> > > > >
> > > > > 2006/8/9, Ilya Okomin (JIRA) <jira@apache.org>:
> > > > > > [classlib][beans]Harmony does not throw IllegalArgumentException
for
> > > > > java.beans.PropertyEditorSupport.setAsText() while RI does.
> > > > > >
> > > > >
> > > --------------------------------------------------------------------------------------------------------------------------------
> > > > > >
> > > > > >                 Key: HARMONY-1113
> > > > > >                 URL:
> > > http://issues.apache.org/jira/browse/HARMONY-1113
> > > > > >             Project: Harmony
> > > > > >          Issue Type: Bug
> > > > > >          Components: Classlib
> > > > > >            Reporter: Ilya Okomin
> > > > > >            Priority: Minor
> > > > > >         Attachments: PropertyEditorSupport.patch,
> > > > > PropertyEditorSupportTest.patch
> > > > > >
> > > > > > Harmony does not throw IllegalArgumentException for
> > > > > java.beans.PropertyEditorSupport.setAsText(String) when parameter
is
> > > > > invalid
> > > > > > while RI throws IllegalArgumentException.
> > > > > > Java 1.5.0 spec says:"May raise java.lang.IllegalArgumentExceptionif
> > > > > either the String is badly formatted or if this kind of property
can't
> > > be
> > > > > expressed as text."
> > > > > > =============test.java==============
> > > > > > import java.beans.PropertyEditorSupport;
> > > > > >
> > > > > > public class test {
> > > > > >
> > > > > >    public static void main(String args[]) {
> > > > > >        PropertyEditorSupport undefPropertyEditorSupport = new
> > > > > > PropertyEditorSupport();
> > > > > >        try {
> > > > > >            System.err.print("value is null: ");
> > > > > >            undefPropertyEditorSupport.setAsText("string");
> > > > > >            System.err.println("failed: IllegalArgumentException
> > > > > expected, but
> > > > > > nothing was thrown!\n");
> > > > > >        } catch (IllegalArgumentException eE) {
> > > > > >            System.err.println("success!");
> > > > > >            eE.printStackTrace();
> > > > > >        }
> > > > > >
> > > > > >        PropertyEditorSupport defPropertyEditorSupport = new
> > > > > > PropertyEditorSupport();
> > > > > >        try {
> > > > > >            defPropertyEditorSupport.setValue(new Object());
> > > > > >
> > > > > >            System.err.print("value is Object: ");
> > > > > >            defPropertyEditorSupport.setAsText("string");
> > > > > >            System.err.println("failed: IllegalArgumentException
> > > > > expected, but
> > > > > > nothing was thrown!\n");
> > > > > >        } catch (IllegalArgumentException eE) {
> > > > > >            System.err.println("success!");
> > > > > >            eE.printStackTrace();
> > > > > >        }
> > > > > >
> > > > > >        defPropertyEditorSupport = new PropertyEditorSupport();
> > > > > >        try {
> > > > > >            defPropertyEditorSupport.setValue(new String());
> > > > > >            System.err.print("value is String: ");
> > > > > >            defPropertyEditorSupport.setAsText("string");
> > > > > >            System.err.println("success!");
> > > > > >        } catch (IllegalArgumentException eE) {
> > > > > >            System.err.println("failed!");
> > > > > >            eE.printStackTrace();
> > > > > >        }
> > > > > >
> > > > > >    }
> > > > > >
> > > > > > }
> > > > > > ===========================================
> > > > > > Output:
> > > > > >
> > > > > > Harmony:
> > > > > > java version "1.5.0"
> > > > > > pre-alpha : not complete or compatible
> > > > > > svn = r424571, (Jul 22 2006), Windows/ia32/msvc 1310, release
build
> > > > > > http://incubator.apache.org/harmony
> > > > > >
> > > > > > value is null: failed: IllegalArgumentException expected, but
> > > nothing
> > > > > was
> > > > > > thrown!
> > > > > >
> > > > > > value is Object: failed: IllegalArgumentException expected,
but
> > > nothing
> > > > > was
> > > > > > thrown!
> > > > > >
> > > > > > value is String: success!
> > > > > >
> > > > > > RI:
> > > > > > java version "1.5.0"
> > > > > > Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
> > > > > > BEA WebLogic JRockit(R) (build dra-38972-20041208-2001-win-ia32,
> > > > > R25.0.0-75,
> > > > > > GC: System optimized over throughput (initial strategy
> > > singleparpar))
> > > > > >
> > > > > > value is null: success!
> > > > > > java.lang.IllegalArgumentException: string
> > > > > >        at
> > > > > > java.beans.PropertyEditorSupport.setAsText(
> > > PropertyEditorSupport.java
> > > > > :166)
> > > > > >        at bugzilla.Test9433.main(Test9433.java:11)
> > > > > > value is Object: success!
> > > > > > java.lang.IllegalArgumentException: string
> > > > > >        at
> > > > > > java.beans.PropertyEditorSupport.setAsText(
> > > PropertyEditorSupport.java
> > > > > :166)
> > > > > >        at bugzilla.Test9433.main(Test9433.java:23)
> > > > > > value is String: success!
> > > > > >
> > > > > > For this reason, suggested solution is to check in setAsText()
> > > method if
> > > > > the
> > > > > > value is instanse of String, in case of true - setValue, otherwise
-
> > > > > throw an
> > > > > > IAE following the spec, "...this kind of property can't be expressed
> > > as
> > > > > text".
> > > > > >
> > > > > > Suggested patch and regression test can be found in the attach
> > > > > >
>
>
>
> --
> Alexei Zakharov,
> Intel Middleware Product Division
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message