I've updated the test, switched to an in-memory class loader, and added
a test case.  Please review.

On 10/01/13 16:27, Eric McCorkle wrote:
> On 10/01/13 02:41, Joe Darcy wrote:
> 
> (Suggested changes have been applied)
> 
>>
>> I think the test is acceptable as-is, but an RFE could be filed for some
>> refactoring (having each bad class be represented as a diff from a base
>> byte[], avoiding sending the bytes through the file system).
>>
> 
> Better yet: I've filed an RFE for a framework for generating bad class
> files.
> 
> Webrev has been updated, please review:
> http://cr.openjdk.java.net/~emc/8020981/
> 
>> Cheers,
>>
>> -Joe
>>
>> On 9/24/2013 12:15 PM, Eric McCorkle wrote:
>>> Webrev updated to address these issues.
>>>
>>> On 09/24/13 07:51, Joel Borggren-Franck wrote:
>>>
>>>> 364             try {
>>>> 365                 tmp = getParameters0();
>>>> 366             } catch(IllegalArgumentException e) {
>>>> 367                 // Rethrow ClassFormatErrors
>>>> 368                 throw new MalformedParametersException("Invalid
>>>> constant pool index");
>>>> 369             }
>>>>
>>>> What is causing the IAE? Have you considered having
>>>> MalformedParametersExcepton taking a Throwable cause and having the IAE
>>>> as cause?
>>>>
>>> The IAE comes from hotspot itself.  There is a standard constant pool
>>> index verifying function that throws IAE if given a bad index.
>>>
>>>> On 2013-09-19, Eric McCorkle wrote:
>>>>> The webrev has been updated with Joe's comments addressed.
>>>>>
>>>>> On 09/19/13 00:11, David Holmes wrote:
>>>>>> On 19/09/2013 9:59 AM, Eric McCorkle wrote:
>>>>>>> This still needs to be reviewed.
>>>>>> You seem to have ignored Joe's comments regarding the change to
>>>>>> Modifier
>>>>>> being incorrect.
>>>>>>
>>>>>> David
>>>>>>
>>>>>>> On 09/16/13 14:50, Eric McCorkle wrote:
>>>>>>>> I pulled the class files into byte array constants, as a temporary
>>>>>>>> measure until a viable method for testing bad class files is
>>>>>>>> developed.
>>>>>>>>
>>>>>>>> The webrev has been refreshed.  The class files will be taken out
>>>>>>>> before
>>>>>>>> I push.
>>>>>>>>
>>>>>>>> http://cr.openjdk.java.net/~emc/8020981/
>>>>>>>>
>>>>>>>> On 09/13/13 20:48, Joe Darcy wrote:
>>>>>>>>> To avoid storing binaries in Hg, you could try something like:
>>>>>>>>>
>>>>>>>>> * uuencode / ascii armor the class file
>>>>>>>>> * convert to byte array in the test
>>>>>>>>> * load classes from byte array
>>>>>>>>>
>>>>>>>>> -Joe
>>>>>>>>>
>>>>>>>>> On 09/13/2013 11:54 AM, Eric McCorkle wrote:
>>>>>>>>>> I did it by hand with emacs.
>>>>>>>>>>
>>>>>>>>>> I would really rather tackle the bad class files for testing issue
>>>>>>>>>> once
>>>>>>>>>> and for all, the Right Way (tm).  But with ZBB looming, now is
>>>>>>>>>> not the
>>>>>>>>>> time to do it.
>>>>>>>>>>
>>>>>>>>>> Hence, I have created this task
>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8024674
>>>>>>>>>>
>>>>>>>>>> I also just created this one:
>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8024812
>>>>>>>>>>
>>>>>>>>>> On 09/13/13 13:54, Peter Levart wrote:
>>>>>>>>>>> Hi Eric,
>>>>>>>>>>>
>>>>>>>>>>> How did you create those class files? By hand using a HEX
>>>>>>>>>>> editor? Did
>>>>>>>>>>> you create a program that patched the original class file? If the
>>>>>>>>>>> later
>>>>>>>>>>> is the case, you could pack that patching logic inside a custom
>>>>>>>>>>> ClassLoader...
>>>>>>>>>>>
>>>>>>>>>>> To hacky? Dependent on future changes of javac? At least the "bad
>>>>>>>>>>> name"
>>>>>>>>>>> patching could be performed trivially and reliably, I think:
>>>>>>>>>>> search and
>>>>>>>>>>> replace with same-length string.
>>>>>>>>>>>
>>>>>>>>>>> Regards, Peter
>>>>>>>>>>>
>>>>>>>>>>> On 09/13/2013 07:35 PM, Eric McCorkle wrote:
>>>>>>>>>>>> Ugh.  Byte arrays of class file data is really a horrible
>>>>>>>>>>>> solution.
>>>>>>>>>>>>
>>>>>>>>>>>> I have already filed a task for test development post ZBB to
>>>>>>>>>>>> develop a
>>>>>>>>>>>> solution for generating bad class files.  I'd prefer to file a
>>>>>>>>>>>> follow-up
>>>>>>>>>>>> to this to add the bad class file tests when that's done.
>>>>>>>>>>>>
>>>>>>>>>>>> On 09/13/13 10:55, Joel Borggrén-Franck wrote:
>>>>>>>>>>>>> I think the right thing to do is to include the original
>>>>>>>>>>>>> compiling
>>>>>>>>>>>>> source in a comment, together with a comment on how you modify
>>>>>>>>>>>>> them, and then the result as a byte array.
>>>>>>>>>>>>>
>>>>>>>>>>>>> IIRC I have seen test of that kind before somewhere in our
>>>>>>>>>>>>> repo.
>>>>>>>>>>>>>
>>>>>>>>>>>>> cheers
>>>>>>>>>>>>> /Joel
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Sep 13, 2013, at 4:49 PM, Eric McCorkle
>>>>>>>>>>>>> <eric.mccor...@oracle.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> There is no simple means of generating bad class files for
>>>>>>>>>>>>>> testing.
>>>>>>>>>>>>>> This is a huge deficiency in our testing abilities.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> If these class files shouldn't go in, then I'm left with no
>>>>>>>>>>>>>> choice
>>>>>>>>>>>>>> but
>>>>>>>>>>>>>> to check in no test for this patch.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> However, anyone can run the test I've provided with the class
>>>>>>>>>>>>>> files and
>>>>>>>>>>>>>> see that it works.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 09/13/13 09:55, Joel Borggrén-Franck wrote:
>>>>>>>>>>>>>>> Hi Eric,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> IIRC we don't check in classfiles into the repo.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'm not sure how we handle testing of broken class-files
>>>>>>>>>>>>>>> in jdk,
>>>>>>>>>>>>>>> but ASM might be an option, or storing the class file as an
>>>>>>>>>>>>>>> embedded byte array in the test.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> cheers
>>>>>>>>>>>>>>> /Joel
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Sep 13, 2013, at 3:40 PM, Eric McCorkle
>>>>>>>>>>>>>>> <eric.mccor...@oracle.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> A new webrev is posted (and crucible updated), which
>>>>>>>>>>>>>>>> actually
>>>>>>>>>>>>>>>> validates
>>>>>>>>>>>>>>>> parameter names correctly.  Apologies for the last one.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On 09/12/13 16:02, Eric McCorkle wrote:
>>>>>>>>>>>>>>>>> Hello,
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Please review this patch, which implements correct
>>>>>>>>>>>>>>>>> behavior for
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>> Parameter Reflection API in the case of malformed class
>>>>>>>>>>>>>>>>> files.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The bug report is here:
>>>>>>>>>>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8020981
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The webrev is here:
>>>>>>>>>>>>>>>>> http://cr.openjdk.java.net/~emc/8020981/
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> This review is also on crucible.  The ID is CR-JDK8TL-182.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>> Eric
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> <eric_mccorkle.vcf>
>>

Reply via email to