Thanks, Joe.  I reverted Modifier, and removed the list (I thought I had
done that already).

I will push after a successful test run.

On 10/02/13 15:54, Joe Darcy wrote:
> Hi Eric,
> 
> Please revert the change to j.l.r.Modifer. The fix can be pushed with
> just that modification; however, I strongly recommend also removing the
> "here is everything that can go wrong" list from j.l.r.Executable. Core
> reflection generally doesn't delve into such details in the main-line
> API docs and calling the details out in the exception type should be
> sufficient.
> 
> Cheers,
> 
> -Joe
> 
> On 10/2/2013 11:55 AM, Eric McCorkle wrote:
>> 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