Re: MethodHandles.Lookup and modules

2015-12-11 Thread Alan Bateman


On 10/12/2015 19:20, stanislav lukyanov wrote:


This is connected to the second part of the question (2).
If access to readable modules were allowed only if MODULE bit is set,
transition from A to B would be safe, since only one transition could 
be made (actually, same as it is now, but not from unnamed module only).
BTW, 'requires public' chain could be traversed safely even with 
PUBLIC mode:
A.in(B).in(C).in(D) would have access to D's exported members and D's 
'requires public' - same as A.


The MODULE bit is for access to "module private" members, it has to be 
dropped when hopping to a lookup class in another module.


In the A.in(B).in(C).in(D) example then each hop will preserve or 
degrade access. The modules for A, B, C and D may read very different 
sets of modules. The lookup class and mode bits aren't enough to 
represent this intersection so this is why access degrades quickly (or 
immediately) to 0. We have of course looked at preserving a snapshot of 
the intersection but this complicates things greatly and would diverge 
from bytecode behavior.




Method handles API is really "conservative" in regard of access 
control and I believe it supposed to be nearly as safe
as plain method calls (since Lookup basically reproduces 
bytecode-level checks).
I think it shouldn't allow something just because reflection API is 
able to do the trick anyway.
After all, it doesn't go easy with method access checks despite we 
have Method.setAccessible
It might be a surprise but changing the readability graph at run-time 
via addReads changes the VM and bytecode behavior, it's not tied to core 
reflection. So yes, as things currently stand, then addReads will 
increase readability and therefore the types that can be accessed. Using 
addReads cannot be used to break encapsulation of course.




:

One more thing about javadoc.
publicLookup() spec says
- "As a matter of pure convention, the lookup class of this lookup 
object will be in an unnamed module."
It's not about pure convention anymore - it really matters now where 
publicLookup() resides.
You're right. This wording was mostly correct in early prototyping but 
isn't right now. It needs to be specified to be in an unnamed module, it 
can't be in a named module (at least not unless we get to the point 
where a named module can read all other modules).


-Alan


Re: preliminary RFR: 8049365 - Update JDI and JDWP for modules

2015-12-11 Thread Alan Bateman



On 10/12/2015 20:44, serguei.spit...@oracle.com wrote:

:



3. In the Module command set then we'll need to decide the reply to 
the Name command for the case that the module is an unnamed module. 
There is also an open issue for the runtime API too.


The empty string is returned in the implementation.
Would it be Ok to update the jdwp spec with this?
We haven't decided what Module::getName should return for unnamed 
modules yet, it currently returns null. So we'll have to come back to 
it. For now then maybe JDWP can just return the stringID as 0 and we'll 
come back to it.




:



In ReferenceTypeImpl then I assume isModuleCached is not needed.


Not sure, I understand this. Why?
It seems there is some confusion here.
This flag is similar to the flag isClassLoaderCached.


I should have been clearer, I was just making the point that the flag 
isn't really needed as module == null will tell you that it hasn't been 
retreived from the target VM.





Have you thought about SA yet? I can't recall if it is compiled with 
the boot JDK or will be compiled against the newly built jdk.jdi 
module. If the later then I assume that SA will need updates. If the 
former then I assume we will have issues with boot cycle builds.


I'll ask Dmitry as he covers the SA.
He had some plans on the Jigsaw update.

Okay, although I'm just asking about the SA JDI connectors here. We just 
need to make sure that they build and I can't recall if they are 
compiled against the JDI in the boot JDK or the jdk.jdi module. If the 
former then we would only see issues with boot cycle builds.


-Alan.


Re: preliminary RFR: 8049365 - Update JDI and JDWP for modules

2015-12-11 Thread serguei.spit...@oracle.com

On 12/11/15 00:40, Alan Bateman wrote:



On 10/12/2015 20:44, serguei.spit...@oracle.com wrote:

:



3. In the Module command set then we'll need to decide the reply to 
the Name command for the case that the module is an unnamed module. 
There is also an open issue for the runtime API too.


The empty string is returned in the implementation.
Would it be Ok to update the jdwp spec with this?
We haven't decided what Module::getName should return for unnamed 
modules yet, it currently returns null. So we'll have to come back to 
it. For now then maybe JDWP can just return the stringID as 0 and 
we'll come back to it.


In the jdwp.spec the 'stringObject' type is used instead of the 'stringID'.
For the name command I used the 'string' type for consistency as the the 
only
command where the 'stringObject' is returned is the 
VirtualMachine.CreateString.
I'm Ok to convert to using the 'stringObject' for Module.Name if you 
still prefer it.








:



In ReferenceTypeImpl then I assume isModuleCached is not needed.


Not sure, I understand this. Why?
It seems there is some confusion here.
This flag is similar to the flag isClassLoaderCached.


I should have been clearer, I was just making the point that the flag 
isn't really needed as module == null will tell you that it hasn't 
been retreived from the target VM.


