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/[EMAIL
 PROTECTED]

[2] 
http://incubator.apache.org/harmony/subcomponents/classlibrary/agreements.html


2006/8/9, Ilya Okomin (JIRA) <[EMAIL PROTECTED]>:
[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.IllegalArgumentException if 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


--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to