RFR: JDK-8179531: JShell: fails to provide bytecode for dynamically created lambdas
Robert Field
robert.field at oracle.com
Fri May 5 02:24:48 UTC 2017
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.
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