I see now, thanks!
The isClassLoaderCached was needed because a classLoader can be null.
Fixed.






Have you thought about SA yet? I can't recall if it is compiled with 
the boot JDK or will be compiled against the newly built jdk.jdi 
module. If the later then I assume that SA will need updates. If the 
former then I assume we will have issues with boot cycle builds.


I'll ask Dmitry as he covers the SA.
He had some plans on the Jigsaw update.

Okay, although I'm just asking about the SA JDI connectors here. We 
just need to make sure that they build and I can't recall if they are 
compiled against the JDI in the boot JDK or the jdk.jdi module. If the 
former then we would only see issues with boot cycle builds.


I see now, thanks!
Will check what is needed for the SA JDI connectors and let you know.


Thanks,
Serguei



-Alan.




Re: MethodHandles.Lookup and modules

2015-12-11 Thread Alan Bateman

John,

Thanks for jumping in on this and the guidance. Comments inline.


On 10/12/2015 23:08, John Rose wrote:


This stuff makes my head hurt, but I'm fine with any semantics that 
preserves the following:


1. full power: MethodHandles.lookup() has the same privileges as 
(non-constructor) bytecode in the caller class

Preserved, no changes.



2. downward monotonic
2a. L.in(A) never has more privileges than L (for all L, A)
2b. L.in(A) never has more privileges than a full power lookup on A 
(for all L, A)
2c. as a corollary, a chain L.in(A).in(B).in(C)… has no more 
privileges than L or any lookups in A, B, C, …
Preserved with the exception of A, B and C in the same named module M 
and where the set modules that M reads increases (say where code in M 
reads additional modules).




3. graceful degradation:  L.in(A) loses only privileges broken by the 
distance between LC=L.lookupClass and A

3a. if A==LC no privileges are lost; the identical L can be the result
3b. if A and LC are nestmates, only protected privileges may be lost 
(dynamic emulation of JLS nestmate access)
3c. if A and LC are in the same package, only private privileges may 
be lost
3d. if A and LC are in the same module, only package privileges may be 
lost
Preserved but perhaps with the (initially surprising) consequence that 
all access is lost when m(LC) is a named module and m(A) is a different 
module. This arises because the two modules may read very different sets 
of modules, the intersection cannot be expressed via a lookup class + modes.




4. downward convergence (to publicLookup or empty privileges)
4a. if A is inaccessible to LC=L.lookupClass, L.in(A) has no 
privileges (less than publicLookup)
4b. if A is accessible to LC and L has non-empty privileges, L.in(A) 
is no less privileged than publicLookup
4c. for any L with non-empty privileges, there is a sequence of types 
A,B where L.in(A).in(B) is equivalent to publicLookup

Downward convergence to zero access/empty privileges.

No downward convergence to publicLookup because 
m(publicLookup.lookupClass) must read all modules, thus a superset of 
the modules that named modules will read. I should say of course that 
the publicLookup can only be used to create method handles to public 
members in packages that are exported unconditionally.  So nothing that 
code in a named module couldn't otherwise access when it increases 
readability.





5. publicLookup has a reasonable minimal set of globally acceptable 
privileges
5a. this set of privileges is singular, and does not depend on the 
lookupClass
5b. the only possible results of publicLookup.in(A) are no change, and 
falling to empty privileges
publicLookup is minimally trusted and so can only create method handles 
where the target type is public and exported (unconditionally).


For 5b then publicLookup.in(A) may result in no change or degrade but 
not to empty privileges in one hop. The "no change" case is where A is 
in an unnamed module (think class path). The "degrade" case is where A 
is a named module and so the resulting lookup can only be used to access 
the public types that are exported unconditionally by modules that m(A) 
reads.





Access can only be measured against the current state of the module graph,
which means that certain results can vary over time, in a consistent way
across the whole system.

Yes, consistent with bytecode and also the access checks in core reflection.



The above are my preferences; I can imaging tweaking some of those things
in order to make the API fit more gracefully into modules.  I rely on 
Alan & co.

to figure that out!
and we rely on you to ensure that what we do make sense. I hope this 
does not constitute a circular dependency :-)




:


