[9] RFR (S) 6191224: (reflect) Misleading detail string in IllegalArgumentException thrown by Array.get<Type>

Chris Plummer chris.plummer at oracle.com
Tue Oct 14 02:15:33 UTC 2014


On 10/13/14 6:29 PM, David Holmes wrote:
> Hi Chris,
>
> Two minor things:
>
>  27  * @summary D(reflect) Misleading detail string
>
> Stray D?
Yeah. Something went wrong when I pasted in the bug synopsis. I'll 
remove it.
>
> When reporting an incorrect message you should include the actual 
> message that was incorrect eg
>
> failTest("Test #3 FAILS - incorrect message: " + e.getMessage());
Ok.
>
> No need for re-review.
thanks,

Chris
>
> Thanks,
> David
>
> On 14/10/2014 8:26 AM, Chris Plummer wrote:
>> Hi David and Christian,
>>
>> New Webrev: http://cr.openjdk.java.net/~cjplummer/6191224/webrev.03/
>>
>> changes:
>> -Renamed to reflect/ArrayGetIntException.java
>> -othervm argument removed
>> -throws Error on failure rather than exit(1)
>> -Indentation set at 4 instead of 2
>> -Open brace at end of line instead of at start of new line.
>>
>> When the test fails, it now outputs:
>>
>> STDOUT:
>> 2147483647
>> Test #1 PASSES
>> java.lang.IllegalArgumentException: Argument is not an array
>> Test #2 FAILS - incorrect message
>> STDERR:
>> java.lang.Error: Test #2 FAILS - incorrect message
>>      at ArrayGetIntException.failTest(ArrayGetIntException.java:83)
>>      at ArrayGetIntException.main(ArrayGetIntException.java:56)
>>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>      at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
>>
>>
>>      at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
>>
>>
>>      at java.lang.reflect.Method.invoke(Method.java:483)
>>      at
>> com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
>>      at java.lang.Thread.run(Thread.java:745)
>>
>> JavaTest Message: Test threw exception: java.lang.Error: Test #2 FAILS -
>> incorrect message
>> JavaTest Message: shutting down test
>>
>> STATUS:Failed.`main' threw exception: java.lang.Error: Test #2 FAILS -
>> incorrect message
>>
>> thanks,
>>
>> Chris
>>
>> On 10/8/14 10:53 PM, Chris Plummer wrote:
>>> Hi Christian,
>>>
>>> [If this went out twice, ignore the other copy.]
>>>
>>> On 10/8/14 7:40 PM, Christian Tornqvist wrote:
>>>> Hi Chris,
>>>>
>>>> First of all, thanks for writing a regression test :)
>>>>
>>>> The naming of the test should follow the Hotspot test naming 
>>>> guidelines
>>>> (https://wiki.openjdk.java.net/display/HotSpot/Naming+HotSpot+JTReg+Tests). 
>>>>
>>>>
>>> I'll wait for your response to David.
>>>>
>>>>> 28  * @run main/othervm Test6191224
>>>> Is there a reason you need to run it with /othervm?
>>> Copy and paste from another test case. Probably no need for it.
>>>> When the test fails you should throw an exception instead of calling
>>>> System.exit(), jtreg doesn't like System.exit
>>> Ok. This was also copy and paste from the test case I used as an
>>> example. It seems Error is common for test failures, so I'll use that.
>>>> (http://openjdk.java.net/jtreg/faq.html#question2.6)
>>> "% bringover -p <workspace> test". A bit dated perhaps. ;)
>>>
>>> I'll get a new webrev out once I've cleaned it up.
>>>
>>> thanks,
>>>
>>> Chris
>>>> Thanks,
>>>> Christian
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: hotspot-runtime-dev
>>>> [mailto:hotspot-runtime-dev-bounces at openjdk.java.net] On Behalf Of 
>>>> Chris
>>>> Plummer
>>>> Sent: Wednesday, October 8, 2014 8:08 PM
>>>> To:hotspot-runtime-dev at openjdk.java.net
>>>> Subject: [9] RFR (S) 6191224: (reflect) Misleading detail string in
>>>> IllegalArgumentException thrown by Array.get<Type>
>>>>
>>>> Hi,
>>>>
>>>> Please review this cleanup of a misleading exception message.
>>>>
>>>> Summary: The test case shows that an exception is thrown with the
>>>> message
>>>> "Argument is not an array", when in fact the argument is an array, 
>>>> but a
>>>> primitive type array is actually what was expected. Fixed by
>>>> differentiating
>>>> between failing because an array was expected and failing because a
>>>> primitive type array was expected.
>>>>
>>>> Webrev:http://cr.openjdk.java.net/~cjplummer/6191224/webrev.00/
>>>> Bug:https://bugs.openjdk.java.net/browse/JDK-6191224
>>>>
>>>> Tested with:
>>>>       jprt "-testset hotspot"
>>>>       JTReg with hotspot tests and some jdk tests
>>>>       JCK vm, lang, api
>>>>       vm.quick.testlist
>>>>       runthese
>>>>
>>>> Output for the regression test when passing is:
>>>>
>>>> 2147483647
>>>> Test #1 PASSES
>>>> java.lang.IllegalArgumentException: Argument is not a primitive type
>>>> array
>>>> Test #2 PASSES
>>>> java.lang.IllegalArgumentException: Argument is not an array Test #3
>>>> PASSES
>>>>
>>>> And when it fails:
>>>>
>>>> 2147483647
>>>> Test #1 PASSES
>>>> java.lang.IllegalArgumentException: Argument is not an array Test #2
>>>> FAILS -
>>>> incorrect message
>>>>
>>>> thanks,
>>>>
>>>> Chris
>>>>
>>>>
>>>
>>



More information about the hotspot-runtime-dev mailing list