Thanks for the response; basically we don't have an understanding about the 
cause of the exception in the modular world then. I wonder if we could bother 
Jigsaw folks with this. They do seem to be quite busy on the mailing lists 
these days :-)

+1 on the change - it's not harmful by any means and makes the code more 
robust. As you said, dereferencing the class loader is just an optimization.

Attila.

> On Dec 9, 2015, at 10:50 AM, Sundararajan Athijegannathan 
> <sundararajan.athijegannat...@oracle.com> wrote:
> 
> Hi,
> 
> Inline comments below...
> 
> 
> On 12/9/2015 2:08 PM, Attila Szegedi wrote:
>> So… I presume the security exception only thrown when a SecurityManager is
>> present?
> 
> Yes. But note that we run all the tests under a security manager (except for 
> tests under "test/script/nosecurity" directory)
> 
>> This is actually somewhat weird, especially since VM anonymous
>> classes should return their host class' loader as their loader.
>> getClassLoader() doc says
>> 
>> If a security manager is present, and the caller's class loader is not null
> 
> Well, for unknown reason,  this fails in jake/nashorn - but not on 
> jdk9-dev/nashorn. I'm trying to come up with a standalone test to reproduce 
> it - but not
> successful so far.
>>> and the caller's class loader is not the same as or an ancestor of the
>>> class loader for the class whose class loader is requested, then this
>>> method calls the security manager's checkPermission method with a
>>> RuntimePermission("getClassLoader") permission
>> 
>> I'd think that for Context.class.classLoader it is true that it is either
>> null or the ancestor of the script's class loader, is that not so?
> 
> Nashorn's loader is extension loader. And it is ancestor of script loader. 
> because script loader uses thread context loader as parent - and thread 
> context loader's parent is extension loader in this case.
> 
> 
>> I'm just
>> trying to understand *why* can this SecurityException arise at all.
> 
> As I said, tests are run under security manager and tests do fail in 
> jake/nashorn without this change. As for the root cause, I/we need to 
> understand by coming up with an independent test case (yet).
> This workaround fix is for two reasons:
> 
> 1) Will make future jdk9-> jake merge would be clean (for this file/method)
> 2) When jake merges to jdk9 in future, we don't want failure in this part of 
> code to disrupt nashorn test run. Because this is just an optimization (to 
> get Context from loader instance). We should be able
> to get current Context from thread-local in any case. i.e., should not 
> fail/disrupt test run for this reason.
> 
> Thanks,
> -Sundar
> 
>> Attila.
>> 
>> 
>> On Wed, Dec 9, 2015 at 9:20 AM, Michael Haupt <michael.ha...@oracle.com>
>> wrote:
>> 
>>> Hi Sundar,
>>> 
>>> lower-case thumbs up.
>>> 
>>> One remark: I'm a bit concerned about the plethora of files involved with
>>> the dynalink samples. For each particular sample, there's a Java file, a
>>> sample JS file, and a linker JS file, where the linker compiles the Java
>>> file and assembles a JAR. The linkers all look pretty much the same. In my
>>> opinion, providing one script that takes care of compilation and JARring
>>> and is loaded from all actual samples would keep the samples more lean.
>>> 
>>> Best,
>>> 
>>> Michael
>>> 
>>>> Am 09.12.2015 um 08:56 schrieb Sundararajan Athijegannathan <
>>> sundararajan.athijegannat...@oracle.com>:
>>>> Please review http://cr.openjdk.java.net/~sundar/8144979/ for
>>> https://bugs.openjdk.java.net/browse/JDK-8144979
>>>> This fix is already in jake/nashorn. See also:
>>> https://bugs.openjdk.java.net/browse/JDK-8144568
>>>> In addition, I've moved all dynalink samples to
>>> $nashorn/samples/dynalink directory and renamed the README.
>>>> Thanks,
>>>> -Sundar
>>> --
>>> 
>>>  <http://www.oracle.com/>
>>> Dr. Michael Haupt | Principal Member of Technical Staff
>>> Phone: +49 331 200 7277 | Fax: +49 331 200 7561
>>> Oracle Java Platform Group | LangTools Team | Nashorn
>>> Oracle Deutschland B.V. & Co. KG, Schiffbauergasse 14 | 14467 Potsdam,
>>> Germany
>>>  <http://www.oracle.com/commitment>     Oracle is committed to developing
>>> practices and products that help protect the environment
>>> 
>>> 
> 

Reply via email to