harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Zakharov" <alexei.zakha...@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 13:50:43 GMT
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. :)

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


Mime
View raw message