Return-Path: Delivered-To: apmail-incubator-harmony-dev-archive@www.apache.org Received: (qmail 99701 invoked from network); 15 Aug 2006 06:59:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 15 Aug 2006 06:59:07 -0000 Received: (qmail 26167 invoked by uid 500); 15 Aug 2006 06:59:04 -0000 Delivered-To: apmail-incubator-harmony-dev-archive@incubator.apache.org Received: (qmail 26127 invoked by uid 500); 15 Aug 2006 06:59:04 -0000 Mailing-List: contact harmony-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: harmony-dev@incubator.apache.org Delivered-To: mailing list harmony-dev@incubator.apache.org Received: (qmail 26116 invoked by uid 99); 15 Aug 2006 06:59:03 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Aug 2006 23:59:03 -0700 X-ASF-Spam-Status: No, hits=0.5 required=10.0 tests=DNS_FROM_RFC_ABUSE,HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of ilya.okomin@gmail.com designates 66.249.92.171 as permitted sender) Received: from [66.249.92.171] (HELO ug-out-1314.google.com) (66.249.92.171) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 14 Aug 2006 23:59:02 -0700 Received: by ug-out-1314.google.com with SMTP id u40so301222ugc for ; Mon, 14 Aug 2006 23:58:41 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=cDN/zEbinzC39sDoNrzkmJoXsYaZMQAZA9lYIqZ5SvHQCyM1Li8zyVNYBDuufQxNp1S9uLwDDa42trxfVA2TYOxQXdlhbwxIAhsIlYQEHL+yl7lHLKF5Cg4qZHyw6YafTHLcMEiZ67ehLAV/h/bnkT6myV4xyDhH3M+UGwYu4fk= Received: by 10.67.100.17 with SMTP id c17mr9102212ugm; Mon, 14 Aug 2006 23:58:41 -0700 (PDT) Received: by 10.66.250.7 with HTTP; Mon, 14 Aug 2006 23:58:40 -0700 (PDT) Message-ID: Date: Tue, 15 Aug 2006 10:58:40 +0400 From: "Ilya Okomin" To: harmony-dev@incubator.apache.org Subject: Re: [jira] Created: (HARMONY-1113) [classlib][beans]Harmony does not throw IllegalArgumentException for java.beans.PropertyEditorSupport.setAsText() while RI does. In-Reply-To: <2c9597b90608140650t1a492223p97e5f5176e67969f@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_157930_12877043.1155625120851" References: <24538186.1155117134941.JavaMail.jira@brutus> <906dd82e0608140316n4158daf8jf517318462d90fa5@mail.gmail.com> <2c9597b90608140551x3007d522r79147e07dcebac@mail.gmail.com> <2c9597b90608140650t1a492223p97e5f5176e67969f@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_Part_157930_12877043.1155625120851 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Alexei, Thanks for encouraging me! It's a great pleasure for me to take part in Harmony! :) Regards, Ilya. On 8/14/06, Alexei Zakharov wrote: > > 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 : > > On 8/14/06, Alexei Zakharov 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 : > > > > 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 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) : > > > > > > [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 > > -- -- Ilya Okomin Intel Middleware Products Division ------=_Part_157930_12877043.1155625120851--