(BTW, see https://bugs.openjdk.java.net/browse/JDK-8145070 )
The defining loader of publicLookup.lookupClass() is no longer null and 
looks like Nashorn trips up on the permission check in 
Class::getClassLoader.







I agree with this.  Lookups are primarily about emulating bytecode 
behavior (not reflection behavior), and providing a framework for safe 
and sane delegation.
Adding edges to the readability graph impacts all access checks 
consistently and I think in a safe way.





:

Does publicLookup.in(A) create a new set of privileges depending on A?

I think that is the current design; maybe it's best, but it's a little 
odd.

If there really is a uniquely minimal set of public privileges,
then that should be publicLookup, and PL.in(A) should not affect
that minimal set.  That's the intention of saying the LC of PL is
mere convention.
As publicLookup is no longer the minimal set of privileges then 
publicLookup.in(A) will impact reduce access for the case that m(A) is a 
named module. Stanislav makes a good point about the javadoc as a named 
module may not read all modules and so publicLookup needs to be in an 
unnamed module for now.





We can modify axiom #5 to say:  PL accesses a unique family of
privileges sets, in

Re: MethodHandles.Lookup and modules

2015-12-11 Thread John Rose
On Dec 11, 2015, at 6:02 AM, Alan Bateman  wrote:
> 
> John,
> 
> Thanks for jumping in on this and the guidance. Comments inline.

Nice, thanks.

> 
> 
> On 10/12/2015 23:08, John Rose wrote:
>> 
>> This stuff makes my head hurt, but I'm fine with any semantics that 
>> preserves the following:
>> 
>> 1. full power: MethodHandles.lookup() has the same privileges as 
>> (non-constructor) bytecode in the caller class
> Preserved, no changes.
> 
>> 
>> 2. downward monotonic
>> 2a. L.in(A) never has more privileges than L (for all L, A)
>> 2b. L.in(A) never has more privileges than a full power lookup on A (for all 
>> L, A)
>> 2c. as a corollary, a chain L.in(A).in(B).in(C)… has no more privileges than 
>> L or any lookups in A, B, C, …
> Preserved with the exception of A, B and C in the same named module M and 
> where the set modules that M reads increases (say where code in M reads 
> additional modules).

Does this mean adding edges to the readability graph at M?
If so, then that's covered by the blanket exception mentioned later.
If you mean something else, maybe we need a point 2d.

> 
>> 
>> 3. graceful degradation:  L.in(A) loses only privileges broken by the 
>> distance between LC=L.lookupClass and A
>> 3a. if A==LC no privileges are lost; the identical L can be the result
>> 3b. if A and LC are nestmates, only protected privileges may be lost 
>> (dynamic emulation of JLS nestmate access)
>> 3c. if A and LC are in the same package, only private privileges may be lost
>> 3d. if A and LC are in the same module, only package privileges may be lost
> Preserved but perhaps with the (initially surprising) consequence that all 
> access is lost when m(LC) is a named module and m(A) is a different module. 
> This arises because the two modules may read very different sets of modules, 
> the intersection cannot be expressed via a lookup class + modes.

That's fine.  There are two main use cases for Lookup.in,
neither of which require the tracking of long chains of L.in(A/B/C…).

A. Agent with full-power lookup wants to invoke another agent with the lookup,
but wants to limit access, because he doesn't fully trust the other agent.
He does a single L.in(A) to a remote-enough type A, creating a non-full-power 
lookup.
(Note:  Picking A is sometimes non-trivial.  This might be an API flaw.)

B. Agent with full-power lookup wants to get access to private nestmate in A.
He does a single L.in(A) where LC and A are in the same package member.
This works around differences between access checks at JVM and JLS levels,
just as the package-private accessor methods from javac do.  (Yuck!)

> 
>> 
>> 4. downward convergence (to publicLookup or empty privileges)
>> 4a. if A is inaccessible to LC=L.lookupClass, L.in(A) has no privileges 
>> (less than publicLookup)
>> 4b. if A is accessible to LC and L has non-empty privileges, L.in(A) is no 
>> less privileged than publicLookup
>> 4c. for any L with non-empty privileges, there is a sequence of types A,B 
>> where L.in(A).in(B) is equivalent to publicLookup
> Downward convergence to zero access/empty privileges.

So points 4abc are just wrong.  I can live with that.

And, publicLookup can be used to get a lookup object that
provides controlled access to a given module's M unconditional
exports, without at the same time conferring access to M's internals.
This is an important kind of weakened lookup.

Going back to graceful degradation:

3e. If A is in a named module and LC in the unnamed module (or L is a public 
lookup), only public names readable from A are retained

And then we get:

4. downward convergence to empty privileges
4a. if A is inaccessible to LC=L.lookupClass, L.in(A) has no privileges
4b. if A and LC are in different named modules, L.in(A) has no privileges 
(there is no attempt to retain an intersection of readability sets)

> No downward convergence to publicLookup because m(publicLookup.lookupClass) 
> must read all modules, thus a superset of the modules that named modules will 
> read. I should say of course that the publicLookup can only be used to create 
> method handles to public members in packages that are exported 
> unconditionally.  So nothing that code in a named module couldn't otherwise 
> access when it increases readability.

Right.  (FWIW, the term "unconditional" is not in the Lookup javadoc.)

Should there be a way to build a lookup, for two modules M1/M2, which
reads those names of M2 which M1 can read, except no internals
of M1?  I wonder if such a thing would be useful?  Probably not.

But it would be useful to have a lookup in a module M1 which can
read the exports of *every* M2 that M1 can see, except no M1 internals.
(This includes the unconditionally exported public names of M1.)
This would be a Lookup with an LC in M1 and flags of PUBLIC only.

I guess that is the effect of PL.in(M1) and point 3a, right?


> 
> 
>> 
>> 5. publicLookup has a reasonable minimal set of globally acceptable 
>> privileges
>> 5a. this set of privile

hg: jigsaw/jake: 29 new changesets

2015-12-11 Thread mandy . chung
Changeset: 1a889daf7eb0
Author:attila
Date:  2015-11-24 10:22 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/1a889daf7eb0

8141338: Move jdk.internal.dynalink package to jdk.dynalink
Reviewed-by: alanb, mchung, sundar

! make/CompileJavaModules.gmk
! make/Images.gmk
! modules.xml

Changeset: 015cff85d10d
Author:erikj
Date:  2015-11-24 11:25 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/015cff85d10d

8143236: Update devkit creation makefiles for linux
Reviewed-by: ihse

! make/devkit/Makefile
! make/devkit/Tools.gmk

Changeset: 11b31df300ae
Author:erikj
Date:  2015-11-24 15:36 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/11b31df300ae

8143296: javac-server/sjavac not compatible with LogFailures on Windows
Reviewed-by: ihse

! common/autoconf/basics_windows.m4
! common/autoconf/boot-jdk.m4
! common/autoconf/build-performance.m4
! common/autoconf/generated-configure.sh
! common/autoconf/spec.gmk.in
! common/src/fixpath.c
! make/InitSupport.gmk
! make/common/SetupJavaCompilers.gmk

Changeset: b2a9c5ef147e
Author:erikj
Date:  2015-11-24 15:46 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/b2a9c5ef147e

8143141: Bring in minor build changes from the jigsaw/jake forest
Reviewed-by: ihse, mchung

! common/autoconf/flags.m4
! common/autoconf/generated-configure.sh
! common/autoconf/spec.gmk.in
! common/autoconf/toolchain.m4
! make/CompileJavaModules.gmk
! make/Images.gmk
! make/Jprt.gmk
! make/Main.gmk
! make/common/JavaCompilation.gmk
! make/common/NativeCompilation.gmk

Changeset: 358fb90ae6e6
Author:erikj
Date:  2015-11-24 17:45 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/358fb90ae6e6

8142983: Enable builds with icecc/icecream
Reviewed-by: ihse

! common/autoconf/build-performance.m4
! common/autoconf/configure.ac
! common/autoconf/generated-configure.sh
! common/autoconf/hotspot-spec.gmk.in
! common/autoconf/spec.gmk.in

Changeset: f069169dc66f
Author:erikj
Date:  2015-11-25 15:56 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/f069169dc66f

8144039: Enable javac server by default
Reviewed-by: ihse

! common/autoconf/build-performance.m4
! common/autoconf/generated-configure.sh

Changeset: 12d27df4933e
Author:erikj
Date:  2015-11-27 16:29 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/12d27df4933e

8144172: Problem with bootcycle-images and sjavac
Reviewed-by: ihse

! common/autoconf/bootcycle-spec.gmk.in
! make/Main.gmk

Changeset: 8407c45c9379
Author:jbachorik
Date:  2015-11-20 13:02 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/8407c45c9379

8043138: Attach API should not require jvmstat rmi protocol
Reviewed-by: alanb, mchung, erikj, ihse

! make/Images.gmk
! modules.xml

Changeset: 5711553c7b41
Author:joehw
Date:  2015-11-30 08:52 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/5711553c7b41

8144094: Add Catalog API to java.xml module
Reviewed-by: lancea

! make/common/CORE_PKGS.gmk
! modules.xml

Changeset: 62351f9def8e
Author:robm
Date:  2015-11-30 17:37 +
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/62351f9def8e

8142872: Remove support for sun.nio.ch.PollSelectorProvider from 9
Reviewed-by: alanb, simonis

! make/CompileJavaModules.gmk

Changeset: 8f3c139771af
Author:lana
Date:  2015-11-30 13:26 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/8f3c139771af

Merge


Changeset: 09d04e9badce
Author:neliasso
Date:  2015-11-16 20:54 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/09d04e9badce

Merge

! common/autoconf/flags.m4
! common/autoconf/generated-configure.sh
! common/autoconf/spec.gmk.in
! make/Main.gmk

Changeset: 3701b7e11a21
Author:neliasso
Date:  2015-11-23 11:06 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/3701b7e11a21

Merge


Changeset: d430479aa7bc
Author:amurillo
Date:  2015-11-27 11:44 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/d430479aa7bc

Merge


Changeset: f8e40a86242f
Author:iklam
Date:  2015-07-22 20:14 -0700
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/f8e40a86242f

8140802: Clean up and refactor of class loading code for CDS
Reviewed-by: jiangli, acorn

! modules.xml
! test/lib/sun/hotspot/WhiteBox.java

Changeset: 260c0796b4c7
Author:jiangli
Date:  2015-11-19 19:30 -0500
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/260c0796b4c7

Merge

! modules.xml

Changeset: 5af41a2286d0
Author:jiangli
Date:  2015-11-23 14:41 -0500
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/5af41a2286d0

Merge

! modules.xml

Changeset: fdbe1b5e0eb6
Author:erikj
Date:  2015-11-24 12:18 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/fdbe1b5e0eb6

8142336: Convert the SA agent build to modular build-infra makefiles
Reviewed-by: ihse, sla, dsamersoff, twisti

! make/CompileJavaModules.gmk
! make/Images.gmk
! make/Main.gmk
! make/common/Modules

hg: jigsaw/jake/corba: 2 new changesets

2015-12-11 Thread mandy . chung
Changeset: 10a482b86358
Author:lana
Date:  2015-12-10 08:17 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/corba/rev/10a482b86358

Added tag jdk-9+96 for changeset feb1bd85d799

! .hgtags

Changeset: 99620e004719
Author:mchung
Date:  2015-12-10 15:45 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/corba/rev/99620e004719

Merge




hg: jigsaw/jake/jaxp: 6 new changesets

2015-12-11 Thread mandy . chung
Changeset: e2fbfb7ed78a
Author:joehw
Date:  2015-11-30 16:17 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/e2fbfb7ed78a

8142463: Xml schema validation failing after Xerces update; maxOccurs ignored
Reviewed-by: lancea

! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java
+ test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java
+ test/javax/xml/jaxp/unittest/validation/tck/upa01.xml
+ test/javax/xml/jaxp/unittest/validation/tck/upa01.xsd

Changeset: 1cefe0c8447c
Author:lana
Date:  2015-12-02 09:36 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/1cefe0c8447c

Merge


Changeset: 2b4a2f136208
Author:joehw
Date:  2015-12-03 11:42 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/2b4a2f136208

8132091: Clean up JAXP code that has dependency on Java version string
Reviewed-by: lancea

! 
src/java.xml/share/classes/com/sun/org/apache/xalan/internal/XalanConstants.java
! 
src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java
! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/Constants.java
! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/DocumentBuilderImpl.java
! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/SAXParserImpl.java
! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaFactory.java
! 
src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/XMLSchemaValidatorComponentManager.java

Changeset: 1f3182529f2c
Author:lana
Date:  2015-12-07 14:21 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/1f3182529f2c

Merge


Changeset: b078d4258d9c
Author:lana
Date:  2015-12-10 08:17 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/b078d4258d9c

Added tag jdk-9+96 for changeset 1f3182529f2c

! .hgtags

Changeset: 23a6fe4172e8
Author:mchung
Date:  2015-12-10 15:45 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxp/rev/23a6fe4172e8

Merge

! 
src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TransformerFactoryImpl.java



hg: jigsaw/jake/jaxws: 6 new changesets

2015-12-11 Thread mandy . chung
Changeset: c9651a1f9063
Author:mkos
Date:  2015-11-27 11:28 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/c9651a1f9063

8131334: SAAJ Plugability Layer: using java.util.ServiceLoader
Reviewed-by: lancea

! src/java.xml.ws/share/classes/javax/xml/soap/FactoryFinder.java
! src/java.xml.ws/share/classes/javax/xml/soap/MessageFactory.java
! src/java.xml.ws/share/classes/javax/xml/soap/SAAJMetaFactory.java
! src/java.xml.ws/share/classes/javax/xml/soap/SOAPConnectionFactory.java
! src/java.xml.ws/share/classes/javax/xml/soap/SOAPFactory.java
+ src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java
+ src/java.xml.ws/share/classes/javax/xml/soap/package-info.java

Changeset: 2f21153bea9d
Author:lana
Date:  2015-11-30 13:28 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/2f21153bea9d

Merge


Changeset: b55cebc47555
Author:lana
Date:  2015-12-07 14:19 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/b55cebc47555

Merge


Changeset: 7293db4716ee
Author:lana
Date:  2015-12-10 08:17 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/7293db4716ee

Added tag jdk-9+96 for changeset b55cebc47555

! .hgtags

Changeset: fe38ca1dc4a9
Author:mchung
Date:  2015-12-10 15:45 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/fe38ca1dc4a9

Merge

! src/java.xml.ws/share/classes/javax/xml/soap/FactoryFinder.java

Changeset: c171b34ce2ae
Author:mchung
Date:  2015-12-11 00:07 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jaxws/rev/c171b34ce2ae

Ensure readable after merge

! src/java.xml.ws/share/classes/javax/xml/soap/FactoryFinder.java
! src/java.xml.ws/share/classes/javax/xml/soap/ServiceLoaderUtil.java



hg: jigsaw/jake/nashorn: 16 new changesets

2015-12-11 Thread mandy . chung
Changeset: aac8413d3bb7
Author:hannesw
Date:  2015-11-23 15:26 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/nashorn/rev/aac8413d3bb7

8141407: Wrong evaluation of a != a when a = NaN
Reviewed-by: sundar, attila

! 
src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
+ test/script/basic/JDK-8141407.js

Changeset: a685736f225b
Author:hannesw
Date:  2015-11-23 17:52 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/nashorn/rev/a685736f225b

8143821: Wrong test name in JDK-8143304
Reviewed-by: attila, sundar

- test/script/basic/JDK-8059934.js
+ test/script/basic/JDK-8143304.js

Changeset: f3b883bec2d0
Author:attila
Date:  2015-11-24 10:19 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/nashorn/rev/f3b883bec2d0

8141338: Move jdk.internal.dynalink package to jdk.dynalink
Reviewed-by: hannesw, sundar

! make/BuildNashorn.gmk
! make/build.xml
! make/nbproject/project.xml
! make/project.properties
+ src/jdk.dynalink/share/classes/jdk/dynalink/CallSiteDescriptor.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/ClassMap.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/CompositeOperation.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/DynamicLinkerFactory.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/LinkerServicesImpl.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/NamedOperation.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/NoSuchDynamicMethodException.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/Operation.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/RelinkableCallSite.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/StandardOperation.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/TypeConverterFactory.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/AccessibleMembersLookup.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/beans/ApplicableOverloadedMethods.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanIntrospector.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeansLinker.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/beans/CallerSensitiveDynamicMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/CheckRestrictedPackage.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/ClassString.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/DynamicMethodLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/FacetIntrospector.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/beans/GuardedInvocationComponent.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/MaximallySpecific.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedDynamicMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/OverloadedMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/SimpleDynamicMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/SingleDynamicMethod.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClass.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassIntrospector.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/StaticClassLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/messages.properties
+ src/jdk.dynalink/share/classes/jdk/dynalink/beans/package-info.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/internal/AccessControlContextFactory.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/internal/InternalTypeUtilities.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/ConversionComparator.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocation.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardedInvocationTransformer.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinker.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingDynamicLinkerExporter.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/GuardingTypeConverterFactory.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkRequest.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/LinkerServices.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodHandleTransformer.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/MethodTypeConversionStrategy.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/TypeBasedGuardingDynamicLinker.java
+ src/jdk.dynalink/share/classes/jdk/dynalink/linker/package-info.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeGuardingDynamicLinker.java
+ 
src/jdk.dynalink/share/classes/jdk/dynalink/linker/support/CompositeTypeBasedGuardingDynamicLinker.java
+ 
src/jdk.dyna

hg: jigsaw/jake/jdk: 125 new changesets

2015-12-11 Thread mandy . chung
Changeset: 74bc089000c8
Author:ksrini
Date:  2015-09-28 08:42 -0700
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/74bc089000c8

8066272: pack200 must support Multi-Release Jars
Reviewed-by: jrose, sdrach

! src/java.base/share/classes/com/sun/java/util/jar/pack/PackerImpl.java
+ test/tools/pack200/MultiRelease.java

Changeset: e9b7db0341f6
Author:amlu
Date:  2015-11-23 16:14 +0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/e9b7db0341f6

8143583: Several tests don't work with latest jtreg due to non-existing files 
in @build
Reviewed-by: alanb, sla

! test/com/sun/jdi/DoubleAgentTest.java
! test/com/sun/jdi/SuspendNoFlagTest.java
! test/com/sun/management/HotSpotDiagnosticMXBean/DumpHeap.java
! test/sun/tools/jmap/BasicJMapTest.java

Changeset: e36cbc6ac95b
Author:darcy
Date:  2015-11-23 08:11 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/e36cbc6ac95b

8143813: Problem list PKCS8Test.java
Reviewed-by: mullan

! test/ProblemList.txt

Changeset: caba60c122b6
Author:sherman
Date:  2015-11-23 10:36 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/caba60c122b6

8143553: StringBuffer.getByte(byte[], int, byte) should be package private (not 
protected)
Reviewed-by: thartmann

! src/java.base/share/classes/java/lang/StringBuffer.java

Changeset: 25b577ea72d5
Author:shurailine
Date:  2015-11-23 11:49 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/25b577ea72d5

8139430: Refactor test library to decrease module dependencies of tests
Reviewed-by: mchung, alanb

! test/java/util/logging/TestLoggerWeakRefLeak.java
- test/lib/testlibrary/jdk/testlibrary/InputArguments.java
! test/lib/testlibrary/jdk/testlibrary/JcmdBase.java
! test/lib/testlibrary/jdk/testlibrary/ProcessTools.java
! test/lib/testlibrary/jdk/testlibrary/TestThread.java
+ test/lib/testlibrary/jdk/testlibrary/management/InputArguments.java
+ test/lib/testlibrary/jdk/testlibrary/management/ThreadMXBeanTool.java
! test/sun/tools/jcmd/TestJcmdSanity.java
! test/sun/tools/jinfo/JInfoHelper.java
! test/sun/tools/jmap/BasicJMapTest.java
! test/sun/tools/jps/JpsBase.java
! test/sun/tools/jstack/BasicJStackTest.java

Changeset: 0c0366bc27b3
Author:okutsu
Date:  2015-11-24 13:22 +0900
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/0c0366bc27b3

8073211: javadoc of Format parseObject methods should specify 
NullPointerExceptions
Reviewed-by: naoto, peytoia, okutsu
Contributed-by: Naveen Kumar 

! src/java.base/share/classes/java/text/DateFormat.java
! src/java.base/share/classes/java/text/Format.java
! src/java.base/share/classes/java/text/MessageFormat.java
! src/java.base/share/classes/java/text/NumberFormat.java

Changeset: 1326072e44bf
Author:attila
Date:  2015-11-24 10:22 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/1326072e44bf

8141338: Move jdk.internal.dynalink package to jdk.dynalink
Reviewed-by: alanb, mchung, sundar

! make/src/classes/build/tools/module/ext.modules

Changeset: 6ad5d252b55c
Author:erikj
Date:  2015-11-24 15:46 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/6ad5d252b55c

8143141: Bring in minor build changes from the jigsaw/jake forest
Reviewed-by: ihse, mchung

! make/gendata/GendataBreakIterator.gmk
! make/gensrc/GensrcCommon.gmk
! make/gensrc/GensrcMisc.gmk
! make/gensrc/GensrcProperties.gmk
! make/launcher/Launcher-jdk.jcmd.gmk
! make/launcher/Launcher-jdk.jconsole.gmk
! make/launcher/Launcher-jdk.jdi.gmk
! make/launcher/LauncherCommon.gmk
! make/lib/Lib-jdk.crypto.ucrypto.gmk

Changeset: 715972927a17
Author:shade
Date:  2015-11-24 19:02 +0300
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/715972927a17

8136500: Integer/Long getChars and stringSize should be more idiomatic
Reviewed-by: igerasim, sherman, psandoz, jrose

! src/java.base/share/classes/java/lang/AbstractStringBuilder.java
! src/java.base/share/classes/java/lang/Integer.java
! src/java.base/share/classes/java/lang/Long.java
+ test/java/lang/Integer/ToString.java
+ test/java/lang/Long/ToString.java

Changeset: db013eafc5c3
Author:rgoel
Date:  2015-11-24 14:46 +0530
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/db013eafc5c3

7011840: TEST_BUG java/util/Locale/LocaleEnhanceTest.java
Summary: Outputting extra information in LocaleEnhanceTest.java
Reviewed-by: peytoia, naoto

! test/java/util/Locale/LocaleEnhanceTest.java

Changeset: 33fd40487d6d
Author:amjiang
Date:  2015-11-25 09:42 +0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/33fd40487d6d

8143377: Test PKCS8Test.java fails
Reviewed-by: weijun

! test/ProblemList.txt
! test/sun/security/pkcs/pkcs8/PKCS8Test.java

Changeset: 000dd74c5ad7
Author:weijun
Date:  2015-11-25 11:58 +0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/000dd74c5ad7

8143913: MSCAPI keystore should accept Certificate[] in setEntry()
Reviewed-by: vinnie

! src/jdk.crypto.mscapi/windows

hg: jigsaw/jake/langtools: 13 new changesets

2015-12-11 Thread mandy . chung
Changeset: 73adc11fd50f
Author:sadayapalam
Date:  2015-11-26 07:44 +0530
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/73adc11fd50f

8143647: Javac compiles method reference that allows results in an 
IllegalAccessError
Summary: Lambda implementation method synthesized by javac should not mention 
inaccessible types.
Reviewed-by: mcimadamore

! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
+ test/tools/javac/lambda/MethodReference75.java
+ test/tools/javac/lambda/pkg/PublicDerived8143647.java

Changeset: 130ae42e6da7
Author:alundblad
Date:  2015-11-26 09:33 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/130ae42e6da7

8144009: ToolBox should have a cleanDirectory method
Summary: Added cleanDirectory method to ToolBox.
Reviewed-by: jjg

! test/tools/lib/ToolBox.java
! test/tools/sjavac/CompileCircularSources.java
! test/tools/sjavac/CompileExcludingDependency.java
! test/tools/sjavac/CompileWithAtFile.java
! test/tools/sjavac/CompileWithInvisibleSources.java
! test/tools/sjavac/CompileWithOverrideSources.java
! test/tools/sjavac/IncCompileChangeNative.java
! test/tools/sjavac/IncCompileDropClasses.java
! test/tools/sjavac/IncCompileNoChanges.java
! test/tools/sjavac/IncCompileUpdateNative.java
! test/tools/sjavac/NoState.java
! test/tools/sjavac/PermittedArtifact.java
! test/tools/sjavac/SJavacTester.java
! test/tools/sjavac/StateDir.java

Changeset: ab5e0a945e78
Author:sadayapalam
Date:  2015-11-26 17:38 +0530
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/ab5e0a945e78

8078660: Misleading recommendation from diamond finder.
Summary: javac should recommend diamond usage if that could lead to a change in 
program behavior.
Reviewed-by: mcimadamore

! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Analyzer.java
! 
src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties
- test/tools/javac/diags/examples/DiamondRedundantArgs1.java
! test/tools/javac/generics/diamond/6939780/T6939780_7.out
! test/tools/javac/generics/diamond/6939780/T6939780_8.out
! test/tools/javac/generics/diamond/6939780/T6939780_9.out
! test/tools/javac/generics/diamond/7002837/T7002837.java
- test/tools/javac/generics/diamond/7002837/T7002837.out
! test/tools/javac/generics/diamond/neg/T8078473.java
- test/tools/javac/generics/diamond/neg/T8078473.out
! test/tools/javac/generics/diamond/neg/T8078473_2.java
- test/tools/javac/generics/diamond/neg/T8078473_2.out

Changeset: 853c77f8193c
Author:jlahoda
Date:  2015-11-30 17:31 +0100
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/853c77f8193c

8143037: JShell should determine commands by prefix
Reviewed-by: rfield, mcimadamore, briangoetz

! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java
! test/jdk/jshell/CommandCompletionTest.java
! test/jdk/jshell/ToolBasicTest.java

Changeset: 38910274fc6f
Author:lana
Date:  2015-11-30 13:27 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/38910274fc6f

Merge

- test/tools/javac/diags/examples/DiamondRedundantArgs1.java
- test/tools/javac/generics/diamond/7002837/T7002837.out
- test/tools/javac/generics/diamond/neg/T8078473.out
- test/tools/javac/generics/diamond/neg/T8078473_2.out

Changeset: d2713a6edc13
Author:rfield
Date:  2015-12-01 10:27 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/d2713a6edc13

8142447: JShell tool: Command change: re-run n-th command should be re-run by id
Reviewed-by: rfield
Contributed-by: bitterf...@gmail.com

! src/jdk.jshell/share/classes/jdk/internal/jshell/tool/JShellTool.java
! test/jdk/jshell/ToolBasicTest.java

Changeset: 218a0c168db3
Author:lana
Date:  2015-12-02 09:36 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/218a0c168db3

Merge

- test/tools/javac/diags/examples/DiamondRedundantArgs1.java
- test/tools/javac/generics/diamond/7002837/T7002837.out
- test/tools/javac/generics/diamond/neg/T8078473.out
- test/tools/javac/generics/diamond/neg/T8078473_2.out

Changeset: 17ac95d2a6ec
Author:vromero
Date:  2015-12-04 09:46 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/17ac95d2a6ec

8008685: DPrinter should include MethodType.recvtype
Reviewed-by: jjg

! test/tools/javac/lib/DPrinter.java

Changeset: 9006c168c651
Author:jjg
Date:  2015-12-04 14:22 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/langtools/rev/9006c168c651

8143268: Langtools tools should create output directories as needed.
Reviewed-by: jlahoda

! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java
! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties
- test/tools/javac/T6413876.java
+ test/tools/javac/file/T8143268.java
! test/tools/javac/options/modes/OutputDirTest.java

Changeset: baf0f4ce55e1
Author:rfield
Date:  2015-12-07 09:18 -0800
URL:   http://hg.openjdk.java.net/jigs

hg: jigsaw/jake/hotspot: Missing closing bracket breaks hotspot build

2015-12-11 Thread mandy . chung
Changeset: df521234d197
Author:mchung
Date:  2015-12-11 15:37 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/hotspot/rev/df521234d197

Missing closing bracket breaks hotspot build

! src/share/vm/classfile/systemDictionaryShared.hpp



hg: jigsaw/jake/jdk: Problem list JAX-WS tests

2015-12-11 Thread mandy . chung
Changeset: 0d1c1ba783b8
Author:mchung
Date:  2015-12-11 16:06 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/jdk/rev/0d1c1ba783b8

Problem list JAX-WS tests

! test/ProblemList.jake.txt



hg: jigsaw/jake: Fixup jdk.hotspot.agent workaround

2015-12-11 Thread mandy . chung
Changeset: 90ba04818266
Author:mchung
Date:  2015-12-11 16:24 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/rev/90ba04818266

Fixup jdk.hotspot.agent workaround

! make/CompileJavaModules.gmk



hg: jigsaw/jake/nashorn: Update -XaddExports to access jdk.dynalink internal API

2015-12-11 Thread mandy . chung
Changeset: f356eb048b4e
Author:mchung
Date:  2015-12-11 16:34 -0800
URL:   http://hg.openjdk.java.net/jigsaw/jake/nashorn/rev/f356eb048b4e

Update -XaddExports to access jdk.dynalink internal API

! make/project.properties



Re: preliminary RFR: 8049365 - Update JDI and JDWP for modules

2015-12-11 Thread Mandy Chung

> On Dec 11, 2015, at 12:40 AM, Alan Bateman  wrote:
> 
> We just need to make sure that they build and I can't recall if they are 
> compiled against the JDI in the boot JDK or the jdk.jdi module. If the former 
> then we would only see issues with boot cycle builds.


jdk.hotspot.agent is built in the same way as other JDK modules.  Thanks to 
Erik’s recent change converting converting the SA agent build to modular build.

Mandy
[1] https://bugs.openjdk.java.net/browse/JDK-8142336