RFR: JDK-8179531: JShell: fails to provide bytecode for dynamically created lambdas
Jan Lahoda
jan.lahoda at oracle.com
Fri May 5 14:01:27 UTC 2017
On 5.5.2017 04:24, Robert Field wrote:
> One concern, in DefaultLoaderDelegate.RemoteClassLoader.findResources,
> if it is possible for the result found by doFindResource to equal one of
> those returned super.findResources then there would be a duplicate in
> the Enumeration.
I don't think super.findResources can return the resource we are
returning from doFindResource.
Thanks,
Jan
>
> Otherwise, looks good.
>
> Robert
>
> On 05/04/17 14:07, Jan Lahoda wrote:
>> Thanks for the comments. An updated webrev:
>> http://cr.openjdk.java.net/~jlahoda/8179531/webrev.01/
>>
>> On 4.5.2017 19:32, Paul Sandoz wrote:
>>>
>>>> On 4 May 2017, at 06:44, Jan Lahoda <jan.lahoda at oracle.com> wrote:
>>>>
>>>> Hi,
>>>>
>>>> This makes ClassLoader.getResource(s) return the actual bytecode
>>>> that is being run.
>>>>
>>>> Bug:
>>>> https://bugs.openjdk.java.net/browse/JDK-8179531
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~jlahoda/8179531/webrev.00/
>>>>
>>>
>>> Looks good. Minor comments.
>>>
>>>
>>> DefaultLoaderDelegate
>>> —
>>>
>>> 68 private final Map<String, ClassFile> classFiles = new
>>> TreeMap<>();
>>>
>>> HashMap?
>>
>> Sorry, done.
>>
>>>
>>>
>>> 187 } catch (MalformedURLException ex) {
>>> 188 }
>>>
>>>
>>> Rather than swallowing the exception you might wanna throw an
>>> InternalError. I don’t think there are any valid resource names that
>>> used in a raw manner would result in the creation of a malformed URL,
>>> but just in case… I am a little paranoid about this, so would create
>>> a URI instance from the component parts, and then pass the result of
>>> toString to the URL constructor, thereby ensuring correct escaping of
>>> the resource name as the URL path. Up to you.
>>
>> Done.
>>
>>>
>>>
>>> GetResourceTest
>>> —
>>>
>>> 118 Thread.sleep(1000); //ensure time change:
>>>
>>> The test might intermittently fail. Recommend you wrap in try/catch
>>> (InterruptedException e ) {}
>>
>> Done. (Will wait for a second even in case of the exception, to
>> prevent following failure.)
>>
>>>
>>>
>>> 136 public void checkFieldAccess() throws InterruptedException {
>>>
>>> 152 public void checkGetResources() throws InterruptedException {
>>>
>>> I don’t see how those methods throw InterruptedException.
>>
>> Done.
>>
>> Jan
>>
>>>
>>> Paul.
>>>
>
More information about the kulla-dev
mailing list