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, 21 Aug 2006 20:36:04 GMT
Hi Mikhail,

> BTW, there is a looking similar failure in the test
> o.a.h.beans.tests.java.beans.CustomizedPersistenceDelegateTest#testProxyPD
> :)

It doesn't seem to be a completely similar failure to me. IMO the
above test fails due the fact that we simply don't have persistence
delegates for proxies, nobody have implemented them till now. Well,
the similarity here is that we need to deal with the same mysterious
java.lang.reflect.Proxy class. :)
I'm going to occupy myself with the above issue on this weekend if
nobody objects.

Regards,

2006/8/16, Mikhail Loenko <mloenko@gmail.com>:
> It works, thanks for the patch!
>
> BTW, there is a looking similar failure in the test
>
> o.a.h.beans.tests.java.beans.CustomizedPersistenceDelegateTest#testProxyPD
>
> :)
>
> Thanks,
> Mikhail
>
> 2006/8/16, Mikhail Loenko <mloenko@gmail.com>:
> > Sure!
> >
> > 2006/8/16, Alexei Zakharov <alexei.zakharov@gmail.com>:
> > > Mikhail,
> > >
> > > > 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?
> > >
> > > I have created HARMONY-1207 that fixes the above problem. Could you
> > > please take a look at it?
> > >
> > > Thanks,
> > >
> > > 2006/8/14, Mikhail Loenko <mloenko@gmail.com>:
> > > > 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
> > > >
> > > >
> > >
> > >
> > > --
> > > 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
>
>


-- 
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