harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Okomin" <ilya.oko...@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:29:28 GMT
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
> > > >
>
> ---------------------------------------------------------------------
> 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
>
>


-- 
--
Ilya Okomin
Intel Middleware Products Division

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message